SQL Server 叢集效能

SQL Server 叢集效能

有人能幫我回答一個我希望是一個很簡單的問題嗎?

假設我有一個針對 SQL Server 資料庫運行的應用程序,並且正在執行效能測試。如果我設置資料庫伺服器集群,我是否應該期望效能得到提高?或者這「只是」為我帶來了更好的正常運行時間和故障轉移等可用性特徵?

我傾向於認為後者,所以如果我覺得資料庫效能很弱,我應該致力於我的應用程式設計而不是購買額外的硬體...

問候,艾米爾

答案1

這在很大程度上取決於您的叢集的配置和存取方式。 「集群」這個詞可以涵蓋幾種不同的排列,這並沒有什麼幫助。

有些安排影響很小,有些會顯著減慢速度(例如,在多個活動伺服器中,事務需要等待所有伺服器更新後才被視為已提交,這可能會增加包括以下操作的操作相當大的交易延遲:插入/更新,伺服器之間的編組鎖定資訊也會類似地影響只讀操作),並且某些安排可能會加快速度(在鎖定要求允許的情況下,多個只讀副本可在多台電腦上進行唯讀負載)實例)

所以:是、否或也許!如果您[機器、作業系統、DBMS、叢集配置、存取叢集的程式碼(單一 Web 伺服器、許多 Web 伺服器、許多外部用戶端,...)、負載模式,...]詳細描述您的安排

(所以不幸的是,這並不是一個像您希望的那麼簡單的問題,抱歉!)

答案2

不,您不會看到任何性能提升。 MS SQL Server 中的叢集解決方案僅用於高可用性,而不是用於擴充或負載平衡。

您可以將叢集中的兩個節點設定為同時處於活動狀態,但它們將服務於不同的資料庫,並且仍然僅在另一個節點發生故障時「接管」資料庫。

從 SQL 伺服器獲得比一台伺服器更高的效能是一個複雜的問題,我會冒險聲稱,無論您的情況是什麼,使用更多的 RAM 都可以更輕鬆地解決資料庫效能問題,更快的磁碟,並透過調整資料庫代碼。

答案3

您必須擁有共享儲存 (SAN/NAS),其效能很可能比直接連接的磁碟更好,但叢集的效能並不比獨立實例更好。叢集僅用於降低硬體故障的風險。

相關內容