Database 如何为分区设置SQLServerEnterprise
我们有一个数据库,目前大小为1.5TB,每天增长1 GB的数据(一个文本文件),即500万条记录,并且每天都在增长 它有许多列,但值得注意的是有日期和时间的开始时间- 我们对一个日期范围运行许多查询- 我们在数据库中保存了90天的记录,我们有一个较大的表,其中包含所有记录- 针对90天记录运行的查询速度非常快,等等。但是针对所有数据运行的查询速度很慢- 我正在寻找一些非常高层次的答案,最佳实践 我们正在考虑升级到SQL Server enterprise并使用表分区,并根据月份(12)或天数(31)拆分分区 最好的方法是什么 虚拟物理、SAN、磁盘数量、分区数量等-Database 如何为分区设置SQLServerEnterprise,database,sql-server-2008-r2,partitioning,san,Database,Sql Server 2008 R2,Partitioning,San,我们有一个数据库,目前大小为1.5TB,每天增长1 GB的数据(一个文本文件),即500万条记录,并且每天都在增长 它有许多列,但值得注意的是有日期和时间的开始时间- 我们对一个日期范围运行许多查询- 我们在数据库中保存了90天的记录,我们有一个较大的表,其中包含所有记录- 针对90天记录运行的查询速度非常快,等等。但是针对所有数据运行的查询速度很慢- 我正在寻找一些非常高层次的答案,最佳实践 我们正在考虑升级到SQL Server enterprise并使用表分区,并根据月份(12)或天数(3
Sas您不希望按天分割,因为您每个月都会接触所有分区。分区允许您不接触某些数据 你为什么要分区?你能清楚地说出原因吗?如果不是(我想是这样),你就不应该这样做分区本身并不能提高性能。它在某些情况下提高了性能,在其他情况下提高了性能。 你需要了解你得到了什么,失去了什么。以下是你所获得的:
- 快速删除整个分区
- 只读分区可以按不同的备份计划运行
- 生产力
- 标准版
- 不一致查询的性能较低(一般)
- 分区对齐查询和索引的性能
这里没有足够的信息来回答任何有关硬件的问题。我们现在只保留90天,因为这样可以加快查询速度。好的,您想保留所有数据。分区在这里查询没有帮助。它只允许您快速删除旧数据。INSERT和select的速度与以前一样快,甚至更慢。我们的目标是尽可能在旧数据中加快查询速度。目前,我们将所有报告都限制为基于过去90天的数据—但如果我们可以对所有记录进行适当的查询,那么我们可以将数据保存在一个分区表中。我们不必对它进行分区,但我们认为它会使查询更快。不,它不会。我建议您尝试创建正确的索引。您可以在datetime上创建索引,并包含所有必要的其他列。这被称为覆盖指数,它会有很大帮助。我鼓励你围绕索引设计做一些研究。可能有一个简单的解决方案可供您使用。我们已经有了一个覆盖索引,其中包括电话号码、开始时间、事件标签-这通常是我们在提取查询时要查找的三件事-并且它在90天的数据量中运行得相当快。在历史记录表中,我们也有关于这三个项目的覆盖键-