我一直在阅读文章http://msdn.microsoft.com/en-us/library/ms345146(SQL.90).aspx准备实施一些分区。
我有几个表,我想要在DATA_DT_ID整数分区,我真的很想能够处理这个很简单 – 在我发布新的一个月的数据,删除分区从后端添加新的分区,他们已经过期了。
但是这篇文章展示了一系列相对复杂的步骤。
有没有人创build任何存储过程来自动化? 这似乎是数据仓库中一个相当常见和普遍的问题。
表分区是非常特定于数据库的,因为要添加到文件组的新文件的文件组和path的名称都是特定于单个数据库的。
你应该能够很容易地configuration一个存储过程和所需的命令来处理通过分区的数据移动。
我有,有点。 在SQL Server 2005上进行分区有点复杂,可能不值得麻烦,除非有足够的数据来获得真正的性能胜利。 dynamic创build分区,而不是创build分区,直到将来某个时期。 直到你把数据放进去之后,才会花费任何东西。
删除分区有点烦琐 – 你将不得不使用正确的模式和对你的分区密钥的检查约束alter table swap partition然后做一个alter table swap partition 。 获取分区ID可能有点烦琐,但可以从数据字典中完成。 我也做了一次,为同一分区scheme中的每个分区制作一个“bellwether”表,并从该表中select$ partition。{partition function},其中键是适当的值。
临时表的表结构必须与主表(包括索引)alignment。 然后,您将该分区交换出来并删除该表。
我认为在SQL Server 2005的分区方面,绘画还是有点潮湿。有几个缺失的function,例如,你不能在特定的分区上轻松地build立索引; 避免为整个事实表build立索引和重build索引的唯一方法就是将数据换入和拖出临时表。 SQL Server 2008也获得了在文件组之间移动表而不用做聚簇索引技巧的function。
但是,我不知道有什么可下载来自动执行此操作。 我为这个ID做的一切都是DIY的,是的,这是一个痛苦的屁股。