Sql-Server

如何提高 SQL Server 鏡像性能

  • July 11, 2009

(從stackoverflow轉貼)

我已經設置了 SQL server 鏡像,使用 2 個 SQL server 2005 標準版。當應用程序受到壓力時,響應時間會增加 10 倍。我已將其指向鏡像,因為暫停鏡像顯示可接受的響應時間。

有哪些選項可用於實現更好的性能?請注意,我使用的是標準版,因此無法使用出色的高性能模式。

伺服器在同一個機架中,連接到千兆交換機。

這是用於創建端點的程式碼:

CREATE ENDPOINT [Mirroring] 
   AUTHORIZATION [sa]
   STATE=STARTED
   AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
   FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE
, ENCRYPTION = REQUIRED ALGORITHM RC4)

原則和鏡像之間的鏈路是否有足夠的頻寬來應對原則上的事務日誌生成?

您的日誌文件是否已優化?請參閱以下連結:

http://www.sqlskills.com/BLOGS/KIMBERLY/post/8-Steps-to-better-Transaction-Log-throughput.aspx

http://sqlblog.com/blogs/linchi_shea/archive/2009/02/09/performance-impact-a-large-number-of-virtual-log-files-part-i.aspx

雖然暫停鏡子會有所幫助,但它可能不是造成麻煩的真正原因。根據我的經驗,使用同步鏡像只會使響應時間加倍。如果您發現響應時間隨著負載的增加而變差,則可能會出現其他情況。

需要考慮和嘗試的一些事情:

  • 檢查伺服器是否供電不足(CPU/記憶體)
  • 檢查網路是否不是瓶頸(通過直接連接 2 個 SQL 伺服器並強製鏡像流量通過該直接連結)
  • 檢查 I/O 是否不是瓶頸(儘管這對我來說似乎不太可能,因為僅在鏡像打開時響應時間增加了 10 倍)。通常的東西適用:更好的硬體 RAID/記憶體,單獨的設備,……
  • 高性能模式是非同步的。如果這對您來說沒問題,那麼您可以使用複製而不是鏡像。(我忘記了這個功能的 MS 術語。)

引用自:https://serverfault.com/questions/37277