Как часто статистика базы данных Oracle должна быть выполнена?

Вот еще один вариант, используя String.slice:

"[40.45694301152436, -3.6907402812214514]" 
|> String.slice(1..-2) 
|> String.split(~r/,\s+/) 
|> Enum.map(&String.to_float/1)

Приветствия!

21
задан 17 September 2008 в 02:20
поделиться

7 ответов

В моем последнем задании мы выполнили статистику один раз в неделю. Если я помню правильно, мы запланировали их в четверг ночью, и в пятницу DBAs очень старались контролировать самые долгие рабочие запросы для чего-либо неожиданного. (Пятница была выбрана, потому что это было часто сразу после выпуска кода и имело тенденцию быть днем довольно низкого трафика.), Когда они видели плохой запрос, они найдут лучший план запросов и сохранят тот один, таким образом, он не изменился бы снова неожиданно. (Oracle имеет инструменты, чтобы сделать это для Вас автоматически, Вы говорите ей запрос для оптимизации, и она делает.)

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

13
ответ дан 29 November 2019 в 20:03
поделиться

Каждый раз, когда данные "значительно" изменяются.

, Если таблица идет от 1 строки до 200 строк, это - существенное изменение. Когда таблица идет от 100 000 строк до 150 000 строк, это не ужасно существенное изменение. Когда таблица идет от 1 000 строк все с идентичными значениями в обычно запрошенном столбце X к 1 000 строк почти с уникальными значениями в столбце X, это - существенное изменение.

Статистические данные хранят информацию о количествах объекта и частотностях - вещи, которые позволят ей "предположить" то, сколько строк будет соответствовать данному критерии. Когда это не угадывает, оптимизатор может выбрать очень субоптимальный план запросов.

13
ответ дан 29 November 2019 в 20:03
поделиться

Какую версию Oracle Вы используете? Проверьте эту страницу, которая относится к Oracle 10:

http://www.acs.ilstu.edu/docs/Oracle/server.101/b10752/stats.htm

Это говорит:

рекомендуемый подход к собирающейся статистике должен позволить Oracle автоматически собирать статистику. Oracle собирает статистику по всем объектам базы данных автоматически и поддерживает те статистические данные в задании регулярно-планового-обслуживания.

5
ответ дан 29 November 2019 в 20:03
поделиться

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

2
ответ дан 29 November 2019 в 20:03
поделиться

С 10 г и старшая версия оракула, актуальные статистические данные по таблицам и индексам необходимы оптимизатору для принятия "хорошего" решения плана выполнения. То, как часто Вы собираете статистические данные, является хитрым вызовом. Это зависит от Вашего приложения, схемы, скорости передачи данных и деловой практики. Некоторые приложения сторонних производителей, которые записаны, чтобы быть обратно совместимыми с более старой версией оракула, не работают хорошо с новым оптимизатором. Те, которые приложение требует, чтобы таблицы не имели никакой статистики так, чтобы дб обратился назад для управления основного плана выполнения. Но в среднем оракул рекомендует, чтобы статистика была собрана на таблицах с устаревшей статистикой. Можно накрыть на столы, чтобы быть монитором и проверить их состояние и сделать, чтобы они проанализировали, если/когда устаревший. Часто это достаточно, когда-то это не. Это действительно зависит от Вашей базы данных. Для моей базы данных у нас есть ряд таблиц OLTP, которым нужен ночной набор статистики для поддержания производительности. Другие таблицы, анализируют один раз в неделю. На нашей большой базе данных собственного веса мы анализируем по мере необходимости, поскольку таблицы являются слишком большими для регулярного анализа, не влияя на полную загрузку дб и производительность. Таким образом, корректный ответ, он зависит от приложения, изменения данных и бизнес-потребностей.

2
ответ дан 29 November 2019 в 20:03
поделиться

Удостоверьтесь, что сбалансировали риск, что новые статистические данные вызывают нежелательные изменения в планах запросов против риска, что устаревшая статистика может самостоятельно заставить планы запросов изменяться.

Предполагают, что у Вас есть база данных ошибки с таблицей ISSUE и столбцом CREATE_DATE, где значения в столбце увеличиваются более или менее монотонно. Теперь, предположите, что существует гистограмма на этом столбце, который говорит Oracle, что значения для этого столбца равномерно распределены между 1 января 2008 и 17 сентября 2008. Это позволяет оптимизатору обоснованно оценить количество строк, которые были бы возвращены, если бы Вы искали все проблемы, созданные на прошлой неделе (т.е. 7 - 13 сентября). Если приложение продолжит использоваться, и статистические данные никогда не обновляются, тем не менее, то эта гистограмма будет все меньше и меньше точна. Таким образом, оптимизатор будет ожидать, что запросы для "проблем, созданных на прошлой неделе", будут все меньше и меньше точны со временем, и может в конечном счете заставить Oracle изменять план запросов негативно.

1
ответ дан 29 November 2019 в 20:03
поделиться

В случае системы типов хранилища данных можно рассмотреть собирание никаких статистических данных вообще и доверие динамической выборке (устанавливающий optimizer_dynamic_sampling к уровню 2 или выше).

0
ответ дан 29 November 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: