跳转至内容

Microsoft SQL Server/最佳实践

来自维基教科书,开放世界中的开放书籍
  • 始终用所有者限定对象。
  • 当你不需要高事务一致性时,使用查询 "with (nolock)"。
  • 不要使用 GOTO。
  • 避免使用游标,因为它速度明显更慢。如果需要,始终声明正确的游标类型 (FAST_FORWARD)。
  • 避免使用 SELECT INTO 来填充临时表。创建表然后使用 INSERT SELECT。
  • 始终使用 ANSI 连接语法。
  • 始终检查对象是否存在。
  • 使用 SCOPE_IDENTITY() 而不是 @@IDENTITY。
  • 始终检查 @@TRANCOUNT 并根据需要提交/回滚。
  • 为了避免死锁,对 DML 进行排序。
  • 始终检查 @@ERROR 和 @@ROWCOUNT,并将它们分配给变量。
  • 始终检查 sp 返回值。
  • 不要创建跨数据库依赖关系。
  • 避免使用表值 UDF - 性能问题。
  • 避免使用动态 SQL - 如果需要,使用 sp_executesql 代替 EXEC。
  • 避免使用 NULL 值。
  • 当只有两个值时,ISNULL 比 COALESCE 更有效。
  • 始终指定列;尽量避免使用 "SELECT *"。例外情况包括以下两种情况:"WHERE EXISTS (SELECT * ...)" 和聚合函数。
华夏公益教科书