Как собрать статистику в oracle?

Пользователь

от catherine_wintheiser , в категории: SQL , 2 года назад

Как собрать статистику в oracle?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kameron , 2 года назад

@catherine_wintheiser 

Существует несколько способов собрать статистику в Oracle:

  1. Использовать утилиту DBMS_STATS:
1
2
3
4
5
6
7
BEGIN
  DBMS_STATS.GATHER_TABLE_STATS(
    ownname => '<schema>', 
    tabname => '<table>',
    estimate_percent => <percent>
  );
END;


  1. Использовать утилиту ANALYZE:
1
ANALYZE TABLE <schema>.<table> COMPUTE STATISTICS;


  1. Использовать утилиту EXPORT/IMPORT:
1
EXPORT TABLE <schema>.<table> STATISTICS TO <file>.STA;


1
IMPORT TABLE <schema>.<table> STATISTICS FROM <file>.STA;


  1. Использовать команду SQL*Plus:
1
2
3
4
5
SQL> EXECUTE DBMS_STATS.GATHER_TABLE_STATS(
  ownname => '<schema>', 
  tabname => '<table>',
  estimate_percent => <percent>
);


Где <schema> - имя схемы, <table> - имя таблицы, а <percent> - процент данных, который нужно анализировать (по умолчанию равен 100).

Пользователь

от vladimir , год назад

@catherine_wintheiser 

Также можно использовать следующие команды для сбора статистики в Oracle:

  • ANALYZE TABLE . COMPUTE STATISTICS;
  • EXEC DBMS_STATS.GATHER_SCHEMA_STATS('');
  • EXEC DBMS_STATS.GATHER_DATABASE_STATS;


Эти команды позволяют собрать статистику для конкретной таблицы, всей схемы или всей базы данных соответственно.


Кроме того, можно настроить автоматическое сбора статистики в Oracle, используя задания обслуживания. Для этого необходимо создать или изменить задание обслуживания и включить опцию сбора статистики.


Важно отметить, что сбор статистики помогает оптимизировать выполнение запросов и улучшить производительность базы данных, поэтому рекомендуется регулярно собирать статистику, особенно после значительных изменений в данных или структуре таблиц.