SQL Server ->> Enable Instant File Initialization(開啟檔案及時初始化)

來源:互聯網
上載者:User

標籤:

我們在安裝SQL Server的時候會在指定SQL Server各個服務的運行啟動賬戶的賬戶的時候看到底下有一個選項寫著“Grant Perform Volume Maintenance Task privilege.....”。準確的說,這個東西不是SQL Server的東西,“Perform Volume Maintenance Task”許可權屬於Windows的安全性原則(Security Policy)範疇,這裡其實只是通過一個UI介面改了本地的Windows安全性原則。

 

那“Perform Volume Maintenance Task”是個什麼東西呢?它代表的是Windows作業系統的“Instant File Initialization”特性。意思就是在Windows作業系統下,檔案在被建立的時候是否執行“zeroing out”任務,也就是把檔案系統分配給某個檔案的空間都通過寫0來清楚原先的資料。開啟了檔案及時初始化後在Windows下我們刪除一個檔案其實並沒有把磁碟上的資料清除,而是留到下一次這部分空間被重新利用的時候才來複寫。而“Instant File Initialization”的意思就是不執行“zeroing out”任務。

 

優點:

那麼回到SQL Server來談這個東西,它的作用就是在SQL Server每次檔案被建立或者發生空間增長的時候不清楚舊資料,從而提高效能。這點會影響到CREATE DATABASE, ALTER DATABASE, RESTORE和AUTOGROWTH等情境。

 

缺點/風險:

安全風險是開啟檔案及時初始化的缺點。

 

局限性:

1)LOG檔案不適用。至於說為什麼LOG檔案不適用,其實也不難理解。資料檔案空間分配背後有GAM,SGAM, PFS以及內部表來支援資料空間的中繼資料驗證,自然不會犯錯,把原本不該是“屬於自己的資料”當成是自己的,即便這部分資料還留在檔案裡面。可是LOG不同,LOG檔案沒有這層的邏輯來支援它。

2)不能是疏鬆檔案,比如Snapshot,DBCC CHECKDB命令運行時產生的結果檔案(這個檔案是自動產生);

3) Transparent Data Encryption資料庫選項不能被開啟;

4)跟蹤標記(Trace Flag)1806不能被啟用。這個標記的作用就是關閉及時檔案初始化特性的。兩者相斥。

 

那如果在安裝的時候沒勾選那個選項,後面怎麼去啟用呢?

開啟安全性原則修改就行。也就是這樣SQL Server服務帳號具備許可權就自動啟用的SQL Server的檔案及時初始化。添加許可權需要重啟SQL Server服務,刪除許可權則需要重啟伺服器。

 

參考文獻:

SQL Server Premier Field Engineer Blog -- How and Why to Enable Instant File Initialization

 

SQL Server ->> Enable Instant File Initialization(開啟檔案及時初始化)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.