Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何为分区设置SQLServerEnterprise_Database_Sql Server 2008 R2_Partitioning_San - Fatal编程技术网

Database 如何为分区设置SQLServerEnterprise

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

我们有一个数据库,目前大小为1.5TB,每天增长1 GB的数据(一个文本文件),即500万条记录,并且每天都在增长

它有许多列,但值得注意的是有日期和时间的开始时间-

我们对一个日期范围运行许多查询-

我们在数据库中保存了90天的记录,我们有一个较大的表,其中包含所有记录-

针对90天记录运行的查询速度非常快,等等。但是针对所有数据运行的查询速度很慢-

我正在寻找一些非常高层次的答案,最佳实践

我们正在考虑升级到SQL Server enterprise并使用表分区,并根据月份(12)或天数(31)拆分分区

最好的方法是什么

虚拟物理、SAN、磁盘数量、分区数量等-


Sas

您不希望按天分割,因为您每个月都会接触所有分区。分区允许您不接触某些数据

你为什么要分区?你能清楚地说出原因吗?如果不是(我想是这样),你就不应该这样做分区本身并不能提高性能。它在某些情况下提高了性能,在其他情况下提高了性能。

你需要了解你得到了什么,失去了什么。以下是你所获得的:

  • 快速删除整个分区
  • 只读分区可以按不同的备份计划运行
这是你所松的:

  • 生产力
  • 标准版
  • 不一致查询的性能较低(一般)
以下是保持不变的内容:

  • 分区对齐查询和索引的性能
如果您想要分区,您可能希望在日期或月份进行分区,但要以连续的方式进行。所以不要把你的关键月份(日期)定为。定为(年(日)+'-'+月(日))。不要再碰旧的隔板

如果您的旧分区确实是只读的,请将它们放在只读文件组中,并将其从备份中排除。这将为您提供真正快速的备份和更小的备份

因为您只保留90天的数据,所以您可能希望每天有一个分区。每天午夜,你杀死最后一个分区,改变分区函数,为新的一天腾出空间


这里没有足够的信息来回答任何有关硬件的问题。

我们现在只保留90天,因为这样可以加快查询速度。好的,您想保留所有数据。分区在这里查询没有帮助。它只允许您快速删除旧数据。INSERT和select的速度与以前一样快,甚至更慢。我们的目标是尽可能在旧数据中加快查询速度。目前,我们将所有报告都限制为基于过去90天的数据—但如果我们可以对所有记录进行适当的查询,那么我们可以将数据保存在一个分区表中。我们不必对它进行分区,但我们认为它会使查询更快。不,它不会。我建议您尝试创建正确的索引。您可以在datetime上创建索引,并包含所有必要的其他列。这被称为覆盖指数,它会有很大帮助。我鼓励你围绕索引设计做一些研究。可能有一个简单的解决方案可供您使用。我们已经有了一个覆盖索引,其中包括电话号码、开始时间、事件标签-这通常是我们在提取查询时要查找的三件事-并且它在90天的数据量中运行得相当快。在历史记录表中,我们也有关于这三个项目的覆盖键-