05.12.2012 12:40
mary
 
Народ, может кто-то сталкивался. Есть 2 базы, по параметрам одинаковые, но в одной базе №1 запрос использует индекс,а во второй, база №2, нет. В базе №2 идет TABLE ACCESS FULL и запрос выполняется минут 10. Включила в базе №2 хинт /*+RULE*/ запрос отрабатывает за секунды и в плане использует индекс, но желательно что бы без хинта шел по плану с индексом. Есть какие нибудь мысли ? Oracle 11.2.0.3.0 - 64bit Production
05.12.2012 14:49
Pblcb
 
А после сбора статистики такое же поведение?
05.12.2012 15:01
mary
 
Да, при чем удалила всю статистику в 2х базах и собрала заново. Вот что смущает:
Сделала на базе №1, где план использует индекс, alter system flush shared_pool смотрю план выполнения

select sql_text, SQL_ID, SQL_FULLTEXT, dbms_xplan.display_cursor(sql_id, child_number, 'ALL ALLSTATS LAST') from v$sql
where SQL_FULLTEXT like '%connect by prior O.ID=O.ContrObj_Id Start with O.ContrObj_Id is null%';

не меняется и sql_id тотже что и был.

На базе №2 (так как рабочая) очистила только нужный план с помощью exec DBMS_SHARED_POOL.PURGE - запускаю, план выполнения тот же (без индекса), sql_id другой.

Где то я туплю :(
06.12.2012 22:05
OlegON
 
голосую за сбор статистики, причем попробуй analyze table compute statistics for all indexed columns, наверное. уж больно часто меня dbms_stats огорчает.
19.02.2013 09:50
mary
 
В общем выяснила, тупит оракл и СВО. Может кому пригодится, выдержка с металинка:
Данная проблема описана в
Bug 13263174 : SQL PERFORMANCE ISSUE WITH CONNECT BY NO FILTERING ACCESS PATH IN 11.2.0.2:
=============================
DETAILED PROBLEM DESCRIPTION
============================
When CBO uses CONNECT BY NO FILTERING WITH START-WITH a sub-optimal plan is
used

к сожалению one-off patch существуют только для 11.2.0.2, но проблема проявляется и в 11.2.0.3, согласно документу:
Bug 13263174 - Suboptimal plan for some CONNECT BY queries [ID 13263174.8], данный Bug исправлен в 12.1 dthcbb


Как вариант решения:

alter system set "_connect_by_use_union_all" = "old_plan_mode";

Но можно словить кучу других граблей :((
Часовой пояс GMT +3, время: 17:15.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.