查询的速度是否取决于表中的行数?

Omu*_*Omu 4 sql database sql-server performance

假设我有这个问题:

select * from table1 r where r.x = 5
Run Code Online (Sandbox Code Playgroud)

此查询的速度是否取决于存在的行数table1

Ada*_*Dev 6

查询速度有很多因素,其中一个可以是行数.

其他包括:

  • 索引策略(如果索引列"x",您将看到比未编制索引更好的性能)
  • 服务器负载
  • 数据缓存 - 一旦执行了查询,数据就会被添加到数据缓存中.因此,后续重新运行将更快,因为数据来自内存,而不是磁盘.直到从缓存中删除数据的那一点
  • 执行计划缓存 - 在较小程度上.一旦第一次执行查询,SQL Server提出的执行计划将被缓存一段时间,以便将来执行重用.
  • 服务器硬件
  • 你编写查询的方式(通常是表现不佳的最大连词之一!).例如,使用光标而不是基于集合的操作来编写内容

对于表中包含大量行的数据库,通常需要考虑分区(从SQL Server 2005开始,Enterprise Edition有内置支持).这是将数据拆分为更小的单位.通常,较小的单位=较小的表=较小的索引=较好的性能.