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。
說明 當 SQL Server 運行在 Microsoft Windows® 95 或 Microsoft Windows 98 上時,最大工作線程服務器配置選項不起作用。
index create memory 服務器配置選項控制創建索引時排序操作所使用的內存量。在生產系統上創建索引通常是不常執行的任務,通常調度為在非峰值時間執行的作業。因此,不常創建索引且在非峰值時間時,增加該值可提高索引創建的性能。不過,最好將 minmemoryperquery 配置選項保持在一個較低的值,這樣即使所有請求的內存都不可用,索引創建作業仍能開始。
minmemoryperquery 服務器配置選項可用於指定分配給查詢執行的最小內存量。當系統內有許多查詢並發執行時,增大 minmemoryperquery 的值有助於提高消耗大量內存的查詢(如大型排序和哈希操作)的性能。不過,不要將 minmemoryperquery 服務器配置選項設置得太高,尤其是在很忙的系統上,因為查詢將不得不等到能確保占有請求的最小內存、或等到超過 query wait 服務器配置選項內所指定的值。如果可用內存比執行查詢所需的指定最小內存多,則只要查詢能對多出的內存加以有效的利用,就可以使用多出的內存。