[SQL] [效能] Buffer Pool Extension

Buffer Pool Extension

SSD

參考文件:

1. https://blogs.technet.microsoft.com/dataplatforminsider/2014/09/25/using-ssds-in-azure-vms-to-store-sql-server-tempdb-and-buffer-pool-extensions/
2. https://msdn.microsoft.com/en-us/library/dn133176(v=sql.120).aspx

重點:

1. 為了彌補主機記憶體不夠應付大量交易,利用SSD快速I/O的特性當RAM與實體磁碟中的第二道Cache

2. BPE檔案一般是設實體記憶體的4~6倍,視SSD大小而定

3. 若這次設32G,下次設定只能比前一次大,不然會有ERROR

    Msg 868, Level 16, State 1, Line 1

    Buffer pool extension size must be larger than the current memory allocation threshold 3426 MB. Buffer pool extension is not enabled.

   要重啟SQL Service才能清除紀錄。

4. 語法:

    SET ON: 

    ALTER SERVER CONFIGURATION
    SET BUFFER POOL EXTENSION ON
    (FILENAME = 'B:\SQLTEMP\ExtensionFile.BPE', SIZE = 80 GB);
    GO

    SET OFF:

    ALTER SERVER CONFIGURATION 
    SET BUFFER POOL Extension OFF

5. 就算SSD卸載,也只是無法Create BPE檔案,不影響SQL SERVICE啟動

PS. 若原先就把TempDM 放在SSD,若SSD掛點,SQL Service會因無法讀取TempDB檔案而無法啟動

解決方法:使用Command Line與SQL Command

資料:http://www.xtivia.com/start-sql-server-lost-tempdb-data-files/