我想知道如何同时执行许多长时间运行的查询会影响SQL Server及时为每个查询提供服务的能力。
[编辑]
我不打算模糊,这更像是一个假设。让我们假设查询是select语句,在具有数百万行的表上有某种谓词。
答案 0 :(得分:26)
答案 1 :(得分:2)
我会使用execution plan来查看有关优化查询的信息。此外,您还要注意,如果它们需要很长一段时间,它们可能会lock行或表。要回答这个问题,您需要考虑sql server可以处理多少内存和CPU功率。在开发环境中对其进行测试可以很好地了解将要发生的事情,查询时间越长,获取的资源就越多,它们可能成为整个系统的瓶颈。
答案 2 :(得分:1)
很难说。
我们有1亿行表,其中1秒钟的聚合查询在工作时间内运行很多次,10,000行表查询需要20秒,但只在凌晨4点运行一次。
答案 3 :(得分:0)
范围取决于数据和哪种查询(更新/删除/插入?)。
查询锁定表可能特别有问题;在适当情况下使用nolock可以提高性能。
答案 4 :(得分:0)
除非您开始遇到重大的I / O问题,否则性能通常会线性恶化。
但是,证明是单独和并行地测试您的查询,并监视SQL Server统计信息。