5

我看过很多关于分区表的条目,但是关于何时应该进行分区的信息并不多。

当您应该在 SQL Server 中对表进行分区时,是否有经验法则。

谢谢

4

2 回答 2

2

我的基准测试表明它取决于查询负载。

  • 如果您执行的查询总是在分区字段上包含一个过滤器,那么性能优势几乎是即时的(就像表中的 1000 条记录已经是有益的)
  • 如果查询并不总是在分区字段上包含过滤器,那么在做出决定之前,您确实必须使用查询负载的良好样本进行基准测试。

您还必须考虑使用的分区系统。如果您使用“静态”分区,立即创建它们并没有太大的危害。当您使用“滑动窗口”系统时,您需要考虑创建和合并分区的开销。(在大桌子上可能需要很长时间)

于 2011-02-28T21:43:26.020 回答
1

@Filip 的帖子是一个很棒的主题指南。当你做你的本体并估计你的应用程序将如何使用时,即你的用户将如何与应用程序交互以及如何转换为数据库访问时,你应该很好地了解将执行的查询类型以及如何某些表会快速增长。如果您有信心,那么您应该立即对表进行分区以推迟任何维护事故。

但是,如果您尝试决定是否对填充的表进行分区,或者您喜欢像我一样懒惰地执行分区,这里有一个来自 PostgreSQL 文档的不错的小块:

表从分区中受益的确切点取决于应用程序,但经验法则是表的大小应该超过数据库服务器的物理内存。[源]

于 2011-02-28T22:00:03.417 回答