分区表时的经验法则

时间:2011-02-24 11:02:00

标签: sql sql-server-2005 database-partitioning

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

在SQL Server中对表进行分区时是否有经验法则?

由于

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

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

  

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