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 Server2014資料庫清理日誌SQLServer資料庫
- 【Spring】日誌列印sql,日誌配置列印sqlSpringSQL
- SQL server資料庫高可用日誌傳送的方法SQLServer資料庫
- SQL Server中事務日誌自動增長對效能的影響(下)PGSQLServer
- SQL Server中事務日誌自動增長對效能的影響(上)OSSQLServer
- 39,日誌列印sql 配置SQL
- Laravel sql 日誌記錄LaravelSQL
- SQL Server 2000/2005/2008刪除或壓縮資料庫日誌的方法SQLServer資料庫
- 在SQL Server上測試事務日誌的自動增長(三)QOSQLServer
- 在SQL Server上測試事務日誌的自動增長(二)TGSQLServer
- 在SQL Server上測試事務日誌的自動增長(一)JPSQLServer
- SQL Server誤區 一個例項多個映象和日誌傳送延遲SQLServer
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- mybatis-plus匯入sql日誌MyBatisSQL
- mybatis log sql日誌輸出外掛MyBatisSQL
- SQL Server中GROUP BY(連結)SQLServer
- .sql檔案匯入到sql server中SQLServer
- 中繼日誌中繼
- web server apache tomcat11-22-logging 日誌WebServerApacheTomcat
- SQL語句收縮日誌檔案SQL
- laravel5.7 不記錄 sql 報錯日誌,自定義日誌資訊LaravelSQL
- sql server中巢狀事務*SQLServer巢狀
- SQL Server 中的 ACID 屬性SQLServer
- 程式中的日誌
- sql serverSQLServer
- 伺服器可靠性:一個9的差距究竟有多大?伺服器
- SQL2005、2008、2000 清空刪除日誌SQL
- 【SQL】Oracle 歸檔日誌暴增原因分析SQLOracle
- SQL Server 中的一些概念SQLServer
- SQL Server中的版本號如何理解SQLServer
- Spark SQL:實現日誌離線批處理SparkSQL
- Moebius for SQL ServerSQLServer
- sql server 使用SQLServer
- SQL Server教程SQLServer
- SQL Server中的日期和時間:DATEADD()SQLServer
- SQL Server 中將字串按數字排序SQLServer字串排序
- 淺談SQL Server中的快照問題SQLServer