使用記憶體組態選項最佳化伺服器效能
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 memory 與 max 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 選項>。