awr中一条top sql,查询all_objects

原创 2015年07月07日 13:43:41

每天看看库上的awr报告,发现有条sql三个小时内执行了190多万次:

SELECT NULL AS table_cat,
         o.owner AS table_schem,
         o.object_name AS table_name,
         o.object_type AS table_type,
         NULL AS remarks
         FROM all_objects o
         WHERE o.owner LIKE :1 ESCAPE '/'
         AND o.object_name LIKE :2 ESCAPE '/'
         AND o.object_type IN ('xxx', 'TABLE')
         ORDER BY table_type, table_schem, table_name

一开始以为是用户程序执行的,仔细一看,发现像是oracle内部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


给出的解释是:当JAVA程序中通过DatabaseMetaData#getPrimaryKeys()调用,将会执行这个SQL,如果不及时关闭,则还可能产生严重的内存占用。

看了些其它的资料,也是说的java在调用某些函数的使用应用到该语句,所以呢,最好还是让开发排查一下。


但事情往往推到开发那,就需要耗费大量口舌了。。。

---------------------------------------------------------------------------------------

后续补充2015-08-03

在metalink上面找到这样一篇文章(Doc ID 1492529.1)

导致出现大量执行上述sql的原因是:

This is caused by C3PO, a 3rd party connection pooling library used in the Liferay product.

These queries represent a "ping" to the database to test connection availability, and will do so with a lightweight query that returns no results.


解决方法:

修改portal-ext.properties文件中的参数jdbc.default.idleConnectionTestPeriod的值为一个较大的值,默认是60


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods

我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作 。 Union A...

巧用DISPLAY_AWR函数与dba_hist_sqlstat结合查询SQL语句在指定节点指定时间范围内的历史执行计划

巧用DISPLAY_AWR函数与dba_hist_sqlstat结合查询SQL语句在指定节点指定时间范围内的历史执行计划 (查询SQL语句在指定节点指定时间段的执行计划)

ORACLE 性能优化-查询数据库慢SQL(其实还是awr和ash报告更方便~)

查询数据库繁忙原因 V$SQLAREA; v$session;   1. 查看数据库逻辑读写前10sql     set linesize 300;     set pagesize...

SQL Server 如何查询最后一条记录

在机房收费系统的数据库中,有这样的一个表:worklog_info   这个表有什么作用呢?这个表的作用就是记录着工作人员的操作记录,也就是说,一个一般用户(操作员或管理员)登陆这个系统,和正常关...

Oracle数据库的SQL查询语句查询每个用户最近一次的登录记录并且只显示一条

有如下数据库及数据:create table oness( oids number(4) primary key, Names varchar2(10) not null,...

任意一条查询sql转换为查询结果集对应的数目

原思路: 像括号配对一样,如果遇见select 就入栈,如果遇见from就出栈,直到栈为空,取得此时的位置,进行字符串截取。 实现方法:遇见字符s并且连续后5个字符elect 就+1,遇见字符f并且...
  • topwqp
  • topwqp
  • 2014-04-27 18:49
  • 1832

SQL Server 多表联合查询取最新一条数据

所有的SQL语句如下: create database David; use David --雨量站表 create table RainSite ( ID int not null prim...

一条sql搞定从查询语句中向目标表中插入记录并去重发插入

最近做一个功能,需要从一个试图中查询出相关数据,并将数据中的某些数据插入到另一张表中,但每次操作都会去匹配是否有合适的数据,并将合适的数据插入到数据表中,故不能插入重复数据记录,现贴出我个人的作法 ...

Sql Server exists 查询相同姓名或编号 年份最大的一条数据

转载自:http://blog.csdn.net/anihasiyou/article/details/43272901 select code,zw,zj,year from ZW a wher...

设计实现在一条记录中外键关联到另一个表的两条记录功能的SQL查询

1.在这个复杂的数据库【服务详细信息】视图设计中的主要目的,  解决服务登记人 和 服务人 同样都是源于【员工】信息表。  这两个人员 可能ID和姓名相同 也可能登记人和 服务人员是不同的人  要在同...
  • leek
  • leek
  • 2011-06-29 08:39
  • 318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)