Home Forums SQL Server 2005 Administering Copy Between 2 and 3 billion rows from a heap table with no key to a new partioned table. RE: Copy Between 2 and 3 billion rows from a heap table with no key to a new partioned table.

  • Thank you guys for the replys.

    Unfortunately, in the current table we do not have a date column that we can use. I am assuming that the designer of the table used the "period" attribute because that is the way it is received from the vendor. The period does represent Months. Period-1 = '01/1989', Period-2 = '02/1989', Period-3 = '03/1989'. At any given time we can insert\delete\update data for any of the periods. All periods will be used at the same level for reporting so we will not be doing sliding window.

    --this is what I currently have for indexing. The Primary key is (period, external_loan_id), but I was not sure of the best way to create it on the partitioned table.

    CREATE NONCLUSTERED INDEX IX_period_external_loan_id

    ON qc_partition (period, external_loan_id)

    ON partition_scheme_qc (period)

    GO

    --Current Table

    CREATE TABLE dbo.qc_partition

    (

    pool_id CHAR(3) NOT NULL

    , deal_no CHAR(5) NOT NULL

    , group_no CHAR(3) NOT NULL

    , servicer VARCHAR(4) NULL

    , loan_id CHAR(6) NOT NULL

    , exloan_id VARCHAR(18) NOT NULL

    , last_int_p SMALLDATETIME NULL

    , balance MONEY NULL

    , int_rate NUMERIC(6, 3) NULL

    , totpmt_due MONEY NULL

    , sched_principal , sched_mnth_p MONEY NULL

    , mba_stat VARCHAR(1) NULL

    , ots_stat VARCHAR(1) NULL

    , payment_hist VARCHAR(12) NULL

    , exception VARCHAR(1) NULL

    , start_date SMALLDATETIME NULL

    , end_date SMALLDATETIME NULL

    , fc_end_typ VARCHAR(1) NULL

    , payoff_d SMALLDATETIME NULL

    , payoff_r VARCHAR(1) NULL

    , sell_date SMALLDATETIME NULL

    , inv_bal MONEY NULL

    , next_percent NUMERIC(6, 3) NULL

    , loss_val MONEY NULL

    , net_rate NUMERIC(7, 4) NULL

    , period SMALLINT NOT NULL

    , file_name CHAR(8) NOT NULL

    ) ON primary

    --Partitioned table

    CREATE TABLE dbo.qc_partition

    (

    qc_partition_id BIGINT IDENTITY(1,1)

    , pool_id CHAR(3) NOT NULL

    , deal_no CHAR(5) NOT NULL

    , group_no CHAR(3) NOT NULL

    , servicer VARCHAR(4) NULL

    , loan_id CHAR(6) NOT NULL

    , exloan_id VARCHAR(18) NOT NULL

    , last_int_p SMALLDATETIME NULL

    , balance MONEY NULL

    , int_rate NUMERIC(6, 3) NULL

    , totpmt_due MONEY NULL

    , sched_principal , sched_mnth_p MONEY NULL

    , mba_stat VARCHAR(1) NULL

    , ots_stat VARCHAR(1) NULL

    , payment_hist VARCHAR(12) NULL

    , exception VARCHAR(1) NULL

    , start_date SMALLDATETIME NULL

    , end_date SMALLDATETIME NULL

    , fc_end_typ VARCHAR(1) NULL

    , payoff_d SMALLDATETIME NULL

    , payoff_r VARCHAR(1) NULL

    , sell_date SMALLDATETIME NULL

    , inv_bal MONEY NULL

    , next_percent NUMERIC(6, 3) NULL

    , loss_val MONEY NULL

    , net_rate NUMERIC(7, 4) NULL

    , period SMALLINT NOT NULL

    , file_name CHAR(8) NOT NULL

    , created_by VARCHAR(70) NOT NULL DEFAULT CURRENT_USER

    , created_date DATETIME NOT NULL DEFAULT (GETDATE())

    ) ON partition_scheme_qc (period)