![]() |
Оптимизация базы данных
Здравствуйте.
Скажите, пожалуйста, с чего начать оптимизацию базы данных/SQL запросов Oracle? В общем, есть большая БД, из которой делаются отчёты. Так вот если делать отчёты за последние месяцы, то всё +/- в порядки, а вот если за последние годы, то очень долго всё генерируется. Как это всё проанализировать, может, есть какие-то инструменты? Может нужно пересмотреть индексы? Буду благодарен вам за советы. |
Способов оптимизации очень много. Это и партиционирование таблиц, и перестройка индексов, и оптимизация самих запросов и так далее. Вы описываете слишком общую картину, чтобы дать конкретный ответ.
Для ясности: размер базы? количество индексов, участвующих в запросах? Количество строк в таблицах? Пример SQL запроса? У меня есть таблица, в которой порядка миллиарда записей, так в ней простой ORDER BY делается довольно долго. |
Вот план выполнения одного запроса:
![]() Запрос возвращает 115559 записей за 102 секунды. Это эксперимент над тестовой БД, в настоящей записей гораздо больше и время тоже катастрофически большое. |
Скажите, можете подсказать. Почему допустим, я выбираю данные за позапрошлую неделю то результат получаю в 10х быстрее, чем допустим за какую-то неделю в апреле?
Спасибо. |
Время: 16:11. |
Время: 16:11.
© OSzone.net 2001-2025