database - 如何设置 SQL Server Enterprise 进行分区

标签 database sql-server-2008-r2 partitioning san

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

它有很多列,但值得注意的一列是 START_TIME,其中包含日期和时间 -

我们针对某个日期范围运行了许多查询 -

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

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

我正在寻找一些非常高水平的答案、最佳实践

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

最好的方法是什么?

虚拟物理、SAN、多少磁盘、多少分区等 -

萨斯

最佳答案

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

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

你需要了解你得到什么和失去什么。以下是您获得的内容:

  • 快速删除整个分区
  • 只读分区可以在不同的备份计划上运行

这是您失去的:

  • 生产力
  • 标准版
  • 非对齐查询的性能较低(总体而言)

以下是保持不变的内容:

  • 分区对齐查询和索引的性能

如果您想分区,您可能希望按日期或月份进行分区,但要以连续的方式进行。所以不要把你的关键月份(日期)定为关键月份(日期)。使其为(年(日期)+“-”+月(日期))。永远不要再碰旧的分区。

如果您的旧分区确实是只读的,请将每个分区放入只读文件组中并将其从备份中排除。这将为您提供非常快的备份和更小的备份。

由于您只保留 90 天的数据,因此您可能希望每天有一个分区。每天午夜,您都会杀死最后一个分区并更改分区函数,为新的一天腾出空间。

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

关于database - 如何设置 SQL Server Enterprise 进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9549634/

相关文章:

c# - 当所有内容都设置为四位小数时, Entity Framework 四舍五入

sql - 在 SQL Server 数据库中查找分区架构定义

apache-spark - 什么是随机分区?

android - 如何在android中访问不同应用程序的数据库或文件的路径

database - NOSQL 反规范化数据模型

database - 填充报告/数据仓库数据库的策略

database - 如何设计分区标注系统的数据存储?

database - Access DB 中的字符串排序

sql - 如何在 SQL Server 中使用 row_number 获取匹配数据?

sql-server - 更改查询的比较值时,执行时间非常令人绝望