我有一个表有一列iscurrent
,值为0和1。
我使用合并语句向该表插入行,该合并语句根据iscurrent
的值插入或更新。为了进行性能调优,我在该表上创建了两个分区,其中包含0和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.