Partitioning column value range based on master table field?

  • 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!

  • 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

    [font="Verdana"]Regards,
    Rals
    [/font].

Viewing 2 posts - 1 through 1 (of 1 total)

You must be logged in to reply to this topic. Login to reply