May 25, 2010 at 11:48 pm
want to partition my detail table based on a date field (monthly data i want to partition). But the issue is i don't have a date field in the detail table, but only one int field which is a reference key to the master table which has the actual date field. So basically the detail table has integer values which i need to partition. See the structure below.
Master Table
MKey, Month
1 '1/1/2010'
2 '2/2/2010'
4 '3/3/2010'
8 '4/4/2010'
Note : The value of MKey may not in the sequence as it's an identity column.
Detail Table
Mkey, Other columns
1,--
://millions of records
1,--
2.--
:
2,--
4,--
:
4,--
8--
:
please help to partition the detail table based on month, ie (Mkey column). Or suggest some workarounds. (basically i need to partition all the unique MKey values in the detail table)
I'm now planning to do this on SQL Server 2008
Thanks in advance!
May 26, 2010 at 2:19 am
Hi bijs,
You can create 12 partitions based on the month key(Mkey) value. But it will store the data irrespective of the year.
2009 January data and 2010 January data will go into the 1 st partition. If this model is ok then you can create 12 partitions to store the data.
Ex.
ALTER DATABASE [DBTEST] ADD FILEGROUP [DateFGMon1];
ALTER DATABASE [DBTEST] ADD FILE
( NAME = N'DateFGMon1File1', FILENAME = N'D:\lorenzo\dbfiles\DateFGMon1File1.ndf' , SIZE = 1MB , MAXSIZE = UNLIMITED, FILEGROWTH = 1MB )
TO FILEGROUP[DateFGMon1];
ALTER DATABASE [DBTEST] ADD FILEGROUP [DateFGMon2];
ALTER DATABASE [DBTEST] ADD FILE
( NAME = N'DateFGMon2File1', FILENAME = N'D:\lorenzo\dbfiles\DateFGMon2File1.ndf' , SIZE = 1MB , MAXSIZE = UNLIMITED, FILEGROWTH = 1MB )
TO FILEGROUP[DateFGMon2];
---- Create Partition function for 12 months.
CREATE PARTITION FUNCTION fDatePFN (INT)
AS RANGE LEFT FOR VALUES ('1','2');
---- Create Partition scheme and attach it with FileGroups. The value 1 to go in DateFGMon1, 2 to go in DateFGMon2, etc.
CREATE PARTITION SCHEME fDatePScheme
AS PARTITION fDatePFN
TO (DateFGMon1,DateFGMon2);
GO
Then to move the existing data into the respective partitions drop the existing clustered index and
recreate it using the partitioned function. If you have a non-clustured index drop it and create a clustured index using the partition function.Once the records moved drop the clustured and create a non-clustured index.
Hope this information would be helpful to you.
Refer: http://www.eggheadcafe.com/software/aspnet/34857606/how-to-move-exsisting-lar.aspx
Viewing 2 posts - 1 through 1 (of 1 total)
You must be logged in to reply to this topic. Login to reply