在MSSQL中,每个星期六都会开始维护计划,在那里重新构建一些索引。在过去的一个月里,它总是在几个小时后失败的消息:步骤失败。
Executed as user: NT AUTHORITY\SYSTEM.
...PK_dbo.__MigrationHistory] ON [dbo].[__MigrationHistory] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = OFF, FILLFACTOR = 90)
[SQLSTATE 01000] (Message 0) ITEM 2 FROM 508 [SQLSTATE 01000] (Message 0) ALTER INDEX [PK_dbo.__MigrationHistory] ON [dbo].[__MigrationHistory] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = OFF, FILLFACTOR = 90)
[SQLSTATE 01000] (Message 0) ITEM 3 FROM 508 [SQLSTATE 01000] (Message 0) ALTER INDEX [PK_dbo.ONEINDEX] ON [dbo].[TABLE1] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = OFF, FILLFACTOR = 90)
[SQLSTATE 01000] (Message 0) ITEM 4 FROM 508 [SQLSTATE 01000] (Message 0) ALTER INDEX [PK_dbo.INDEX] ON [dbo].[TABLE2] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
... The step failed.我如何进一步调查这个问题呢?我想在某个地方有一个暂停时间,但需要找出答案。
发布于 2023-05-09 12:04:13
你发的那条短信到底是从哪里来的?
对于主计划,您有三个诊断信息(错误信息等):
下面是一个查询msdb数据库中代理作业历史表的示例查询:
SELECT j.name, jh.run_date, jh.run_time, jh.message, *
FROM msdb.dbo.sysjobhistory AS jh
INNER JOIN msdb.dbo.sysjobs AS j ON jh.job_id = j.job_id
ORDER BY
j.name
,jh.run_date DESC
,jh.run_time
,jh.instance_id DESC下面是维护计划历史表的示例查询:
SELECT *
FROM msdb.dbo.sysmaintplan_log AS spl
INNER JOIN msdb.dbo.sysmaintplan_logdetail AS ld ON ld.task_detail_id=spl.task_detail_id您发布的内容不包括错误信息,因此仅凭此我们就无能为力。查看我上面列出的其他来源,看看它们是否会有所帮助。
注意1:维护计划没有最好的声誉。使用其他东西是很常见的,比如Ola Hallengren的维护解决方案。
注2:人们可能会争辩说,盲目地去碎片化索引不会得到任何东西(或更多)。下面是是我写的一篇关于这个主题的博文。
https://dba.stackexchange.com/questions/326896
复制相似问题