我有一个SQL查询,它使用类似的代码,如下所示(大约50次)
这导致查询运行缓慢。我正在寻找一种更有效的编码此查询的方法。
AND ((table1.field1 <=(dbo.view1.field2) OR table1.field1 IS NULL )
我所关注的所有字段都是日期。
答案 0 :(得分:1)
尝试
AND (ISNULL(table1.field1, dbo.view1.field2) <= dbo.view1.field2)
答案 1 :(得分:1)
通过查看给定的代码段,我无法确切地说明查询中条件的效率。但我建议你在连接表格中使用的字段和条件中使用的字段上创建Index
。
答案 2 :(得分:1)
根据您提供的代码量,很难猜出瓶颈在哪里。但是避免计算比较并隔离索引列。可以放入内存块的索引记录越多,查询运行的速度就越快。
答案 3 :(得分:0)
AND (table1.field1 IS NULL OR (table1.field1 <=(dbo.view1.field2))
您应该根据查询创建一些索引。
答案 4 :(得分:0)
您应该真正了解SQL执行计划,这将让您可以看到查询的内容以及花费最多时间。通常,服务器首先可以优化您的查询,因此重新排列WHERE
语句不太可能有所作为。
请参阅this post,了解基础知识。
答案 5 :(得分:0)
如果您能负担得起,请为这两列添加索引。