最近,我们在客户的数据库中发现了如下一个Top SQL,其逻辑读占据第一位:
格式化一下,这个SQL的作用是什么呢?
通过 Google 找到了这样一个答案:
当JAVA程序中通过DatabaseMetaData#getPrimaryKeys()调用,将会执行这个SQL,如果不及时关闭,则还可能产生严重的内存占用。
那么怎样规避这个调用,考察这个调用是否必要显得非常重要,这个SQL导致的逻辑度太过显著。
对Top SQL保持敏感是DBA的重要守则。
记录以备忘。
-The End-
CPU Elapsd
Buffer Gets Executions Gets per Exec %Total Time (s) Time (s) Hash Value
--------------- ------------ -------------- ------ -------- --------- ----------
1,870,588,542 104,176 17,956.0 29.1 ######## 12116.51 958390712
Module: JDBC Thin Client
SELECT NULL AS table_cat, c.owner AS table_schem,
c.table_name, c.column_name, c.position AS key_seq
, c.constraint_name AS pk_name FROM all_cons_columns c, a
ll_constraints k WHERE k.constraint_type = 'P' AND k.table_nam
e = :1 AND k.owner like :2 escape '/' AND k.constraint_name
= c.constraint_name AND k.table_name = c.table_name AND k.
owner = c.owner ORDER BY column_name
格式化一下,这个SQL的作用是什么呢?
SELECT NULL AS table_cat, c.owner AS table_schem, c.table_name,
c.column_name, c.POSITION AS key_seq, c.constraint_name AS pk_name
FROM all_cons_columns c, all_constraints k
WHERE k.constraint_type = 'P'
AND k.table_name = :1
AND k.owner LIKE :2 ESCAPE '/'
AND k.constraint_name = c.constraint_name
AND k.table_name = c.table_name
AND k.owner = c.owner
ORDER BY column_name
通过 Google 找到了这样一个答案:
当JAVA程序中通过DatabaseMetaData#getPrimaryKeys()调用,将会执行这个SQL,如果不及时关闭,则还可能产生严重的内存占用。
那么怎样规避这个调用,考察这个调用是否必要显得非常重要,这个SQL导致的逻辑度太过显著。
对Top SQL保持敏感是DBA的重要守则。
记录以备忘。
-The End-
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




