我应该从多少返回的记录开始预期性能问题?

Abe*_*ler 2 sql sql-server sql-server-2005

我有一个查询,我已经调整了一段时间,但我似乎无法将执行时间缩短很多.在执行计划中,一切看起来都在做它应该做的事情,没有与查询的任何特定部分相关的大量成本,一切都在使用索引搜索它应该在哪里.当我针对不同的客户端运行相同的查询时,它运行得相当快,但只返回150k记录.当我为我最大的客户端运行它时,它返回600k记录并花费超过十分钟.

我的问题可能是因为我正在返回的记录数量很难获得良好的性能,或者上面描述的内容似乎在SQL Server的能力范围内?

Joe*_*orn 6

它可能是行.但更有可能的是,生成4倍以上数据的客户端在其他区域的数据库上的活动量也增加了4倍.这意味着内存使用量增加4倍,磁盘数量增加4倍,锁定量增加4倍.确保硬件已正确分配.

但接下来,我试图想象一下,对于返回600K记录,甚至只是150K的查询,你可以做些什么有用的工作.我假设这些从未向最终用户显示,因为即使是分页太多而且无用.如果没有,我们需要考虑如何使用这些数据.

如果这是一个批处理过程,也许10分钟是完全正常的,没有理由花费你宝贵的时间进一步处理它.如果它是与另一个查询结合使用的东西,也许你需要尽快引入该查询中的元素,以保持结果集更小.