2020-03-17
SQL Version Count过高的处理思路

12.2 RAC
AWR中,在每个pdb的SQL ordered by Version Count中都会出现这一条SQL,应该是非业务的系统SQL,这种系统内部的SQL的排查思路。谢谢
SQL如下:
MERGE /*+ OPT_PARAM('_parallel_syspls_obey_force' 'false') */ INTO OPTSTAT_USER_PREFS$ D USING ( SELECT * FROM ( SELECT O.OBJ#, SYSTIMESTAMP CHGTIME, ROUND(MAX(S.DELTA_READ_IO_BYTES/S.DELTA_TIME), 3) SCANRATE FROM GV$ACTIVE_SESSION_HISTORY S, GV$SQL_PLAN P, OBJ$ O, USER$ U WHERE S.INST_ID = P.INST_ID AND S.SQL_ID = P.SQL_ID AND S.SQL_PLAN_HASH_VALUE = P.PLAN_HASH_VALUE AND S.SQL_PLAN_LINE_ID = P.ID AND P.OBJECT_NAME = O.NAME AND (:B4 IS NULL OR O.OBJ# = :B4 ) AND O.OWNER# = U.USER# AND P.OBJECT_OWNER = U.NAME AND O.TYPE# = 2 AND S.CON_ID = SYS_CONTEXT('userenv', 'con_id') AND P.CON_ID = SYS_CONTEXT('userenv', 'con_id') AND S.SQL_PLAN_OPERATION = 'TABLE ACCESS' AND P.OPERATION = 'TABLE ACCESS' AND S.DELTA_TIME > 0 AND S.DELTA_READ_IO_BYTES > 0 AND FROM_TZ(S.SAMPLE_TIME, :B3 ) > :B2 AND (:B1 = 'ON' OR (:B1 = 'HADOOP_ONLY' AND EXISTS ( SELECT NULL FROM SYS.EXTERNAL_TAB$ ET WHERE ET.OBJ# = O.OBJ# AND TYPE$ IN ('ORACLE_HIVE', 'ORACLE_HDFS', 'ORACLE_BIGDATA')))) GROUP BY O .OBJ#) C WHERE NOT EXISTS ( SELECT NULL FROM OPTSTAT_USER_PREFS$ PR WHERE PNAME = 'SCAN_RATE' AND C.OBJ# = PR.OBJ# AND (PR.SPARE1 IS NULL OR C.SCANRATE <= TO_NUMBER(PR.VALCHAR))) ) SRC ON (D.OBJ#=SRC.OBJ# AND D.PNAME = 'SCAN_RATE') WHEN MATCHED THEN UPDATE SET D.VALCHAR= TO_CHAR(SRC.SCANRATE), D.CHGTIME=SRC.CHGTIME, D.SPARE1=1 WHEN NOT MATCHED THEN INSERT (OBJ#, PNAME, VALCHAR, CHGTIME, SPARE1) VALUES(SRC.OBJ#, 'SCAN_RATE', TO_CHAR(SRC.SCANRATE), SRC.CHGTIME, 1)
复制
收藏
分享
4条回答
默认
最新
回答交流
Markdown
请输入正文
提交
相关推荐
在联机数据文件移动操作期间,可以进行哪四个操作?
回答 3
已采纳
ADEF
oracle数据库plsql代码块中用游标去DROP表报错,怎么解决?
回答 1
已采纳
'droptable'||v.tablename需要空格
Oracle有没有发行过arm的版本?
回答 3
Oracle有arm的客户端,arm的性能堆积起来是比x86要好的,并不是arm的就差。
大神,帮我看一下,这个资源监视器页面正常吗?
回答 1
已采纳
感觉再正常不过了。
sql server是不是没有像oracle一样的模式?
回答 1
已采纳
有啊,默认的模式就是dbo,当然可以自己建;只是说Oracle的user和schema通常创建在一起而已
静默安装Oracle,执行安装命令时,总出现unzip的使用?
回答 8
信息不够,多贴出来点信息才好知道问题
dba_hist_active_sess_history 这个里面的数据是怎么来的?
回答 2
oracle 后台进程每秒对v$session 做快照, 把状态是ACTIVE的记录临时存放到v$activesessionhistory;每隔10秒的v$actives
oracle数据库如何降低高水位?
回答 1
已采纳
1可以通过mv表,2.通过t新建表。insert,然后truncate,rename等操作重新组织数据
oracle创建临时表是不是必须加Temporary?
回答 2
已采纳
必须的~,不然怎么确定表空间类型?默认是永久表空间,可以缺省PERMANENT;
plsql连接某台linux上的oracle数据库报“ora-12541:tns:无监听程序”?
回答 1
已采纳
1、检查该库对应的监听程序是否正常启动、及监听程序的状态;2、确保监听的IP、实例被监听到;
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
热门文章