小编JMu*_*ove的帖子

什么会导致长时间的查询持续时间而不使用高资源?

提前:对不起,问题的长度......无法在细节和简洁之间取得适当的平衡。

我们的 Web 应用程序的数据库服务器存在问题,其中应该(并且通常会)在很短的时间内(< 10 毫秒)运行的查询在随机情况下需要 1 到 30 秒的时间来执行 - 没有明显的图案。根据我们的分析器跟踪,其中一些甚至是“无所作为”的查询,例如"exec sp_reset_connection"(通常在 0ms 内运行;观察到 3~6s 的峰值)"SET NO_BROWSETABLE ON",等等。一些示例是:

SELECT * FROM [Localisation].[TimeZoneRule] WHERE [Name] = 'EU'
Run Code Online (Sandbox Code Playgroud)

其中TimeZoneRule5 列大约有 500,000 行。有一个代理主键和一个索引Name。通常需要 0.97ms,在 11s 达到峰值。表永远不会写入(在上线之前预先填充)。Profiler 将其记录为占用 0-15 个 CPU、18-25 个读取、0-1 个写入(不知道为什么要写入)。

UPDATE [Core].[User] SET [LastUsed] = GETUTCDATE() WHERE Id = '<uid>'
Run Code Online (Sandbox Code Playgroud)

其中User大约 10 列(其中之一是 Xml 列)有大约 30,000 行。Id是集群主键。表定期写入和读取。通常需要10~20ms,在26s达到峰值。Profiler 将其记录为占用 0 个 CPU、15-36 次读取、0-1 次写入。

INSERT INTO [Log].[Session] (ASPSessionId, Start, …
Run Code Online (Sandbox Code Playgroud)

performance sql-server sql-server-2005

5
推荐指数
1
解决办法
8918
查看次数

标签 统计

performance ×1

sql-server ×1

sql-server-2005 ×1