问题描述
嗨,
我的问题是关于性能调整,我遇到了大多数会话都在等待enq:tm争用的问题
大约80% + 时序用于此等待事件,其余为enq:tx行锁争用
阻止我的ash报告中的会话显示会话id,而在其他列中显示未找到详细信息。
根据我的理解,TM争用是由外键上缺少索引引起的
但是,我无法在查询中找到子表invole,因为sql语句被删除并包含一个表。
请帮我弄清楚事情,我的调查事实是正确的
另外,我也请您在这种情况下帮助我寻求解决方案
我的问题是关于性能调整,我遇到了大多数会话都在等待enq:tm争用的问题
大约80% + 时序用于此等待事件,其余为enq:tx行锁争用
阻止我的ash报告中的会话显示会话id,而在其他列中显示未找到详细信息。
根据我的理解,TM争用是由外键上缺少索引引起的
但是,我无法在查询中找到子表invole,因为sql语句被删除并包含一个表。
请帮我弄清楚事情,我的调查事实是正确的
另外,我也请您在这种情况下帮助我寻求解决方案
专家解答
未索引的外键是争用的可能原因之一,表现为TM/TX等待。还有:
-两个会话编写相同的唯一密钥
-无法获得更多ITL条目的完整区块
-位图索引
所以你需要寻找多个潜在的原因。
* 假设 * 确实是外键问题,则可以运行以下查询以在架构中查找未索引的FK
-两个会话编写相同的唯一密钥
-无法获得更多ITL条目的完整区块
-位图索引
所以你需要寻找多个潜在的原因。
* 假设 * 确实是外键问题,则可以运行以下查询以在架构中查找未索引的FK
column columns format a20 word_wrapped column table_name format a30 word_wrapped select decode( b.table_name, NULL, '****', 'ok' ) Status, a.table_name, a.columns, b.columns from ( select a.table_name, a.constraint_name, max(decode(position, 1, substr(column_name,1,30),NULL)) || max(decode(position, 2,', '||substr(column_name,1,30),NULL)) || max(decode(position, 3,', '||substr(column_name,1,30),NULL)) || max(decode(position, 4,', '||substr(column_name,1,30),NULL)) || max(decode(position, 5,', '||substr(column_name,1,30),NULL)) || max(decode(position, 6,', '||substr(column_name,1,30),NULL)) || max(decode(position, 7,', '||substr(column_name,1,30),NULL)) || max(decode(position, 8,', '||substr(column_name,1,30),NULL)) || max(decode(position, 9,', '||substr(column_name,1,30),NULL)) || max(decode(position,10,', '||substr(column_name,1,30),NULL)) || max(decode(position,11,', '||substr(column_name,1,30),NULL)) || max(decode(position,12,', '||substr(column_name,1,30),NULL)) || max(decode(position,13,', '||substr(column_name,1,30),NULL)) || max(decode(position,14,', '||substr(column_name,1,30),NULL)) || max(decode(position,15,', '||substr(column_name,1,30),NULL)) || max(decode(position,16,', '||substr(column_name,1,30),NULL)) columns from user_cons_columns a, user_constraints b where a.constraint_name = b.constraint_name and b.constraint_type = 'R' group by a.table_name, a.constraint_name ) a, ( select table_name, index_name, max(decode(column_position, 1, substr(column_name,1,30),NULL)) || max(decode(column_position, 2,', '||substr(column_name,1,30),NULL)) || max(decode(column_position, 3,', '||substr(column_name,1,30),NULL)) || max(decode(column_position, 4,', '||substr(column_name,1,30),NULL)) || max(decode(column_position, 5,', '||substr(column_name,1,30),NULL)) || max(decode(column_position, 6,', '||substr(column_name,1,30),NULL)) || max(decode(column_position, 7,', '||substr(column_name,1,30),NULL)) || max(decode(column_position, 8,', '||substr(column_name,1,30),NULL)) || max(decode(column_position, 9,', '||substr(column_name,1,30),NULL)) || max(decode(column_position,10,', '||substr(column_name,1,30),NULL)) || max(decode(column_position,11,', '||substr(column_name,1,30),NULL)) || max(decode(column_position,12,', '||substr(column_name,1,30),NULL)) || max(decode(column_position,13,', '||substr(column_name,1,30),NULL)) || max(decode(column_position,14,', '||substr(column_name,1,30),NULL)) || max(decode(column_position,15,', '||substr(column_name,1,30),NULL)) || max(decode(column_position,16,', '||substr(column_name,1,30),NULL)) columns from user_ind_columns group by table_name, index_name ) b where a.table_name = b.table_name (+) and b.columns (+) like a.columns || '%' /
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




