时间:2021-07-01 10:21:17 帮助过:2人阅读
查看数据属性,有点不一样
打开数据:
use TestDB
新建分区函数,参数类型是bit,即已归档的数据
Create Partition Function TestDB_ArchivePartitionRange(bit) AS RANGE right FOR VALUES(1)
新建一个分区方案,即已经归档的数据保存到TestDB_Part2分区文件上
CREATE Partition Scheme TestDB_ArchivePatitionScheme AS PARTITION TestDB_ArchivePartitionRange TO ([PRIMARY], TestDB_Part2);
创建一个测试数据表,绑定一个分区方案
CREATE TABLE TestArchiveTable (Archived Bit NOT NULL, Date DATETIME) ON TestDB_ArchivePatitionScheme (Archived)
插入一些新的数据,已供测试
INSERT INTO TestArchiveTable (Archived, Date) VALUES (0,‘2011-01-01‘); INSERT INTO TestArchiveTable (Archived, Date) VALUES (0,‘2011-02-01‘); INSERT INTO TestArchiveTable (Archived, Date) VALUES (0,‘2011-03-01‘);
先来一个普通查询
看看每个分区表存放数据的情况,分区一有3条记录,分区2没有记录,即没有归档数据
SELECT * FROM sys.partitions WHERE OBJECT_NAME(OBJECT_ID)=‘TestArchiveTable‘;
好了,我们归档一条记录看看
update TestArchiveTable set Archived = 1 where Date = ‘2011-03-01‘ SELECT * FROM sys.partitions WHERE OBJECT_NAME(OBJECT_ID)=‘TestArchiveTable‘;
结果就是我们想要的。
总结:利用分区表不仅能大幅提升数据访问性能,而且可以根据需要分别存储数据到不同的文件,方便我们有效地利用数据,简化系统开发的复杂性。
SQL Server数据归档的解决方案
标签: