我正在尝试在SQL Server 2008中使用资源调控器,但我发现很难调试分类函数并找出输入变量会有什么,即SUSER_NAME()是否包含域名? APP_NAME()字符串是什么样的?
也很难确认它是否正常工作。该功能返回哪个组?我能看到这一点的唯一方法就是启动性能监视器,并在正确的CPU计数器中观察不亮的情况。
我是否可以通过某种方式在调试模式下运行它,我可以在其中设置断点并逐步查看变量值,或者我可以至少执行将trace语句写入文件的旧式方法我可以看到发生了什么?
...谢谢
答案 0 :(得分:4)
你提问已经有一段时间了,但也许你还没有想到这一切。
我不知道有任何记录分类器功能的方法,尽管您可能使用SQL Server Profiler。您可以通过查看性能监视器以外的其他内容来验证它是否正常工作。
您可以使用简单的查询来查看SUSER_NAME()和APP_NAME()的外观,至少对您的连接而言:
SELECT
SUSER_NAME(), APP_NAME();
(是SUSER_NAME()将包含使用Windows身份验证的帐户的域名。)
您可以查询DMV(动态管理访问)以显示当前用户连接以及分配给它的资源调控器池和工作组:
SELECT
Sess.session_id,
Sess.program_name,
Sess.host_name,
Sess.login_name,
Sess.nt_domain,
Sess.nt_user_name,
Sess.original_login_name,
RG_WG.pool_id,
RG_P.name as Pool_Name,
Sess.group_id,
RG_WG.name as WorkGroup_Name
FROM sys.dm_exec_sessions Sess
INNER JOIN sys.dm_resource_governor_workload_groups RG_WG
ON Sess.group_id = RG_WG.group_id
INNER JOIN sys.dm_resource_governor_resource_pools RG_P
ON RG_WG.pool_id = RG_P.pool_id
WHERE
Sess.is_user_process = 1;