小编Jam*_*mes的帖子

对于一个用户,针对 sys.schemas 和 sys.synonyms 的查询运行速度非常慢

场景:SQL Server 2014 (v12.0.4100.1)

.NET 服务运行此查询:

SELECT name, base_object_name 
FROM sys.synonyms 
WHERE schema_id IN (SELECT schema_id 
                    FROM sys.schemas 
                    WHERE name = N'XXXX')
ORDER BY name
Run Code Online (Sandbox Code Playgroud)

...返回大约 6500 行,但通常在 3+ 分钟后超时。的XXXX上面是“DBO”。

如果我以 UserA 的身份在 SSMS 中运行此查询,该查询将在不到一秒的时间内返回。

当以 UserB 运行(这是 .NET 服务连接的方式)时,查询需要 3-6分钟,并且 CPU%始终为 25%(4 核)。

UserA 是 sysadmin 角色中的域登录名。

UserB 是一个 SQL 登录,具有:

EXEC sp_addrolemember N'db_datareader', N'UserB'
EXEC sp_addrolemember N'db_datawriter', N'UserB'
EXEC sp_addrolemember N'db_ddladmin', N'UserB'
GRANT EXECUTE TO [UserB]
GRANT CREATE SCHEMA TO [UserB]
GRANT …
Run Code Online (Sandbox Code Playgroud)

performance sql-server sql-server-2014 query-performance

8
推荐指数
1
解决办法
1909
查看次数