Pie*_*ius 12 performance sql-server sql-server-2008-r2 except query-performance
目前,我正在比较两个包含独特StoreKey/ProductKey组合的数据集。
第一个数据集具有StoreKey/ProductKey2012 年 1 月开始到 2014 年 5 月结束之间的唯一销售组合(结果 = 450K 行)。第二个数据集具有独特的StoreKey/ProductKey组合,销售从 2014 年 6 月开始,直到今天(结果 = 190K 行)。
我正在寻找StoreKey/ProductKey属于第 2 组但不在第 1 组的组合 - 即从 6 月初开始销售的新产品。
到目前为止,我已将两个数据集转储到临时表中,为两个表的两个键创建索引,并使用该EXCEPT语句查找唯一项。
比较如此大的数据集的最有效方法是什么?有没有更有效的方法来进行这种大型比较?
Twi*_*les 10
在我看来,使用 EXCEPT 是一种方法,但您可能需要重新考虑临时表的使用。通过这样做,您可以有效地将数据复制到内存中,这会减慢您的速度。如果源表上存在您需要的索引(正如我怀疑的那样),只需比较适当的 SELECTS:
SELECT StoreKey,ProductKey FROM table WHERE sales BETWEEN date1 AND date2
EXCEPT
SELECT StoreKey,ProductKey FROM table WHERE sales BETWEEN date3 AND date4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18422 次 |
| 最近记录: |