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 * ...)" 和聚合函式。