SQL Server中In-Flight日誌究竟有多大
在SQL Server中,利用日誌的WAL來保證關聯式資料庫的永續性,但由於硬碟的特性,不可能使得每生成一條日誌,就直接向磁碟寫一次,因此日誌會被快取起來,到一定資料量才會寫入磁碟。這部分已經生成的,卻沒有寫入磁碟的日誌,就是所謂的In-Flight日誌。
在SQL Server中,In-Flight的日誌的大小取決於兩個因素,根據Paul Randal的說法,In-Flight日誌不能超過60K,因此In-Flight的日誌最大是60K,此外,如果In-Flight日誌沒有到60K,如果發生了Commit或Rollback,那麼直接會寫入磁碟。因此日誌最小為512位元組,最大為60K,以512位元組為單位進行增長。下面我們來看一個例子。
我們首先建立一個簡單的表,迴圈向其中插入10W的資料,該語句會生成大量的日誌,如程式碼清單1所示:
BEGIN TRAN DECLARE @i INTEGER SET @i = 0 WHILE ( @i程式碼清單1.生成大量日誌的語句
資料庫我以5M日誌為起點,以5M遞增,上面的語句導致日誌自動增長,如圖1所示。
圖1.對應的6次日誌增長
我們再來觀察SQL Server程式對於日誌檔案的操作,如圖2所示:
圖2.SQL Server程式對於日誌檔案的寫
圖2中的圖片我只擷取了一小部分,但是可以看到沒有超過60K的log block,只有在日誌檔案填零增長時,才出現5M的塊。因此我對於微軟亞太資料庫支援組的博文:http://blogs.msdn.com/b/apgcdsd/archive/2013/06/17/sql-server-log-write.aspx中說到會出現超過60K的log write產生一些疑問,畢竟日誌填零增長和logWrite不是一回事。
因此,得知這一點之後,對於日誌所在的LUN,分配單元64K應該是對於效能來說最優的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4548/viewspace-2800948/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 收縮日誌SQLServer
- SQL Server 錯誤日誌SQLServer
- SQL Server 日誌傳送配置SQLServer
- 淺談SQL Server中的事務日誌(轉載)SQLServer
- SQL Server 事務日誌傳輸SQLServer
- sql server日誌不能shrink或truncateSQLServer
- SQL Server事務日誌介紹SQLServer
- 壓縮SQL SERVER日誌程式碼SQLServer
- 清除SQL Server資料庫日誌SQLServer資料庫
- SQL Server重做日誌管理機制SQLServer
- SQL Server ErrorLog 錯誤日誌SQLServerError
- SQL Server中合併使用者日誌表的方法SQLServer
- 減小SQL SERVER的日誌檔案SQLServer
- 關於SQL Server 截斷日誌[zt]SQLServer
- 清除SQL Server日誌的方法介紹SQLServer
- SQL Server 檢視資料庫日誌SQLServer資料庫
- Sql Server 2005 日誌壓縮SQLServer
- SQL SERVER 2005 日誌收縮SQLServer
- MS SQL Server 事務日誌介紹SQLServer
- SQL Server 2005 日誌刪除和日誌檔案限制SQLServer
- SQL Server日誌檔案總結及日誌滿的處理SQLServer
- SQL Server中 error log 日誌檔案如何手動切換SQLServerError
- [zt] SQL Server日誌檔案總結及日誌滿的處理SQLServer
- SQL Server 收縮事務日誌的方法SQLServer
- 刪除SQL Server日誌的具體方法SQLServer
- 清除 SQL SERVER 2005 事務日誌SQLServer
- SQL Server事務日誌的處理方法SQLServer
- SQL Server大型事務日誌的備份SQLServer
- SQL Server 清除資料庫日誌指令碼SQLServer資料庫指令碼
- SQL SERVER日誌清除的兩種方法(轉)SQLServer
- 淺談SQL Server中的事務日誌(一)----事務日誌的物理和邏輯構架SQLServer
- sql server日誌檔案總結及日誌滿的處理辦法SQLServer
- SQL Server 無日誌檔案附加資料庫SQLServer資料庫
- SQL Server備份事務日誌結尾(Tail)SQLServerAI
- SQL Server無日誌資料庫恢復模式SQLServer資料庫模式
- 啟用日誌傳送 (SQL Server Management Studio)SQLServer
- SQL Server事務日誌過大的處理SQLServer
- SQL Server資料庫事務日誌儲存序列SQLServer資料庫