有时某些 SQL Server 维护计划任务可能会出现问题,例如 Shrink Database、Rebuild Index、Update Statistics 等。我想在 SQL Server 实例上搜索其中一项或多项任务的使用情况,以便进一步查看是否有必要。
有没有办法查询执行一项或多项特定任务的维护计划?
(不限于我提到的任务。)
有时某些 SQL Server 维护计划任务可能会出现问题,例如 Shrink Database、Rebuild Index、Update Statistics 等。我想在 SQL Server 实例上搜索其中一项或多项任务的使用情况,以便进一步查看是否有必要。
有没有办法查询执行一项或多项特定任务的维护计划?
(不限于我提到的任务。)
是的。这可以通过使用系统 SSIS 表和 XQuery 的组合来完成。
注意:在 SQL 2012 中,这仅适用于在 SSMS 中创建的维护计划。如果您使用 Data Tools 部署了通过项目部署模型执行维护的包,这将不起作用。
XQuery
如果您不熟悉 XQuery,可以从这里开始。
查找任务的任务 ExecutionType(s)
您需要找到的第一件事是您要查找的任务的 ExecutionType。
查询 msdb..sysssispackages 以获取计划名称。
根据维护计划名称检索包 XML 的示例查询:
单击 PackageDataXml 列中的结果,这将在另一个查询选项卡中打开原始 XML。
在新打开的 XML 选项卡中,搜索字符串“ExecutableType”。(这里不需要什么花哨的东西 - 只是很好的老式 CTRL+F。)
使用 ExecutableType(s) 搜索维护计划
以下查询使用在上述步骤中找到的 XQuery 和 ExecutableType 值在所有维护计划中进行搜索。