【发布时间】:2019-12-18 17:04:00
【问题描述】:
我正在为 LUW 使用 DB2 9.7 FP5。我有一个有 250 万行的表,我想删除大约 100 万行,这个删除操作分布在整个表中。我正在使用 5 个删除语句删除数据。
delete from tablename where tableky between range1 and range2
delete from tablename where tableky between range3 and range4
delete from tablename where tableky between range5 and range5
delete from tablename where tableky between range7 and range8
delete from tablename where tableky between range9 and range10
在执行此操作时,前 3 次删除工作正常,但第 4 次删除失败,DB2 挂起,什么也不做。以下是我遵循的过程,请帮助我:
1. Set following profile registry parameters: DB2_SKIPINSERTED,DB2_USE_ALTERNATE_PAGE_CLEANING,DB2_EVALUNCOMMITTED,DB2_SKIPDELETED,DB2_PARALLEL_IO
2.Alter bufferpools for automatic storage.
3. Turn off logging for tables (alter table tabname activate not logged initially) and delete records
4. Execute the script with +c to make sure logging is off
删除如此大量数据的最佳做法是什么?为什么从同一个表中删除相同性质的数据时会失败?
【问题讨论】:
-
我在博客上分享了我的经验。请参考这个link。
标签: database performance db2 db2-luw