One of the problems I've run into is the size of the fact tables. This is with a with a web site doing 70+ million hits per year. I've found that the majority of reporting works on month/year as the major time dimension, so I created a function that changes the date to the first of the month. I don't like the idea of chosing a particular day, but OLAP tools are looking for a date and not just a month/year combo. This cuts the size of the data into 1/30th of what it would be otherwise.
CREATE FUNCTION [dbo].[GetRptDate] (@Date datetime)
RETURNS datetime AS
BEGIN
DECLARE @StrYear nvarchar(4)
SET @StrYear = Year(@Date)
DECLARE @StrMonth nvarchar(2)
SET @StrMonth = Month(@Date)
RETURN convert(datetime,(convert(nvarchar,@StrYear+'-01-'+@StrMonth, 103)), 103)
END
I use this function as part of an ETL job that runs daily. There is a lot more to it than this, but I wanted to see how other people are dealing with VLFT (Very Large Fact Tables - a new acronym?). Thanks.