合并报表业绩

时间:2011-11-28 15:16:55

标签: sql sql-server

我有一个表有一列iscurrent,值为0和1。

我使用合并语句向该表插入行,该合并语句根据iscurrent的值插入或更新。为了进行性能调优,我在该表上创建了两个分区,其中包含0和1。但表现不够好。

如何调整合并声明?每次将数千行合并到数百万行。分区表会有帮助吗?

1 个答案:

答案 0 :(得分:0)

如果您使用派生表作为源,请首先调整select语句,或者将派生表的结果放入具有适当索引的物理表中。

MERGE myTargetTabe as TargetTable
USING (derived table statement goes here) SourceTable on ....... 

合并语句将扫描满足您在“ON”子句中指定的条件的每一行,如果存在您不需要合并的行,则在此处排除行。例如:

MERGE myTargetTabe as TargetTable
USING (derived table statement goes here) SourceTable on TargetTable.ID = SourceTable.ID and TargetTable.OtherColumn NOT IN (....)  and ...... or .... and so on.