Команда Oracle Analyze Table - PullRequest
       9

Команда Oracle Analyze Table

3 голосов
/ 21 октября 2011

Является ли команда Analyze table tbl compute statistics DDL или DML?Интуитивно кажется, что нет ни того, ни другого.Когда у меня есть эта команда в файле .sql, мне нужно сделать:

execute immediate 'Analyze table tbl compute statistics'

У меня есть знакомый вопрос о команде: GRANT DELETE, INSERT, SELECT, UPDATE ON tbl to user

1 Ответ

6 голосов
/ 22 октября 2011

ОБНОВЛЕНИЕ Oracle говорит , что и grant, и analyze являются операторами языка определения данных (DDL).Очевидно, они не делают различий между DDL и языком управления данными (DCL).

Если выполнение выполняется из PL / SQL, тогда потребуется либо execute immediate, либо DBMS_SQL .

Кроме того, " Не используйте предложения COMPUTE и ESTIMATE ANALYZE для сбора статистики оптимизатора. " (10gR2) " Для сбора большей части статистики используйте пакет DBMS_STATS. ..Используйте оператор ANALYZE (а не DBMS_STATS) для сбора статистики, не связанной с оптимизатором на основе затрат."(11g R2) Analyze table устарел для сбора статистики оптимизатора, хотя по-прежнему полезен для других целей.Вместо этого используйте DBMS_STATS .(Я ссылался на онлайн-документацию Oracle для 10g R2. Однако у меня были проблемы с сайтом документации Oracle в последние несколько дней, когда документы 10g R2 исчезали, а затем появлялись снова.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...