|
3
|
| David · 技术社区 · 16 年前 |
|
|
1
1
一个优点是
如果你用where
|
|
|
2
3
就我所知,它们是相同的,数据集是相等的。您可以运行下面的示例并查看要检查的执行计划。您将看到它测试谓词的过滤器元素在每个元素中占用相同比例的时间。即使添加了索引,也不会使一个索引比另一个索引更有效,因为它们基本上是在做相同的事情。
我知道我的例子是人为的,但它使用了相等数量的空值和0。即使您将每个示例的CTE重新写入表变量,您也应该看到相同的性能。 |
|
|
3
2
与大多数SQL性能问题一样,答案将由表模式决定,而不是由SQL文本决定。就像现在一样,这两个版本都需要一个完整的表扫描,所以它们同样糟糕。
ProcessedDate上的非聚集索引可能对第一个版本有所帮助,但由于您要求
另一方面,处理了最左边键的聚集索引将始终起作用,并且这种聚集索引结构在队列处理中很常见(并且有一个'ProcessedDate'列显然表明您的表被用作队列)。 但是聚集索引的ProcessedDate上最左边的一列也会像处理过的位一样工作。 要带回家的教训是:不是查询,是模式。总是。 |
|
4
2
选择与您的域模型最匹配的一个。
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |