亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

如何讀懂SQL Server的事務日志

2024-08-31 00:55:41
字體:
來源:轉載
供稿:網友
如何讀懂SQL Server的事務日志簡介

本文將介紹SQL Server的事務日志中記錄了哪一些信息,如何來讀懂這些事務日志中信息。首先介紹一個微軟沒有公開的函數fn_dblog,在文章的接下來的部分主要用到這個函數來讀取事務日志。

  1. fn_dblog(@StartingLSN,@EndingLSN)
  2. --@StartingLSN:表示起始的LSN號,如果為NULL值則表示從首日志記錄開始查詢。
  3. --@EndingLSN:表示結束的LSN號,如果為NULL值則表示查詢到尾日志記錄。
  4. --需要注意的是我們平時所看到的LSN都是十六進制的,而這邊的參數需要轉化為十進制,如00000021:00000077:0003在作為參數傳給fn_dblog時需要轉換為33:119:3
正文
  1. --創建測試數據庫
  2. USE [master];
  3. GO
  4. CREATEDATABASE TestDB;
  5. GO
  6. -- 創建表
  7. USE TestDB;
  8. GO
  9. CREATETABLE [Location] (
  10. ????[Sr.No] INTIDENTITY,
  11. ????[Date] DATETIMEDEFAULT GETDATE (),
  12. ????[City] CHAR (25) DEFAULT 'xiamen');

通過上面的代碼創建了一個名為TestDB的數據庫,并創建了一個三個字段的表。接下看看事務日志的內容

  1. USE TestDB;
  2. GO
  3. select [Current LSN],
  4. ???????[Operation],
  5. ???????[Transaction Name],
  6. ???????[Transaction ID],
  7. ???????[Transaction SID],
  8. ???????[SPID],
  9. ???????[BeginTime]
  10. FROMfn_dblog(null,null)

從上圖可以看出總共產生了195行日志記錄,我截取了部分的結果,在Operation列中記錄了對應的LSN所做的操作,其中LOP_BEGIN_XACT表示一個事務的開始,Transaction Name顯示了創建的數據庫的名稱,而Trasaction ID則記錄了所對應的事務ID。下面列出Operation幾種比較常見而重要的值

  • LOP_BEGIN_XACT 事務的開始
  • LOP_LOCK_XACT 獲取鎖
  • LOP_MODIFY_ROW 修改行(具體修改的對象可以查看AllocUnitName)
  • LOP_COMMIT_XACT 提交事務
  • LOP_DELETE_ROWS 刪除數據
  • LOP_INSERT_ROWS 插入數據

接下來向表中插入100行數據,并查看對應的事務日志,代碼如下:

  1. INSERTINTO Location DEFAULTVALUES
  2. GO 100
  3. GO
  4. ?
  5. SELECT
  6. ?[Current LSN],
  7. ?[Transaction ID],
  8. ?[Operation],
  9. ??[Transaction Name],
  10. ?[CONTEXT],
  11. ?[AllocUnitName],
  12. ?[Page ID],
  13. ?[Slot ID],
  14. ?[BeginTime],
  15. ?[EndTime],
  16. ?[Number of Locks],
  17. ?[Lock Information]
  18. FROM sys.fn_dblog(NULL,NULL)
  19. WHERE Operation = 'LOP_INSERT_ROWS' AND AllocUnitName = 'dbo.Location'

得到如上圖所示的結果,返回的行數與我們insert的次數一致,接下來取其中的一個Trasaction ID來看看一次insert在事務日志中記錄了哪些動作。

  1. SELECT
  2. ?[Current LSN], [Transaction ID], [Operation], [Transaction Name], [CONTEXT], [AllocUnitName], [Page ID], [Slot ID], [BeginTime], [EndTime], [Number of Locks], [Lock Information]
  3. FROM sys.fn_dblog(NULL,NULL)
  4. WHERE [Transaction ID] = '0000:000002fc'

從圖中可以看出這個Transaction執行步驟的詳細信息

  • 在2014/05/25 18:35:39:197事務開始
  • 在堆表dbo.Location的PAGEID為0001:0000004f插入數據
  • 在2014/05/24 18:35:39:200提交事務

下面這一段是我從Lock Information欄位復制出的內容,來詳細的看一下

  1. HoBt 72057594039042048:ACQUIRE_LOCK_IX OBJECT: 6:245575913:0 ;ACQUIRE_LOCK_IX PAGE: 6:1:79 ;ACQUIRE_LOCK_X RID: 6:1:79:0

通過下面的代碼我們來驗證一下,這樣一條INSERT語句所獲得的鎖信息

  1. DBCC TRACEON(-1,3604)
  2. DBCC TRACEON (-1,1200)--查看當前session的鎖信息
  3. BEGINTRAN
  4. INSERTINTO Location DEFAULTVALUES
  5. ROLLBACKTRAN
  6. DBCC TRACEOFF ( -1,1200)
  7. DBCC TRACEOFF ( -1,3604)
  8. /*
  9. PRocess 57 acquiring IX lock on OBJECT: 6:245575913:0 (class bit2000000 ref1) result: OK
  10. Process 57 acquiring IX lock on PAGE: 6:1:79 (class bit2000000 ref0) result: OK
  11. Process 57 acquiring X lock on RID: 6:1:79:90 (class bit2000000 ref0) result: OK
  12. */

可以看到Lock Information欄位所記錄的信息與1200跟蹤標記鎖輸出的信息是一致的。

另外從事務日志中還可以看到SQL Server的一些內部操作,并看到這些操作一些具體信息,如開始的時間,進行的次數,操作的步驟等等。接下來看看頁拆分的動作

  1. --查找頁拆分動作的Transaction
  2. SELECT
  3. ?[Current LSN], [Transaction ID], [Operation], [Transaction Name], [CONTEXT], [AllocUnitName], [Page ID], [Slot ID], [BeginTime], [EndTime], [Number of Locks], [Lock Information]
  4. FROM sys.fn_dblog(NULL,NULL)
  5. WHERE [Transaction Name] = 'SplitPage'
  6. --查看具體Transaction中的動作
  7. SELECT
  8. ?[Current LSN], [Transaction ID], [Operation], [Transaction Name], [CONTEXT], [AllocUnitName], [Page ID], [Slot ID], [BeginTime], [EndTime], [Number of Locks], [Lock Information]
  9. FROM sys.fn_dblog(NULL,NULL)
  10. WHERE [Transaction ID] = '0000:000002f8'

結語

通過了解事務日志中所記錄的內容,可以更方便我們去了解SQL Server所做的一些操作的執行過程。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美午夜宅男影院在线观看| 理论片在线不卡免费观看| 亚洲色图欧美制服丝袜另类第一页| 亚洲成人三级在线| 亚洲一区美女视频在线观看免费| 一区二区三区国产在线观看| 国产精品香蕉av| 国产这里只有精品| 国产精品69久久久久| 亚洲精品自在久久| 亚洲精品欧美极品| 久久激情视频免费观看| 日韩欧美第一页| 日本在线观看天堂男亚洲| 日韩精品在线免费观看| 欧美中文在线视频| 一区二区三区天堂av| 欧美天天综合色影久久精品| 日本韩国欧美精品大片卡二| 成人免费黄色网| 尤物yw午夜国产精品视频| 国产精品黄色影片导航在线观看| 日本久久久久久久| 日韩精品免费电影| 一区二区亚洲欧洲国产日韩| 77777亚洲午夜久久多人| 懂色aⅴ精品一区二区三区蜜月| 欧美精品videos性欧美| 欧美性生交xxxxx久久久| 性欧美长视频免费观看不卡| 黑人狂躁日本妞一区二区三区| 91久久精品一区| 日韩精品中文字幕有码专区| 成人xvideos免费视频| 精品高清一区二区三区| 91亚洲精品在线观看| 欧美日韩精品中文字幕| 久久精品视频在线| 国产精品91在线| 91精品久久久久久久久不口人| 欧美激情成人在线视频| 色妞一区二区三区| 国产欧美日韩91| 国产精品视频大全| 欧美日韩人人澡狠狠躁视频| 亚洲电影在线看| 久久av红桃一区二区小说| 国产精品久久久久免费a∨大胸| 中文字幕日韩在线观看| 久久久久久久久久久人体| 欧美成人午夜免费视在线看片| 伊人久久男人天堂| 成人国产精品久久久| 久久影院中文字幕| 亚洲黄一区二区| 亚洲欧美在线免费观看| 美女视频黄免费的亚洲男人天堂| 亚洲国产精品资源| 亚洲最大福利网站| 欧美精品少妇videofree| 亚洲精品久久久一区二区三区| 中文字幕综合一区| 精品动漫一区二区| www.日韩.com| 亚洲激情 国产| 亚洲成人黄色网址| 久久国产精品久久久久久久久久| 国产日本欧美一区二区三区| 欧亚精品在线观看| 国产成人黄色av| 国产一区二区三区丝袜| 日韩有码视频在线| 国产日韩精品综合网站| 国产精品wwww| 午夜精品久久久久久久久久久久久| 奇米影视亚洲狠狠色| 欧美亚洲在线播放| 精品久久久久久久久中文字幕| 中文字幕日韩视频| 4388成人网| 久久激情五月丁香伊人| 欧美色播在线播放| 亚洲国产成人久久综合一区| 欧美高清视频免费观看| 国产91热爆ts人妖在线| 欧美最猛性xxxxx亚洲精品| 亚洲国产91精品在线观看| 日韩高清电影免费观看完整| 久久综合免费视频| 欧美大奶子在线| 亚洲精品女av网站| 国内精品一区二区三区| 国模私拍一区二区三区| 欧美在线一级视频| 亚洲 日韩 国产第一| 亚洲欧美日韩一区二区三区在线| 亚洲欧洲一区二区三区在线观看| 精品国产老师黑色丝袜高跟鞋| 中文字幕欧美专区| 久久久久九九九九| 韩日欧美一区二区| 日本19禁啪啪免费观看www| 亚洲高清不卡av| 欧美中文字幕第一页| 永久免费精品影视网站| 日韩视频在线免费| 久久不射电影网| 亚洲第一男人av| 欧美视频在线免费| 中国人与牲禽动交精品| 尤物九九久久国产精品的分类| 久久97久久97精品免视看| 国产精品一区二区三区成人| 性欧美视频videos6一9| 日韩专区在线观看| 另类美女黄大片| 岛国视频午夜一区免费在线观看| 97视频免费在线看| 日韩精品在线看| 成人av电影天堂| 国产成人精品免高潮在线观看| 国产精品扒开腿做爽爽爽的视频| 国产欧美精品一区二区| 欧美精品午夜视频| 国产精品美女久久久免费| 日韩人体视频一二区| 久久久久久久一区二区三区| 日本亚洲精品在线观看| 国产不卡av在线免费观看| 欧美亚洲国产视频| 国产精品久久久久久久久久小说| 国产成人精品999| 国产噜噜噜噜噜久久久久久久久| 亚洲精品福利资源站| 欧美日韩不卡合集视频| 欧美专区日韩视频| 精品免费在线观看| 成人做爰www免费看视频网站| 91精品国产色综合| 中文字幕亚洲一区二区三区五十路| 亚洲成人黄色在线观看| 成人a免费视频| 国产91在线视频| 国产精品91免费在线| 国产有码一区二区| 成人在线视频网站| 国产亚洲欧美日韩一区二区| 成人黄色av免费在线观看| 亚洲免费视频一区二区| 91国产视频在线播放| 97精品欧美一区二区三区| 中文字幕日韩在线播放| 欧美丰满少妇xxxxx| 97视频在线观看网址| 国产精彩精品视频| 日韩在线高清视频| 91嫩草在线视频| 日韩久久精品成人| 日韩成人在线视频观看| 欧美精品少妇videofree| 91精品免费视频| 欧美性xxxxxxxxx| 国产va免费精品高清在线观看| 欧美有码在线视频|