小编Jes*_*ams的帖子

WHERE 分支的优化

我有一个针对可以增长到数百万行的表执行的查询。查询来自我们使用的 QA 工具,它超出了数据库的标准功能(就索引的内容以及索引方式和原因而言)。查询是:

SELECT id FROM thisTable t
WHERE col = 'val'
AND ((not exists (SELECT 1 FROM thisTable WHERE refid = t.id) and refbool = 0) or refbool = 1)
ORDER BY newid()
Run Code Online (Sandbox Code Playgroud)

基本上,假设表中有idrefidrefbool,和col列。所以你可以有如下数据:

  id  |  refid  |  refbool  |  col
------------------------------------
   1  |   NULL  |    0      |  val
   2  |   NULL  |    0      |  val
   3  |   NULL  |    0      |  val
   4  |    2    |    1      |  val
   5 …
Run Code Online (Sandbox Code Playgroud)

sql-server query-performance

3
推荐指数
1
解决办法
97
查看次数

标签 统计

query-performance ×1

sql-server ×1