我最近遇到了一个令人不安的SQL Server问题。我正在使用节点程序来连接和运行查询。随着请求/数据库查询数量的增加,似乎SQL Server性能下降。
我使用了一个基本的测试场景,我在其中获得了大约6个并发请求,这些请求又会并行触发6个数据库查询。结果每个查询的评估时间大致乘以6倍。
所以,基本上当我点击一个查询时,它需要大约120ms,但是如果6个类似的查询并行,则每个查询大约需要7500ms,这对于并发请求来说是一个令人不安的问题。
对于记录,我使用的SELECT
查询应该是非阻塞的。
任何帮助或信息都将深表感谢。
更新
我检查了表,它没有任何索引。我测试过的查询是一个带SELECT
子句的简单WHERE
查询。我还检查了sys.dm_tran_lock
数据库锁定信息,发现它为每个请求查询在该表上创建 IS 锁定。它是在Azure实例上运行的SQL Server 2012。我不确定硬件规格,但它应该符合标准。
我已经尝试了一些尝试性的组合查询,看起来当并发查询使用相同的表/视图时,它的命中率最高。