Sql-Server

SQL Server - 強制數據庫在記憶體中?

  • May 1, 2013

我們有一個執行 SQL Server 2005 64 位的強大的 Windows 2008 x64 伺服器(4 x 4 核 CPU,32GB RAM)。我們有一個小(6GB)但非常重要的數據庫,在頁面記憶體在記憶體中之前訪問速度有點慢(使用非常隨機 I/O,因此給定頁面在記憶體中的機率非常低,最終使用者抱怨最初的緩慢)。磁碟足夠快(本地 15K SAS),但我猜該應用程序編寫得有些笨拙(這是一個 COTS 解決方案)所以我想知道是否有辦法在 SQL Server 2005 中“強制”記憶體中的數據庫(不支持 2008由供應商,所以我們不應該升級到那個)來幫助避免最初的記憶體填充憂鬱?

我目前的方法是,我從腳本中的每個表執行 SELECT * 以獲取記憶體中的數據頁,但此方法未記憶體某些對象(索引、全文搜尋等)(並修改腳本以詢問索引和將適當的 WHERE 子句寫入記憶體是複雜的)。

不,不幸的是,沒有辦法強制數據庫進入記憶體。你的蠻力方法可能是最直接的。您可以通過使用具有非常低的門檻值設置的索引碎片整理腳本來更接近,例如說如果索引碎片為 1%,則重建索引,如下所示:

http://sqlserverpedia.com/wiki/Index_Maintenance

這將花費更長的時間並涉及更多的磁碟寫入,但它會產生碎片整理索引和更新統計資訊的副作用,無論如何這是一個好主意。

引用自:https://serverfault.com/questions/2760