在实际工作中,drop,delete和truncate都是我们在删除表数据时会用到语句。为了清楚的知道在DM7中的这三种操作何时会释放所占用的数据表空间,我们在这里对普通表进行了测试,具体测试过程如下:
注:本文实验环境的DM7数据库版本为:
DM Database Server x64V7.1.6.33-Build(2017.12.11-87269)ENT
1、创建测试表空间
2、查询表空间的大小
3、设置回滚页保留时间(便于测试)
4、创建测试普通表
5、查询当前表空间的大小
6、对测试表test01执行delete操作,对测试表test02执行drop操作,对test03表执行truncate操作
7、查看delete操作、drop操作、truncate操作后的测试表空间的使用情况
等待UNDO_RETENTION时间后,再次查询测试表空间的使用情况
从上面测试可知,对于truncate操作,测试表所占用的数据表空间会及时释放,而drop操作和delete操作都需要超过回滚页的保留期后,测试表所占用的数据表空间才能释放出来。
对于实验最后TEST2剩余空间和另外两者的差别,则是因为drop语句将表所占用的空间全释放掉,而delete、truncate操作会保留表和索引的空间。同样可知,DM7数据库的回滚表空间中的回滚数据是严格按照undo_retention规定的时间进行强制保留。
领取专属 10元无门槛券
私享最新 技术干货