【问题标题】:Paging and large sql server tables分页和大型 sql server 表
【发布时间】:2011-05-11 18:30:03
【问题描述】:

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

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

有没有完美的解决方案?

【问题讨论】:

  • 您使用的是什么版本的 SQL Server?
  • 如果你能解释为什么你首先要尝试这个,那将非常有帮助。没有用户会翻阅 30M 行。您正在解决的业务问题是什么?他们为什么要浏览数据页面?他们希望找到什么?为什么是分页数据解决方案?

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


【解决方案1】:

如果您使用OPTION FAST(n),它将优化查询以提供该数量的记录。我之前曾在拥有超过 2000 万条记录的表上成功使用它,将执行时间从 分钟缩短到毫秒

但是,如果您将其用于第 10,000 页(恰好是第 1,000,000 条记录),它将不起作用。如果您的用户想要做这样的事情,您必须创建一个有序快照并从中执行查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-07
    • 2013-09-16
    • 2013-07-18
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多