Меня зовут работать тогда, когда речь именно про Oracle: я специалист по PL/SQL, а не универсальный бэкендер, который иногда заглядывает в базу. Ежедневно разрабатываю хранимые процедуры, пакеты, функции и триггеры, в которых живёт настоящая логика предприятия, и держу их такими, чтобы через полгода в код можно было вернуться без страха. Если отчёту нужно сверить миллионы записей, если ночной расчёт обязан уложиться в окно до открытия дня, а на одной процедуре завязан весь финансовый контур — я в первую очередь добиваюсь корректности, а следом уже скорости. Bind-переменные, BULK COLLECT и FORALL, курсоры, коллекции, аналитические функции — это привычный инструмент, чтобы вычисления шли рядом с данными, а не гоняли гигантские выборки по сети.
Отдельная и большая часть заказов — ускорение того, что уже тормозит. Разбираю планы выполнения, нахожу, где оптимизатор пошёл не туда, и лечу это индексами, переписанными соединениями, секционированием или хинтами там, где они реально к месту. Опираюсь на AWR и трассировки, чтобы вычислить конкретный запрос-виновник, а не менять всё подряд наугад, и всегда могу человеческим языком объяснить, из-за чего было медленно и что стало иначе. Помимо оптимизации собираю ETL-потоки и витрины отчётности внутри Oracle: приём и очистка исходников, наложение бизнес-правил, надёжные таблицы и представления, к которым спокойно обращается BI или приложение. Слежу за транзакциями, обработкой ошибок и журналированием — молчаливый сбой опаснее громкого.
Опишите структуру данных, где болит и к какому сроку нужно — верну честную оценку и сопровождаемый код, который переживёт моё участие в проекте.
— Хранимые процедуры, пакеты, функции и триггеры на Oracle PL/SQL
— Написание и ускорение SQL: планы, индексы, секционирование
— Массовая обработка строк: BULK COLLECT, FORALL, коллекции, ref-курсоры
— Сборка ETL и загрузка данных: SQL*Loader, внешние таблицы, staging-слой
— Запросы, представления и материализованные представления для отчётности
— Ревизия и документирование унаследованного кода PL/SQL
Отдельная и большая часть заказов — ускорение того, что уже тормозит. Разбираю планы выполнения, нахожу, где оптимизатор пошёл не туда, и лечу это индексами, переписанными соединениями, секционированием или хинтами там, где они реально к месту. Опираюсь на AWR и трассировки, чтобы вычислить конкретный запрос-виновник, а не менять всё подряд наугад, и всегда могу человеческим языком объяснить, из-за чего было медленно и что стало иначе. Помимо оптимизации собираю ETL-потоки и витрины отчётности внутри Oracle: приём и очистка исходников, наложение бизнес-правил, надёжные таблицы и представления, к которым спокойно обращается BI или приложение. Слежу за транзакциями, обработкой ошибок и журналированием — молчаливый сбой опаснее громкого.
Опишите структуру данных, где болит и к какому сроку нужно — верну честную оценку и сопровождаемый код, который переживёт моё участие в проекте.
— Хранимые процедуры, пакеты, функции и триггеры на Oracle PL/SQL
— Написание и ускорение SQL: планы, индексы, секционирование
— Массовая обработка строк: BULK COLLECT, FORALL, коллекции, ref-курсоры
— Сборка ETL и загрузка данных: SQL*Loader, внешние таблицы, staging-слой
— Запросы, представления и материализованные представления для отчётности
— Ревизия и документирование унаследованного кода PL/SQL