use*_*148 4 sql-server partitioning sql-server-2012
我想从 SQL Server 2012 数据库中的表中删除分区。表有主键,但分区列不是主键。我还想保持数据结构和模式完好无损。
我试过:
select *
into [dbo].[new_Non_partitioned_Table]
from [dbo].[partitioned_table]
Run Code Online (Sandbox Code Playgroud)
然后我删除了分区表并重命名了新表。但是,它导致我丢失了数据结构和一些迫使我放弃约束的依赖项 (FK)。这是用于生产和数据丢失不是一种选择。
有没有更好的方法从现有表中删除分区?
将表上的索引重建到文件组而不是分区模式。
请按以下顺序执行此操作:
如果您可以停机,请考虑先编写脚本并删除非聚簇索引,重建聚簇索引,然后重新应用非聚簇索引(针对文件组,当然不是分区模式)
这比将分区合并在一起更快,因为它可以使用 SQL Server 索引构建引擎以高并发运行。
使用这个技巧,模式保持原位,无需将其全部移动到另一个表。根据您的 SQL Server 版本,您甚至可以在线执行此操作。
| 归档时间: |
|
| 查看次数: |
40301 次 |
| 最近记录: |