Microsoft® SQL Server™ 2000 的內存管理組件消除了對 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 的大小及活動將該配置選項設置為特定的值。始終將 min server memory 服務器配置選項設置為某個合理的值,以確保操作系統不向 SQL Server 請求太多內存而影響 SQL Server 性能。
max server memory 服務器配置選項可用於:在 SQL Server 啟動及運行時,指定 SQL Server 可以分配的最大內存量。如果知道有多個應用程序與 SQL Server 同時運行,而且想保障這些應用程序有足夠的內存運行,可以將該配置選項設置為特定的值。如果這些其它應用程序(如 Web 服務器或電子郵件服務器)只根據需要請求內存,則 SQL Server 將根據需要給它們釋放內存,因此不要設置 max server memory 服務器配置選項。然而,應用程序通常在啟動時不假選擇地使用可用內存,而如果需要更多內存也不請求。如果有這種行為方式的應用程序與 SQL Server 同時運行在相同的計算機上,則將 max server memory 服務器配置選項設置為特定的值,以保障應用程序所需的內存不由 SQL Server 分配出。
不要將 min server memory 和 max server memory 服務器配置選項設置為相同的值,這樣做會使分配給 SQL Server 的內存量固定。動態內存分配可以隨時間提供最佳的總體性能。有關更多信息,請參見服務器內存選項。
max worker threads 服務器配置選項可用於指定為用戶連接到 SQL Server 提供支持的線程數。255 這一默認設置對一些配置可能稍微偏高,這要具體取決於並發用戶數。由於每個工作線程都已分配,因此即使線程沒有正在使用(因為並發連接比分配的工作線程少),可由其它操作(如高速緩沖存儲器)更好地利用的內存資源也可能是未使用的。一般情況下,應將該配置值設置為並發連接數,但不能超過 1,024。有關更多信息,請參見max worker threads 選項。
說明 當 SQL Server 運行在 Microsoft Windows® 95 或 Microsoft Windows 98 上時,最大工作線程服務器配置選項不起作用。
index create memory 服務器配置選項控制創建索引時排序操作所使用的內存量。在生產系統上創建索引通常是不常執行的任務,通常調度為在非峰值時間執行的作業。因此,不常創建索引且在非峰值時間時,增加該值可提高索引創建的性能。不過,最好將 min memory per query 配置選項保持在一個較低的值,這樣即使所有請求的內存都不可用,索引創建作業仍能開始。有關更多信息,請參見 index create memory 選項。
min memory per query 服務器配置選項可用於指定分配給查詢執行的最小內存量。當系統內有許多查詢並發執行時,增大 min memory per query 的值有助於提高消耗大量內存的查詢(如大型排序和哈希操作)的性能。不過,不要將 min memory per query 服務器配置選項設置得太高,尤其是在很忙的系統上,因為查詢將不得不等到能確保占有請求的最小內存、或等到超過 query wait 服務器配置選項內所指定的值。如果可用內存比執行查詢所需的指定最小內存多,則只要查詢能對多出的內存加以有效的利用,就可以使用多出的內存。