这篇不知算不算原创。当然,每一个字都是自已打的。
最近研究SQL Server 2008 各方面的知识点。当用Google搜索日志的时候。无意中搜到一个无文档函数:fn_dblog (当然,还有dbcc log)
fn_dbLog的作用是查看日志信息,但列很多,又无官方文档说明。fn_dbLog可以提供两个参数。一个是startLSN ,第二个是endLSN。不提供用null。LSN的格式是'数字:数字:数字'(由于没有深入研究。这些数字代表什么没有了解).只知道最后两个数字。如果填16:1就一定不会错。使用方法很简单:
select * from sys.fn_dblog(null,null)
如果日志文件很大,估计读出来很长。最后是确定lsn。对应的查询条件是[Current Lsn]列,当然是用参数传进去。
因为列数大多。只说一个几个主要的例.
[Operation]:说明是什么操作,如果比较关注的时 LOP_INSERT_ROWS LOP_MODIFY_ROW LOP_DELETE_ROWS 对应的操作是插入、更新和删除。
[offset in Row]:只对用update操作吧。更新行的偏移量。
[Modify Size]:更新的长度。应是指byte
[RowLog Contents 0] LOP_INSERT_ROWS-就是插入行的数据,LOP_DELETE_ROWS-删除行的数据, LOP_MODIFY_ROW 修改前的数据(部份,根据[offset in Row]和[Modify Size]确定更新那一部份)。
[RowLog Contents 1] LOP_MODIFY_ROW 的时候是修改后的内容。
第二个找到的是
DBCC IND 和 DBCC PAGE
先说 DBCC IND 吧 有三个参数,第一个是数据库名,每二个是表名,每二个是索引号(序号,通常写-1取是聚集索引的)。返回的结果是表所在的文件组和文件序号等。
主要看的是:[Page Type]=1的.
DBCC PAGE 是查看页信息 ,四个参数分别是 数据库名、PageFID,PagePID,输出选项 再加WITH TABLERESULTS,则用表格输出。每二三个参数,参考DBCC IND的结果
但如果要输出,还要加一个监听 DBCC TRACEOn(3604)在调用dbcc page 之前