1

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

也很难验证它是否正常工作。函数返回哪个组?我能看到这一点的唯一方法是启动性能监视器并不眨眼地观察正确 CPU 计数器中的小信号。

有什么方法可以在调试模式下运行它,我可以设置断点并单步执行并查看变量值,或者我至少可以执行将跟踪语句写入文件的老式方法,以便我可以看到这是怎么回事?

谢谢...

4

1 回答 1

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;
于 2010-05-30T05:23:36.930 回答