我有一台带有2个NUMA节点的服务器,每个节点有16个CPU.我可以看到任务管理器中的所有32个CPU,前2行中的前16个(NUMA节点1)和后2行中的后16个(NUMA节点2).
在我的应用程序中,我开始使用64个线程Thread.Start().当我运行应用程序时,它是CPU密集型的,只有前16个CPU处于忙碌状态,其他16个CPU处于空闲状态.
为什么?我使用Interlocked.Increment()了很多.这可能是个原因吗?有没有办法在特定的NUMA节点上启动线程?
当我执行以下查询时:
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Msg 262,Level 14,State 1,Line 4 VIEW DATABASE STATE权限在数据库'master'中被拒绝.消息297,级别16,状态1,行4用户无权执行此操作.
但我能够使用配置的(由SQL Azure门户网站)管理员用户执行此查询.
我无法为我创建的任何用户授予查看数据库状态(使用配置的管理员用户),我收到以下错误:授予者没有GRANT权限.
任何想法如何能够执行查询
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL)
Run Code Online (Sandbox Code Playgroud)
来自配置(由SQL Azure门户)管理员用户以外的用户?