分页和大型sql server表

时间:2010-12-16 12:55:08

标签: sql-server sql-server-2008 paging

我有一个数据库有两个数据库表,记录超过3000万,当加入它们并使用row_number()进行分页时,查询需要很长时间,也需要很多资源! 我怎样才能表格这些表格:

  • 使用索引视图保存每个用户的分页结果(视图不支持参数),如果我使用每个用户的视图,这将是数据的重复
  • 将表格分成较小的表格

有没有完美的解决方案?

1 个答案:

答案 0 :(得分:2)

如果您使用OPTION FAST(n),它将优化查询以提供该数量的记录。我之前已经成功使用了这个有+20万条记录的表,将执行时间从分钟缩短到毫秒

但是,如果您将此用于第10,000页(恰好是第1,000,000条记录),则无法使用。如果您的用户想要执行此类操作,则必须创建有序快照并从中执行查询。