Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

SQL Server 效能優化 12 大核心策略:從存儲佈局到索引統計全覆蓋

編輯:關於伺服器

前言

SQL Server 效能優化是系統架構師與 DBA 的核心技能。本文匯總 12 項經實戰驗證的優化策略,涵蓋 I/O 佈局、tempdb 隔離、熱點預防、數據類型選擇、碎片管理、檔案組規劃、自動增長控制、系統/用戶數據分離、索引設計、統計資訊維護與一致性檢查。

1. 數據與日誌檔案分盤存放

數據檔(.mdf/.ndf)與日誌檔(.ldf)產生大量 I/O。條件允許時,將日誌檔置於獨立物理磁碟(或 RAID 陣列),分散 I/O 壓力,同時利於災難恢復(尾部日誌備份)。

2. tempdb 獨立高速存儲

tempdb 為所有用戶共享,臨時表、排序、版本存儲均在此進行。建議:
• 放置於最快磁碟/RAID 10/SSD;
• 預留足夠空間並啟用自動增長;
• 設定合理增長幅度(避免過小產生外部碎片)。

3. 避免熱點頁(Last Page Insert)

SQL Server 7.0 以前,堆表插入集中於物理尾頁易產生鎖爭用。新版本透過 PFS 頁分散分配緩解。設計時避免在單調遞增列(如身份識別欄)建立聚集索引作為主鍵,必要時採用雜湊分區或 GUID 分散寫入。

4. 精簡數據類型

單頁容納行數越多,I/O 越少。優先選用 tinyint、smallint、varchar(n) 而非過度使用 bigint、char、nvarchar(max)。

5. 定期監控與整理空間碎片

自動增長導致物理儲存非連續。排程執行 DBCC INDEXDEFRAG 或重建索引,配合 sys.dm_db_index_physical_stats 監控碎片率。

6. 善用主/次數據檔案分離系統與用戶對象

• 主檔(PRIMARY filegroup)存放系統目錄、系統表;
• 次要檔存放用戶表、索引;
• 可再將主/次檔置於不同磁碟,進一步分散 I/O。

7. 檔案組實現精細化存儲策略

大型資料庫可建立多個檔案組,將熱點表、索引、歸檔表分別映射至不同物理磁碟,透過效能基準測試調整最優佈局。

8. 謹慎配置自動增長與自動收縮

小型庫適用,大型庫頻繁增長/收縮會產生大量碎片並阻塞工作負載。建議:
• 固定增量(如 512MB/1GB)而非百分比;
• 關閉自動收縮,改由維護計畫手動控制。

9. 系統庫與用戶庫物理隔離

將 master、model、msdb、tempdb 與用戶資料庫置於不同磁碟/陣列,改善 I/O 並行度,簡化備份/還原策略。

10. 精心設計索引

覆蓋索引、篩選索引、欄位順序、避免重複/冗餘索引、定期評估 sys.dm_db_index_usage_stats 淘汰未用索引。詳細策略請參考專題文章。

11. 定期更新統計資訊

成本優化器依賴統計資訊制定執行計畫。啟用 AUTO_UPDATE_STATISTICS,大表配合維護計畫以 FULLSCAN 手動更新。

12. 定期一致性檢查(DBCC CHECKDB)

排程執行 DBCC CHECKDB(含 PHYSICAL_ONLY 加速),及早發現頁損壞、鏈結錯誤,確保資料完整性。

Copyright © Windows教程網 All Rights Reserved