Share via


使用記憶體組態選項最佳化伺服器效能

Microsoft SQL Server 的記憶體管理員元件,讓您無需手動管理 SQL Server 的可用記憶體。當 SQL Server 啟動時,它會根據作業系統與其他應用程式目前正在使用多少記憶體,動態決定要配置多少記憶體。隨著電腦與 SQL Server 的負載有所變更,記憶體的配置也會變更。如需詳細資訊,請參閱<記憶體架構>。

以下伺服器組態選項可用來設定記憶體使用狀況,以及用來影響伺服器效能:

  • min server memory

  • max server memory

  • max worker threads

  • index create memory

  • min memory per query

min server memory 伺服器組態選項可用來確定達到臨界值之後,SQL Server 不會釋出少於設定的伺服器記憶體。這個組態選項可以根據 SQL Server 的大小與活動設成特定值。如果選擇設定此值,請設定某個合理值以確定作業系統不會要求過多的 SQL Server 記憶體,而影響到 SQL Server 效能。

max server memory 伺服器組態選項可用來指定 SQL Server 啟動時與執行時可以配置的最大記憶體數量。如果您知道會有多個應用程式與 SQL Server 同時執行,且您要確保有足夠的記憶體來執行這些應用程式,就可以將此組態選項設定為特定的值。如果這些其他應用程式 (如 Web 或電子郵件伺服器) 只依所需要求記憶體,那麼就不要設定 max server memory 伺服器組態選項,因為 SQL Server 會在它們需要時釋放出記憶體。但應用程式多半會使用在啟動時可以取得的任何記憶體,同時不會在需要時再要求更多記憶體。如果以這種方式運作的應用程式與 SQL Server 同時在同一部電腦上執行的話,請設定 max server memory 伺服器組態選項的值,以保證 SQL Server 不會配置掉應用程式所需的記憶體。

不要因為想固定配置給 SQL Server 的記憶體數量,而將 min server memorymax server memory 伺服器組態選項設成同一個值。長時間下來,動態記憶體配置才能獲得最佳的整體效能。如需詳細資訊,請參閱<伺服器記憶體選項>。

maxworkerthreads 伺服器組態選項可指定用來支援使用者連接到 SQL Server 的執行緒數目。max worker threads 的預設值為 0,可讓 SQL Server 在啟動時自動設定工作者執行緒的數目。此設定對大部分系統來說都是最適合的,但仍需視系統組態而定,有時候將 max worker threads 設為特定的值可改善效能。如需詳細資訊,請參閱<max worker threads 選項>。

[!附註]

在 SQL Server 2000 中,max worker threads 的預設值為 255。將 SQL Server 2000 Database Engine 的執行個體升級到較新的版本後,仍會保留 max worker threads 的組態值。升級時,我們建議您將新執行個體的 max worker threads 值變更為 0,好讓 Database Engine 能夠計算最佳執行緒數目。

indexcreatememory 伺服器組態選項會控制索引建立過程中排序作業所用的記憶體數量。對生產系統建立索引通常是難得執行的工作,多半排程為工作在離峰時間執行。因此,既然是難得建立索引,而且是在離峰時間,所以增加這個值有助於改善建立索引的效能。但應儘量將 min memory per query 組態選項保持在較小的值,使索引建立作業即使無法取得要求的記憶體,還是會啟動。如需詳細資訊,請參閱<index create memory 選項>。

min memory per query 伺服器組態選項可用來指定執行查詢時會配置的最小記憶體數量。系統中同時有許多查詢在執行時,增加 min memory per query 的值有助於提升記憶體密集查詢的效能,如大量排序與雜湊作業。但是,不要將 min memory per query 伺服器組態選項設得太大,特別是在非常忙碌的系統上,因為查詢必須一直等到可以取得要求的最小記憶體,或是等到超過 query wait 伺服器組態選項中指定的值為止。如果可用的記憶體多於執行所需的指定最小值,那麼只要記憶體可以有效地供查詢使用,查詢就會利用額外的記憶體。如需詳細資訊,請參閱<min memory per query 選項>與<query wait 選項>。