在我的大多数服务器中,我都要运行dbcc校验dbcc计划。
我可以通过DBCC DBINFO()获得最后一个已知的良好DBCC。
我可以读取sql server日志中留下的轨道。和我得到的图片如下:
或者我可以运行以下脚本:
IF OBJECT_ID('TEMPDB..#MAINT') IS NOT NULL
DROP TABLE #maint
CREATE TABLE #maint (Results varchar(255) NULL)
INSERT INTO #maint(Results) EXEC('master..xp_cmdshell ''sqlcmd -E -Q"dbcc checkdb([my_database])"''')
select * from #maint
得到这样的东西:
我也可以看看默认的跟踪。
我在找什么?
如何找出上一次运行dbcc checkdb需要多长时间。
发布于 2019-09-27 08:40:32
发布于 2019-09-27 08:36:22
如果我正确理解
EXEC sp_readerrorlog 0, 1, 'dbcc'
将为您提供所需的原始数据。
要把它整理好,你可以用以下的方法
DECLARE @tempLog as Table (logdate datetime, theSpid varchar(10), theText varchar(max))
INSERT INTO @tempLog EXEC sp_readerrorlog 0, 1, 'dbcc'
SELECT
SUBSTRING(thetext,CHARINDEX('(',theText) + 1,(CHARINDEX(')',theText)+LEN(')'))-CHARINDEX('(', theText) - 2) as theDatabase,
SUBSTRING(thetext,CHARINDEX('Elapsed Time:',theText),(CHARINDEX('seconds',theText)+LEN('seconds'))-CHARINDEX('Elapsed time: ', theText)) as DBBC_CheckDB_Time
FROM @tempLog
希望这有帮助
https://dba.stackexchange.com/questions/249806
复制相似问题