`

db2删除数据慢

db2 
阅读更多
db2有两张表,A主表   B从表,B的外键是A的主键
A B两个表数据量都超过百万,
删除A表的一条记录,用主键作为删除条件,时间有明显的延迟。
如果用其他字段做where条件,一次删除目标为几百条,等了几分钟也没有删成功。

如果先删除B表应该关联删除的数据,删掉几百条也很快。但是再删A表数据还是不行。

分析原因,删B表数据db2直接删了,所以快。
删A表数据的时候db2会先去B表查询关联记录,这样一次删除A表中目标为几百条记录的实际需要的操作是:
1  根据条件选出A表记录集合,a
2. 以a为驱动表,在B表中查询关联记录,并记录结果为b
3. 删除B表中关联的数据b
4. 删除a
由于删除涉及到两张表,实际上从1到4的操作db2会自己加上事务,这样就慢了。

解决方法:
很简单,取消B的外键,然后删除就像闪电一样快了  :)
分享到:
评论

相关推荐

    DB2删除大数据量表方法.pdf

    这是因为`DELETE`语句不仅会删除数据,还会记录这些操作的日志,这在大数据量的情况下会消耗大量的时间和资源。为了解决这个问题,文中提到了两种高效的方法。 第一种方法是利用`IMPORT`命令配合一个空文件来清空表...

    DB2清空表里所有数据.doc

    当表的数据量较大时,使用 DELETE 语句可能会较慢,因为每次删除都需要记录回滚信息。这时,TRUNCATE 语句通常更高效,它会移除表中的所有数据但不保留回滚信息。因此,如果你收到“数据库的事务日志已满”的错误...

    DB2-数据迁移.ppt

    2. REPLACE:如果目标表已存在,REPLACE会先删除所有现有数据,然后插入新的数据。 3. REPLACE_CREATE:如果目标表不存在,将会创建表并插入数据;如果表已存在,则会先清空表再插入数据。 在实际应用中,根据需求...

    DB2性能调优资料,解决SQL执行慢的问题

    当数据发生大量插入、删除或更新时,可能导致数据页的碎片化,REORG可以帮助整理这些碎片,提高查询效率。同时,它还可以重建索引,消除空闲空间,从而改善I/O性能。 2. **REORGCHK**: 这是检查是否需要进行REORG...

    DB2 UDB AS400版数据性能和查询优化

    - 避免创建过多的索引,因为索引也需要维护,过多的索引可能会导致插入、删除等操作变慢。 **3. 使用统计信息** - DB2提供了收集统计信息的功能,这些信息可以帮助优化器做出更好的决策。 - 定期更新统计信息,...

    DB2 初学者指南

    - **SQL 基本操作**:学会 `SELECT` 查询数据,`INSERT INTO` 插入数据,`UPDATE` 更新数据,`DELETE FROM` 删除数据,以及 `CREATE TABLE` 创建表,`ALTER TABLE` 修改表结构,`DROP TABLE` 删除表。 - **事务...

    db2使用技巧

    在删除大量数据时,使用 delete 语句可能会非常慢,因为删除数据时需要记录数据库日志。为了提高删除速度,可以使用以下方法: import from /dev/null of del replace into test; 这将清空表数据,然后重新导入空...

    db2入门到精通

    - **数据插入、更新与删除**: INSERT、UPDATE、DELETE语句,用于操作数据库中的数据。 - **数据库对象创建与管理**: 如CREATE TABLE、ALTER TABLE、DROP TABLE等,用于数据库对象的生命周期管理。 4. **数据库...

    DB2如何评估索引碎片是否是缓慢的RUNSTATS根

    在DB2中,索引用于加速数据检索操作,但随着时间推移,由于频繁的插入、更新和删除操作,索引可能会变得碎片化,这会对数据库性能造成负面影响。本知识点将详细介绍DB2中索引碎片问题以及如何评估和处理索引碎片对...

    db2常见问题集锦

    - 解答:执行`db2 drop database dbname`,但请注意,这将永久删除数据库及其数据,除非事先备份。 3. **数据库启动与停止** - 问题:如何启动DB2实例? - 解答:使用`db2start`命令启动DB2服务。 - 问题:如何...

    DB2-迁移.ppt

    例如,`db2 Load from test.del of del REPLACE into test1`会删除并替换`test1`表中的数据。 4. db2move工具:这是一个高级的迁移工具,用于执行复杂的数据库迁移任务,包括整个数据库或特定对象的迁移。它可以一...

    db2 的一些感念

    DB2 Catalog是一系列表格的集合,存储于DSNDB06数据库中,记录了所有在DB2中定义的对象信息,如表(Table)、视图(View)、索引(Index)等的创建、修改、删除历史。这些表格可以通过SQL语言进行查询和操作,常见的系统表...

    DB2 优化教程 培训资料

    合理的索引策略可以显著减少查询时间,但过度的索引可能导致插入、更新和删除操作变慢。 3. **内存管理**:DB2使用各种缓冲池来缓存数据和索引,包括数据缓冲池、索引缓冲池和SQL缓冲池。了解如何调整这些缓冲池的...

    代码_db2_

    DB2是IBM开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级数据存储和管理。这个名为"代码_db2_"的压缩包可能包含了使用DB2进行数据库操作的一些示例代码,但遗憾的是,没有提供具体的文件内容。下面,我...

    toad for db2_16020.zip

    1. **Toad for DB2**:Toad是Quest Software公司开发的一款数据库管理工具,它提供了全面的数据管理和开发功能,包括SQL开发、数据库对象管理、数据建模、性能分析等。对于DB2用户来说,Toad for DB2提供了专门针对...

    DB2快速入门

    - **DB2**是由IBM公司开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级数据处理领域。 - **适用对象**:本教程主要面向DB2初学者,帮助他们快速掌握在Windows环境下使用DB2的基本方法。 #### 二、安装与...

    了解DB2数据库优化需掌握基本策略

    在插入数据前建立索引可能导致较高的日志空间需求和较慢的插入速度,因为索引会随数据一起更新。相反,选择在数据插入完成后建立索引,则需运行`runstats`以更新表和索引的统计信息,以确保查询优化器能够正确地利用...

    大数据量数据整合与查询性能优化

    - 收集更多的数据: 例如,执行计划、慢查询日志等。 - 分析数据: 使用工具或手动分析数据,找出问题的根本原因。 - 实施解决方案: 根据分析结果调整参数、优化查询语句或更改数据库设计。 通过上述步骤,可以有效地...

    用 C# Builder 开发 DB2 Web 应用程序的5条性能法则

    不过,也要注意过度索引可能导致插入、更新和删除操作变慢。针对大量记录的表,合理设计索引策略至关重要。 3. 原则3:批处理与缓存 批量处理可以减少与数据库的交互次数,提高性能。例如,一次提交多条INSERT或...

    《数据库原理》知识点总结.pdf

    数据定义功能通过DDL(数据定义语言)完成,包括创建、修改和删除数据结构的操作。数据操纵功能通过DML(数据操纵语言)实现,允许用户对数据进行查询、插入、删除和更新。数据控制功能则通过DCL(数据控制语言)...

Global site tag (gtag.js) - Google Analytics