将数据存储在分区表与非分区表中

时间:2017-11-06 12:19:18

标签: sql-server

我试图从源表中提取数十亿条记录并将它们存储在多个目标表中,这些目标表将根据年份和季度进行存储。

我已经研究了分区目标表的选项​​,并意识到与在非分区表中存储数据相比,它占用更多空间。

我在分区表上运行的迁移与迁移之间的唯一区别是在非分区表上运行,后来只有少了三列。

运行相同查询后磁盘的大小如下

分区表上的迁移 - 9 TB 在多个非分区表上迁移 - 1 TB

有人可以告诉我,分区表是否会创建更大的足迹

查询

SELECT  
    fc.financialCollectionId,
    fp.companyid,
    fd.dataitemid,
    di.dataitemname,    
    fd.dataitemvalue,
    fu.unittypevalue,
    fp.fiscalyear,
    fp.fiscalquarter,
    fi.periodenddate,
    fi.filingdate,
    rt.restatementtypename,
    fi.latestforfinancialperiodflag,
    fi.latestfilingforinstanceflag,
    conv.currencyconversionflag,
    cur.currencyname, 
    pt.periodtypename



from 
    ciqfinperiod fp 

    join ciqperiodtype pt on pt.periodtypeid = fp.periodtypeid 
    join ciqfininstance fi on fi.financialperiodid = fp.financialperiodid
    left join ciqrestatementtype rt on rt.restatementtypeid = fi.restatementtypeid
    join ciqfininstancetocollection ic on ic.financialinstanceid = fi.financialinstanceid
    inner join ciqfincollection fc on fc.financialcollectionid = ic.financialcollectionid
    inner join ciqfincollectiondata fd on
        fd.financialcollectionid = fc.financialcollectionid
    inner join ciqdataitemconversionrule conv on conv.dataitemid = fd.dataitemid
    inner join ciqcurrency cur on cur.currencyid = fc.currencyid
    inner join ciqdataitem di on di.dataitemid= fd.dataitemid
    inner join ciqfinunittype fu on fu.unittypeid =fd.unittypeid
@maxFiscalQuarter

    where year(fi.periodEndDate) >=  2000 

0 个答案:

没有答案