在Sql Server 2008中跟踪或记录资源调控器分类功能行为

时间:2010-01-05 19:19:53

标签: sql-server tsql sql-server-2008 resource-governor

我正在尝试在SQL Server 2008中使用资源调控器,但我发现很难调试分类函数并找出输入变量会有什么,即SUSER_NAME()是否包含域名? APP_NAME()字符串是什么样的?

也很难确认它是否正常工作。该功能返回哪个组?我能看到这一点的唯一方法就是启动性能监视器,并在正确的CPU计数器中观察不亮的情况。

我是否可以通过某种方式在调试模式下运行它,我可以在其中设置断点并逐步查看变量值,或者我可以至少执行将trace语句写入文件的旧式方法我可以看到发生了什么?

...谢谢

1 个答案:

答案 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;