Welcome 微信登录

首页 / 数据库 / MySQL / 10205 bug之6980350, dbms_stats巨慢无比

OS: HPDB: 10204升级至10205症状:升级完成后,客户开始抱怨数据库跑的很慢,以前几个小时能跑完的job现在需要10几个小时,一天能搞定的现在则需要好几天。经过好几次沟通后,通过AWR确认了一个bad sql,据说升级前需要6个小时,现在都运行70个小时了还没结束。Sql如下SELECT /*+ parallel_index(t,"INDEX",8) dbms_stats cursor_sharing_exact use_weak_name_resl dynamic_sampling(0) no_monitoring no_expand index_ffs(t,"INDEX") */COUNT(*)AS nrw,COUNT (DISTINCT sys_op_lbid (4756197, "L", t.ROWID)) AS nlb,COUNT (DISTINCT HEXTORAW( sys_op_descend ("SYS_NC00089$")|| sys_op_descend ("SYS_NC00090$")|| sys_op_descend ("SYS_NC00091$")))AS ndk,sys_op_countchg (SUBSTRB (t.ROWID, 1, 15), 1) AS clfFROM "JUSTIN"."TABLE" SAMPLE BLOCK (15.0000000000) tWHERE "SYS_NC00089$" IS NOT NULLOR "SYS_NC00090$" IS NOT NULLOR "SYS_NC00091$" IS NOT NULL其执行计划如下----------------------------------------------------------------------+-----------------------------------+---------------+| Id | Operation | Name | Rows | Bytes | Cost | Time | Pstart| Pstop |----------------------------------------------------------------------+-----------------------------------+---------------+| 0 | SELECT STATEMENT | | | | 42M | | | || 1 | SORT GROUP BY | | 1 | 30 | | | | || 2 | TABLE ACCESS BY GLOBAL INDEX ROWID | TABLE| 45M | 1349M | 42M | | ROW LOCATION| ROW LOCATION|| 3 | INDEX FULL SCAN | INDEX | 45M | | 2052K | | | |----------------------------------------------------------------------+-----------------------------------+---------------+刚开始比较好奇怎么没有用到parallel,index_ffs也没有起作用,而且还用到了回表操作。开了SR,最后MOS确认此为10205 bug 6980350,而此sql为DBMS_STATS.GATHER_TABLE_STATS("JUSTIN", "TABLE", CASCADE=>TRUE, ESTIMATE_PERCENT=>15, DEGREE=>8)的衍生物,不能人工干预。第三条跟目前情形比较接近,该索引为function-based且用到了sample;DescriptionThis problem is introduced in 10.2.0.5 This Fix addresses multiple issues : 1 - ANALYZE statement choosing inappropriate fast full scan plans.2 - When Gathering with sample, a fast full scan for a bitmap index    may drop the sample clause, making it slow.3- DBMS_STATS compute an inaccurate number of leaf block statistic on   function based indexes when sampling is used, potentially generating   suboptimal execution plans.4 - When Gathering Stats on an index the query might do an unnecessary "TABLE ACCESS BY" . Workaround specify estimate_percent => 100HOOKS PACKAGE:DBMS_STATS SQL:ANALYZE LIKELYAFFECTS XAFFECTS_10.2.0.5 XAFFECTS_V10020005 AFFECTS=10.2.0.5 XPRODID_5 PRODUCT_ID=5 PRODID-5 RDBMS XCOMP_RDBMS COMPONENT=RDBMS TAG_CBO TAG_DBMSPKG TAG_FUNCINDEX TAG_QPERF TAG_RA205 TAG_REGRESSION CBO DBMSPKG FUNCINDEX QPERF RA205 REGRESSION FIXED_11.2.0.1Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support.最后下载one-off patch 6980350,应用之后该sql执行计划正常如下
Id<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />OperationNameRowsBytesCostTQIN-OUTPQ Distrib
0SELECT STATEMENT   21688   
1   SORT GROUP BY 153    
2     PX COORDINATOR       
3       PX SEND QC (RANDOM):TQ10001153 Q1,01P->SQC (RAND)
4         SORT GROUP BY 153 Q1,01PCWP 
5           PX RECEIVE 153 Q1,01PCWP 
6             PX SEND HASH:TQ10000153 Q1,00P->PHASH
7               SORT GROUP BY 153 Q1,00PCWP 
8                 PX BLOCK ITERATOR 47M2395M21688Q1,00PCWC 
9                   INDEX SAMPLE FAST FULL SCANINDEX47M2395M21688Q1,00PCWP 
Unix/Linux搜寻tnsnames.ora规则升级10205遭遇bug222316 之 ora-1031 VS dba_role_privs.default_role =N相关资讯      Oracle数据库基础教程 
  • 在Oracle数据库中插入含有&符号的  (03/06/2013 09:20:14)
  • Oracle 执行计划更改导致数据加工  (02/13/2013 14:45:04)
  • 判断Oracle Sequence是否存在  (02/13/2013 14:32:26)
  • Oracle数据库中无法对数据表进行  (02/26/2013 14:24:58)
  • Oracle 在同一台主机上建立用户管  (02/13/2013 14:40:58)
  • Oracle em 无法启动,报not found错  (02/13/2013 14:29:48)
本文评论 查看全部评论 (0)
表情: 姓名: 字数