SQL语法提高了效率

时间:2012-03-06 11:12:46

标签: sql sql-server sql-server-2008 tsql ssrs-2008

我有一个SQL查询,它使用类似的代码,如下所示(大约50次)

这导致查询运行缓慢。我正在寻找一种更有效的编码此查询的方法。

 AND ((table1.field1 <=(dbo.view1.field2) OR table1.field1 IS NULL ) 

我所关注的所有字段都是日期。

6 个答案:

答案 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)

如果您能负担得起,请为这两列添加索引。