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