Рубрика:
Администрирование /
Базы данных
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ВИЗИТКА
Валерий Михеичев, эксперт Oracle СПАО «Ингосстрах»
Статистика таблиц в Oracle 12
Практика выполнения SQL-запроса в Oracle показала, что эффективность его выполнения (время выполнения, процессорные затраты и т.д.) существенно зависит от статистики таблиц, входящих в SQL-запрос. В силу чего, при неэффективной работе SQL-запроса, целесообразным является проверка таблиц, входящие в запрос (секций для секционированных таблиц), на предмет наличия у них статистики, и не устарела ли существующая статистика таблицы. Вопросы проверки наличия и качества статистики и вопросы правильного сбора и обновления статистики таблиц (секций и подсекций секционированных таблиц) рассматриваются в данной статье.
Отсутствует или устарела статистика у таблицы
Отсутствие статистики, или не устарела ли статистика у не секционированной таблицы (например, ARS.AGREM), позволяет увидеть запрос:
Select s.owner, s.table_name, s.global_stats, s.stale_stats, s.stattype_locked, s.last_analyzed, case when t.num_rows>0 then round(t.sample_size*100 /t.num_rows) end pr_stats, s.num_rows, dbms_stats.get_prefs ('stale_percent', s.owner, s.table_name) pr_table_percent, dbms_stats.get_prefs ('stale_percent') pr_system_percent from dba_tab_statistics s, dba_tables t where s.owner=t.owner and s.table_name= t.table_name and t.partitioned='NO' and instr(s.owner,'-')=0 and s.owner='ARS' and s.table_name= 'AGREM' and (s.stale_stats='YES' or s.stale_stats is null);
<...>
Ключевые слова: Oracle, sql-запросы, базы данных, оптимизация запросов, сбор статистики
Полную версию статьи читайте в журнале Подпишитесь на журнал Купите в Интернет-магазине
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|