【发布时间】:2013-05-09 06:35:52
【问题描述】:
我现有的数据库在 SQL Server 2005 - 版本 9.0.5000 上。迁移到 SQL Server 2008 R2
我们有一个包含 500+ 百万行数据的庞大表格。列PriceListDate 定义为varchar(8),是复合主键的一部分。更糟糕的是,该表在此列上进行了分区。
由于现在有机会改造数据库,因此我正在考虑将本专栏的数据类型更改为 integer。但是,似乎没有简单的方法可以做到这一点,而是用新的数据类型创建另一个表,迁移数据,然后删除旧的表和分区方案和函数。
关于使用这种方法要注意什么的任何指示?还是有其他更好的方法?
拉吉
【问题讨论】:
-
为什么不将日期转换为日期类型?做日期计算有很多支持,比如datediff函数,当列是日期,日期时间等。目前的设置有什么问题?这个数据库是数据仓库吗(其中以整数表示的日期更常见)?
-
@MichaelHarmon 更改主数据库的数据类型(我猜是聚集索引)将需要 tempdb 大小为 1-2 个表大小 + 它将被记录:即使是最小的日志记录也会花费很多时间空间。
-
这张桌子的尺寸是多少,这张桌子还有其他改动计划吗?
标签: sql-server sql-server-2005 sql-server-2008-r2 partitioning