问题描述
嗨
这是tkprof的剪断。
(我仔细删除了磁盘,查询和当前列,以帮助澄清)。
所以5,556执行-234,460行。这怎么可能?AWR显示相同的情况-每单行插入42行。
我应该提到QP_NPREQ_LINE_ATTRS_TMP是一个简单的视图,它链接到QP_PREQ_LINE_ATTRS_TMP_T2-这是一个GTT。
如果在SQL * Plus或匿名PL/SQL块中进行插入,则每个插入会获得一行。
有什么想法吗?
未修改的snip如下。它包裹着。
感谢和问候
伊恩
这是tkprof的剪断。
SQL ID: 4wgb411d8s7ss Plan Hash: 0 INSERT INTO QP_NPREQ_LINE_ATTRS_TMP (LINE_INDEX, ATTRIBUTE_LEVEL, ATTRIBUTE_TYPE, CONTEXT, ATTRIBUTE, VALUE_FROM, VALIDATED_FLAG, APPLIED_FLAG, PRICING_STATUS_CODE, PRICING_ATTR_FLAG ) VALUES (:B1 , :B10 , :B2 , :B3 , :B4 , :B5 , :B6 , :B9 , :B8 , :B7 ) call count cpu elapsed rows ------- ------ -------- ---------- ---------- Parse 6 0.00 0.00 0 Execute 5556 16.99 25.67 234460 Fetch 0 0.00 0.00 0 ------- ------ -------- ---------- ---------- total 5562 16.99 25.67 234460复制
(我仔细删除了磁盘,查询和当前列,以帮助澄清)。
所以5,556执行-234,460行。这怎么可能?AWR显示相同的情况-每单行插入42行。
我应该提到QP_NPREQ_LINE_ATTRS_TMP是一个简单的视图,它链接到QP_PREQ_LINE_ATTRS_TMP_T2-这是一个GTT。
如果在SQL * Plus或匿名PL/SQL块中进行插入,则每个插入会获得一行。
有什么想法吗?
未修改的snip如下。它包裹着。
感谢和问候
伊恩
SQL ID: 4wgb411d8s7ss Plan Hash: 0 INSERT INTO QP_NPREQ_LINE_ATTRS_TMP (LINE_INDEX, ATTRIBUTE_LEVEL, ATTRIBUTE_TYPE, CONTEXT, ATTRIBUTE, VALUE_FROM, VALIDATED_FLAG, APPLIED_FLAG, PRICING_STATUS_CODE, PRICING_ATTR_FLAG ) VALUES (:B1 , :B10 , :B2 , :B3 , :B4 , :B5 , :B6 , :B9 , :B8 , :B7 ) call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 6 0.00 0.00 0 0 0 0 Execute 5556 16.99 25.67 5002 92404 2589462 234460 Fetch 0 0.00 0.00 0 0 0 0 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 5562 16.99 25.67 5002 92404 2589462 234460复制
专家解答
这可能是一件好事-这意味着有人正在使用基于数组的操作来有效地插入多行。这是PLSQL中的一个示例
SQL> create table t ( x int ); Table created. SQL> SQL> alter session set sql_trace = true; Session altered. SQL> declare 2 type numlist is table of int 3 index by pls_integer; 4 r numlist; 5 begin 6 for i in 1 .. 100 loop 7 r(i) := i; 8 end loop; 9 10 forall i in 1 .. 100 11 insert into t values (r(i)); 12 end; 13 / PL/SQL procedure successfully completed. INSERT INTO T VALUES (:B1 ) call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 1 0.00 0.00 0 1 8 100 Fetch 0 0.00 0.00 0 0 0 0 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 2 0.00 0.00 0 1 8 100复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1325次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
797次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
725次阅读
2025-03-06 09:41:49
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
559次阅读
2025-03-05 00:42:34
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
468次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
361次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
316次阅读
2025-03-26 23:27:33
Oracle分区和执行计划相关的几个问题
听见风的声音
310次阅读
2025-03-07 08:51:42
数据库管理-第299期 数据库是否需要定期重启(20250306)
胖头鱼的鱼缸
252次阅读
2025-03-06 09:09:35
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
249次阅读
2025-03-19 14:41:51