Поиск узких мест в Oracle с помощью ASH/AWR и LLM
alisichkin 47 минут назад Объяснить с Поиск узких мест в Oracle с помощью ASH/AWR и LLM Сложный 16 мин 1.4K Oracle * Базы данных * SQL * Искусственный интеллект Python * Добрый день, всем любителям Oracle и пирогов из...
Will Anthropic have the best AI model at the end of October 2026?
В сфере искусственного интеллекта произошло заметное событие. alisichkin 47 минут назад Объяснить с Поиск узких мест в Oracle с помощью ASH/AWR и LLM Сложный 16 мин 1. 4K Oracle * Базы данных * SQL * Искусственный интеллект Python * Добрый день, всем любителям Oracle и пирогов из картофельных очистков*! Одна из самых часто встречающихся проблем при использовании баз данных - это поиск узких мест: нахождение долго выполняющихся запросов и их исправление.
Как часто вы сталкивались с ситуацией, когда запрос мгновенно отрабатывает в тестовом окружении, но начинает «тормозить» на боевом сервере? Или замедление запросов проявляется не сразу, а по мере роста данных? В одной организации, где я раньше работал, для поиска проблемных запросов использовалось логирование.
Технические детали
Не хватает информации - нужно добавить логирования. И ввести дежурство по разбору логов. Ну как тут не вспомнить Томаса Кайта?
«Не изобретайте колесо. Я видел не одну команду разработчиков, которые сталкивались с проблемами - не только на техническом уровне - из-за неосведомленности о том, что свободно предлагается Oracle. Это происходит, когда кто-то обнаруживает, что средство, на реализацию которого потрачено пару месяцев, уже есть в ядре базы данных»**.
Зачем изобретать логирование, если в Oracle уже есть такие прекрасные средства, как ASH (Active Session History) и AWR (Automatic Workload Repository) - встроенные инструменты мониторинга и диагностики производительности? Ручной анализ плана выполнения SQL-запросов, который можно получить из ASH или AWR, занимает время и требует экспертных знаний о работе конкретной базы данных Oracle, информации о схеме данных, наличии индексов, о разбиении таблиц на партиции и т. Но все необходимые для оптимизации данные уже есть в самой базе - это приводит к логическому выводу: процесс оптимизации можно автоматизировать.
Программа по оптимизации запросов в Oracle должна выполнять следующие действия:Получать Top-20 (настраивается) самых тяжелых запросов из ASH или AWR;Получать планы SQL-запросов через DBMS_XPLAN, из кэша курсоров в оперативной памяти или из исторической статистики DBA_HIST_SQL_PLAN;Собирать информацию об объектах, используемых в SQL-запросах;Получать DML-команды объектов, используемых в запросах. Объединив данные, мы можем, используя экспертные системы на основе LLM моделей, получить рекомендации по оптимизации запросов:Создание индексов;Модификация запроса (если это возможно);Изменение способа хранения в таблицах, которые могут привести к оптимизации операций ввода-вывода. Хочу поделиться опытом, представить вам свою программу: Optimus Oracle.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.



