Sql-Server

如何在 SQL-server 2019 中使用“fn_dblog”

  • July 11, 2022

我之前的問題中,我詢問瞭如何知道我的 SQL-Server 2019 數據庫中發生了什麼。過了一會兒,我發現有一種表格,叫做fn_dblog,它提供了一些有趣的資訊,但我仍然有一些問題(字面意思是從上一個問題複製而來):

SELECT Top 10 [Begin Time] [End Time]
 FROM fn_dblog(null,null)
 WHERE UPPER(AllocUnitName) LIKE '%TABLENAME_STATUS%'

…由我的 Microsoft SQL Server Management Studio 提出的位置[Begin Time]和位置。[End Time]令我驚訝的是,結果如下所示:

Title: End Time
NULL
...
NULL

現在我有以下問題:

  • [Begin Time]柱子怎麼了?
  • 為什麼[End Time]沒有填寫?
  • 當我將普通的 SQL 查詢結果復製到剪貼板時,列名也會被複製,但是當我複制與 相關的 SQL 查詢的結果時fn_dblog,列名不會出現在剪貼板中。為什麼會這樣,我該如何改變呢?

除此之外,我還發現了另一個“表”,名為fn_full_dblog,但更糟糕的是:

SELECT Top 10 * 
 FROM sys.fn_full_dblog(null,null, null, null, null, null, 
                        null, null, null, null,null)
 WHERE UPPER(AllocUnitName) LIKE '%TABLENAME_STATUS%'

=> 根本沒有結果!

有人可以給我一些關於如何閱讀fn_dblog以及可能fn_full_dblog或任何其他可能使用有趣資訊的“表格”的資訊嗎?

提前致謝

最重要的是,它fn_dblog無證的。

微軟沒有官方支持;它可以隨時更改或刪除,您不應依賴它。

由於它沒有記錄,因此您無法獲得有關列的問題的官方答案。

其次,它不是工作的正確工具。您正在讀取事務日誌,這是循環的。您必須定期輪詢它以確保您不會失去數據條目。

此外,讀取和過濾事務日誌也不實用。沒有索引,因此您每次都讀取(可能很大)日誌。

也就是說,這是該函式作者的一篇文章。

https://www.sqlskills.com/blogs/paul/using-fn_dblog-fn_dump_dblog-and-restoring-with-stopbeforemark-to-an-lsn/

引用自:https://dba.stackexchange.com/questions/314272