天天看點

SQL Server Log檔案對磁盤的寫操作大小是多少

SQL Server 資料庫有三種檔案類型,分别是資料檔案、次要資料檔案和日志檔案,其中日志檔案包含着用于恢複資料庫的所有日志資訊,SQL Server總是先寫日志檔案ldf,資料變化寫入mdf則可以滞後,是以日志寫入的速度在一定程式上決定了SQL Server所能承載的寫事務量,那麼ldf寫入大小是多少呢?

要知道SQL Server寫 Log的大小,這裡使用工具Process Monitor

這裡設定一個Filter,以滿足隻收集SQL Server 寫日志,如下圖所示:

<a href="http://www.sqlcn.com/wp-content/uploads/2014/05/image.png"></a>

在一個OLTP生産環境的結果分析如下:

從中可以看到這個UserDB.ldf的Log寫入是順序寫,寫入大小以1024byte為主:

<a href="http://www.sqlcn.com/wp-content/uploads/2014/05/image1.png"></a>

<a href="http://www.sqlcn.com/wp-content/uploads/2014/05/image2.png"></a>

通過上面的結果,針對Log檔案ldf的寫要求,我們在選擇磁盤及RAID時,如何來做呢?推薦使用工具SQLIO來做一個針對單線程順序寫1kb硬體性能比對測試,來模拟Log寫操作,這個将在以後的文章裡進行測試。

那麼,SQL Log寫入ldf一定是以1024byte最多嗎?這個不一定的,以下是在另外的OLTP下得到的結果:

<a href="http://www.sqlcn.com/wp-content/uploads/2014/05/903HOA0GISZHIJKA3BF.jpg"></a>

<a href="http://www.sqlcn.com/wp-content/uploads/2014/05/FZWU6NTIDS2S5U_6N9.jpg"></a>

下面這個是Tempdb:

<a href="http://www.sqlcn.com/wp-content/uploads/2014/05/IA4JBQ2G9MO4S0R17Q.jpg"></a>

那麼你的是多少呢?可以用Process Monitor下測下。

<a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx" target="_blank">Process Monitor下載下傳位址</a>

收集到的資料存成Logfile.CSV.

然後用下列語句進行分析: