【发布时间】:2011-06-23 23:54:34
【问题描述】:
我有一个 sql server 2008 数据库,其中一个主要表中有 30000000000 条记录。现在我们正在寻找查询的性能。我们已经完成了所有索引。我发现我们可以将我们的数据库表拆分为多个分区,这样数据就会分布在多个文件中,这会提高查询的性能。
但是很遗憾,这个功能只有在 sql server 企业版中才有,我们买不起。
有没有办法优化查询性能?例如查询
select * from mymajortable where date between '2000/10/10' and '2010/10/10'
检索大约 10000 条记录大约需要 15 分钟。
【问题讨论】:
-
您始终可以将数据库拆分为多个分区。你不必买任何东西。您只需要自己查询正确的表,而不是服务器找出哪个表。
-
另外,如果一个 10 年的日期范围仅包含 10,000 条记录,那么其他 29,999,990,000 条记录的范围是什么?这种情况完全是虚构/假设的吗?我看到你已经对 Mitch 的帖子发表了评论说你没有使用
*你还漏掉了什么? -
不要只在字段上创建索引,而是在字段组合上创建索引,并使用包含的列来存储您经常检索的数据。
-
升级到企业版。正确地做。
标签: sql-server