我们有一个相当大的表,它在20+列中保存了大约6500万条记录,我们希望将该表分成两个更易于管理的表。这里的主要挑战是引用此表的许多对象(视图、存储过程、函数和应用程序代码),我不想错过任何东西。
以下是我打算这样做的方法
这里有我遗漏的东西吗?
发布于 2013-04-12 01:10:17
在我看来很好,但下面是我看到的一些挑战。
Deployment --您需要足够快地这样做,这样就不会在生产中引起任何问题--如果您可以在处理这个问题时暂停生产系统,那就太好了。否则,请确保在生产中执行了几次此操作。
标识所有引用对象()--确保不遗漏任何对象。我建议使用免费的第三方工具(如ApexSQL搜索 )来查找数据库对象,但也需要检查应用程序代码。
执行顺序-如果需要更新的对象太多,请确保按正确的顺序准备脚本。
我不会立即删除不需要的列-让它们在那里停留一段时间,但确保定期检查数据。
发布于 2013-04-12 01:50:14
听起来您可能正在计划垂直分区(拆分列)。如果您的65M记录代表了大量的历史数据,那么您可能希望基于日期进行水平分区,并创建一个将它们结合在一起的视图。这样,许多外部引用对象就不会看到不同之处。我在这里对数据的使用做了一些假设。
视图对于垂直拆分也可能有用。
https://stackoverflow.com/questions/15967211
复制相似问题