全部,
我目前正在整理一篇基于知识的文章,我们可以将其交给我们的帮助台以进行一些初步的故障排除或信息收集。我所做的其中一件事是创建能力(感谢 Brent,https: //www.brentozar.com/askbrent),让非系统管理员能够运行 sp_whoisactive 以输出他们可以提供给像我一样的 dbas 的一些细节票。我遇到的问题是我想从结果中排除“sql_text”,但我似乎无法弄清楚如何?
我了解您可以在输出进入表时过滤输出(@output_column_list 参数),但我没有让代理将其导出到表中。最初,我的印象是“@output_column_list”是我可以调整我想在结果中看到的列的地方,但它显然只是一个用于过滤输出到表的参数。在我绝望的尝试中,我无论如何都尝试了上述参数,并且会从输出中省略“sql_text”,但所做的只是重新定位列顺序。
EXEC sp_WhoIsActive @output_column_list = '[dd%][session_id][login_name][wait_info][tasks][tran_log%][cpu%][temp%][block%][reads%][writes%][context%][physical%][query_plan][locks][%]'
因此,我希望他们能够将内容(带有标题)复制到要附加的 Excel 表中。我担心如果我向帮助台提供太多信息会使他们感到困惑,那么复杂的工作越少越好。
我错过了什么吗?他们将无法运行任何作业,甚至无法查看日志,因此他们的权利已经非常有限。
你的命令有错误。如果你
[%]
在最后删除,你会得到正确的输出。当前的:
EXEC sp_WhoIsActive @output_column_list = '[dd%][session_id][login_name][wait_info][tasks][tran_log%][cpu%][temp%][block%][reads%][writes%][context%][physical%][query_plan][locks][%]'
应该:
EXEC sp_WhoIsActive @output_column_list = '[dd%][session_id][login_name][wait_info][tasks][tran_log%][cpu%][temp%][block%][reads%][writes%][context%][physical%][query_plan][locks]'
附带说明:如果您想获取查询计划和关联的锁(因为您已将它们放在列列表中),您需要将
@get_plans
and@get_locks
参数与输出列表结合使用。