1、SQLServer 数据库不做其他操作的情况下,数据库表有聚集索引、非聚集索引各一个。插入500万数据要5分钟。(insert into a select * from a)
插入1000万条数据要 12分27秒。(insert into a select * from a)
插入2000万条数据要 21分54秒。(insert into a select * from a) --插入数据过程中曾将数据库自动增长由1M改为100M。由1000万条可推知此操作加快了速度。
机器配置:I7处理器,64位操作系统,内存8G。
插入1000万条数据要 12分27秒。(insert into a select * from a)
插入2000万条数据要 21分54秒。(insert into a select * from a) --插入数据过程中曾将数据库自动增长由1M改为100M。由1000万条可推知此操作加快了速度。
机器配置:I7处理器,64位操作系统,内存8G。
另操作完后,数据文件为20多G,日志为10多G。收缩数据库后数据文件为10多G,日志为1M。(收缩过程中,磁盘100%,不能操作)。操作中内存占用达到7G,后自动释放为4G。
2、表分区测试、备份测试
建立多个辅助数据文件(C盘、D盘、F盘),将上面有4000万条数据的表按时间范围分区,分区后数据被转移到各自的分区中。查询时使用了分区(不管是否有索引)。
新建和删除聚集索引,磁盘100%。
重建聚集索引,在图形界面超时,处理方法:将语句复制到查询窗口执行,4000万条数据执行时间为14分钟。
默认情况下在分区表上建立索引会索引对齐。
以下出自SQLServer 官方文档:https://msdn.microsoft.com/zh-cn/library/ms345146(SQL.90).aspx
当索引和表按照相同的顺序使用相同的分区函数和列时,表和索引将对齐。如果在已经分区的表中建立索引,SQL Server 会自动将新索引与该表的分区架构对齐,除非该索引的分区明显不同。
备份数据库,然后还原。(辅助数据文件也被还原到相应的位置上)。