有关查询优化的提示和技巧[SQL Server 2005]

时间:2010-01-26 16:07:38

标签: sql-server-2005 optimization

我在stackoverflow中问这个问题,因为它是正确的地方......

我知道它 非常广泛的主题,但一些小的,可能真的很方便......

对于像我这样的年轻开发者来说,了解查询优化可能会有用。

SQL Server 2005中的提示和技巧关于查询优化 ..

4 个答案:

答案 0 :(得分:2)

基于此处的问题

  • 避免使用数据类型优先级(例如,总是非常喜欢,包括varchar的长度等)

例如

...WHERE tinyintcol = @intvalue
 means a conversion of the column and invalidates an index
...WHERE tinyintcol = @tinyintvalue
  • 避免在WHERE子句中的列上使用函数

例如

 ...WHERE DATEADD(day, 1, MyCol) > GETDATE()
 should be
 ...WHERE MyCol > DATEADD(day, -1, GETDATE())
  • 覆盖索引

  • GUID:不是聚集索引

答案 1 :(得分:1)

如果查询速度较慢,最明显的起点是确保使用索引。

答案 2 :(得分:1)

  • 尽可能减少您的联接总数
  • 考虑查询中使用的表格大小
  • 使用索引,因为他们是您的朋友
  • 注意您使用的类型作为键(int到int比两个varchars更容易比较)
  • 尽可能避免使用'Like'查询尝试使用相等的第一个
  • 来获取值

答案 3 :(得分:1)

对于查询,我可以添加到gbnrecursivesmaclell以下内容:

  • 尝试最小化子查询,加入
  • 避免任何过度锁定,节省检查点
  • 使用pragma在内存中设置临时表创建
  • 使用pragma设置同步OFF
  • 使用编译指示禁用触发器(如果可能)
  • 在事务中嵌入INSERTDELETE个查询
  • 有时UPDATE对于多个记录而言比再次插入它们要慢。所以建议选择,删除,而不是以编程方式更新记录并使用现有密钥重新插入(注意CASCADETRIGGERS
  • 与您的系统管理员核实数据库缓存应该为ON