2010-12-16 79 views
0

我有一个数据库两个数据库表,有超过3000万条记录,当加入它们并使用row_number()进行寻呼时,查询需要很长时间,同时还有很多资源! 我怎样才能特质这些表:寻呼和大型sql服务器表

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

有没有完美的解决方案?

+0

您正在使用什么版本的SQL Server? – Oded 2010-12-16 12:57:00

+0

sql server 2008企业版 – Hadad 2010-12-16 12:58:20

+2

如果你首先解释你为什么要这样做,这将会非常有帮助。没有用户将通过30M行进行翻页。您正在解决的业务问题是什么?他们为什么浏览数据页面?他们希望找到什么?为什么使用分页数据解决方案? – 2010-12-16 16:58:42

回答

2

如果您使用OPTION FAST(n),它会优化查询以提供该数量的记录。我已经在拥有+20百万条记录的表上成功地使用了这一点,将执行时间从分钟减少到了毫秒

但是,如果您将此用于第10,000个页面,碰巧是第1,000,000条记录,则不起作用。如果你的用户想要做这样的事情,你将不得不创建一个有序的快照并从中执行查询。