问题描述
嗨,汤姆,
我们有一个事务表,存储了数百万条记录。我们计划在此表上创建一个插入后触发器,该触发器将为每个事务插入另一个表。
新表将持有一个标记值,其中提到交易是否在检查程序的范围内。我们没有在现有表中添加新列的原因是因为它是供应商表,并且它被复制到我们的系统中,所以我们保持它的状态不变。
由于表非常大,会有性能问题吗?
我们有一个事务表,存储了数百万条记录。我们计划在此表上创建一个插入后触发器,该触发器将为每个事务插入另一个表。
新表将持有一个标记值,其中提到交易是否在检查程序的范围内。我们没有在现有表中添加新列的原因是因为它是供应商表,并且它被复制到我们的系统中,所以我们保持它的状态不变。
由于表非常大,会有性能问题吗?
专家解答
表中有多少行并不重要。重要的是您在每个插入中添加了多少行。
使用复合触发器会有所帮助。这些允许您构建行数组以在行之前/之后的行块中进行处理。
然后使用forall将它们全部插入到单个后语句调用中。
有关这些的更多讨论,请参见:
https://asktom.oracle.com/pls/apex/asktom.search?tag=compound-triggers
https://oracle-base.com/articles/11g/trigger-enhancements-11gr1#compound_triggers
使用复合触发器会有所帮助。这些允许您构建行数组以在行之前/之后的行块中进行处理。
然后使用forall将它们全部插入到单个后语句调用中。
有关这些的更多讨论,请参见:
https://asktom.oracle.com/pls/apex/asktom.search?tag=compound-triggers
https://oracle-base.com/articles/11g/trigger-enhancements-11gr1#compound_triggers
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1320次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
790次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
722次阅读
2025-03-06 09:41:49
【ORACLE】ORACLE19C在19.13版本前的一个严重BUG-24761824
DarkAthena
577次阅读
2025-03-04 14:33:31
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
552次阅读
2025-03-05 00:42:34
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
462次阅读
2025-03-13 14:38:19
Ogg23ai高手必看-MySQL Innodb Cluster跟oracle的亲密接触
曹海峰
461次阅读
2025-03-04 21:56:13
【ORACLE】char类型和sql优化器发生的“错误”反应
DarkAthena
411次阅读
2025-03-04 23:05:01
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
352次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
314次阅读
2025-03-26 23:27:33