Telegram Group & Telegram Channel
Решение технической задачи

Друзья, всем привет! 👋🏻

В понедельник мы выкладывали техническую задачу по оптимизации. Скажу по секрету, такие задачи задают на собеседовании в одном из крупных ритейлеров.

Итак, если посмотреть на план запроса, видно, что узкое место в том, что мы выгребаем из индекса 4 млн. записей, хотя архивная копия по размеру будет очень близка к исходной таблице (разница всего в 2 недели).

Какие можно дать рекомендации

1️⃣ Сбор статистики

Смотрим на статистику таблицы sales

SELECT stale_stats FROM user_tab_statistics WHERE table_name = 'SALES'


Если запрос вернет YES или <NULL> - статистика неактуальна, делаем

DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => USER, TABNAME =>  'SALES');


2️⃣ Управление индексом

Если статистика актуальна, а оптимизатор все равно считает, что нужен индекс, следует выполнить ALTER INDEX SALES_IDX INVISIBLE.

3️⃣ SQL Plan Management

Минус подхода с SQL Plan Management в том, что если вендор доработает запрос, наша «магия» с подменой плана исчезнет :( Но часто он помогает устранить "острую боль", когда нет возможности оперативно выпустить патч или исправить тормозящий запрос. Про этот подход мы более подробно рассказываем на нашем курсе по оптимизации. Там же есть куча вопросов с собеседований и тестовых заданий. Так что если вы хотите к ним лучше подготовиться - welcome

Ставь лайк, если ответил верно. Делитесь в комментариях, у кого еще Index Range Scan тормозил прод.

#oracle #оптимизация #задача #оптимизация #performance #Pavel_Dolganov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/oracle_dbd/900
Create:
Last Update:

Решение технической задачи

Друзья, всем привет! 👋🏻

В понедельник мы выкладывали техническую задачу по оптимизации. Скажу по секрету, такие задачи задают на собеседовании в одном из крупных ритейлеров.

Итак, если посмотреть на план запроса, видно, что узкое место в том, что мы выгребаем из индекса 4 млн. записей, хотя архивная копия по размеру будет очень близка к исходной таблице (разница всего в 2 недели).

Какие можно дать рекомендации

1️⃣ Сбор статистики

Смотрим на статистику таблицы sales

SELECT stale_stats FROM user_tab_statistics WHERE table_name = 'SALES'


Если запрос вернет YES или <NULL> - статистика неактуальна, делаем

DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => USER, TABNAME =>  'SALES');


2️⃣ Управление индексом

Если статистика актуальна, а оптимизатор все равно считает, что нужен индекс, следует выполнить ALTER INDEX SALES_IDX INVISIBLE.

3️⃣ SQL Plan Management

Минус подхода с SQL Plan Management в том, что если вендор доработает запрос, наша «магия» с подменой плана исчезнет :( Но часто он помогает устранить "острую боль", когда нет возможности оперативно выпустить патч или исправить тормозящий запрос. Про этот подход мы более подробно рассказываем на нашем курсе по оптимизации. Там же есть куча вопросов с собеседований и тестовых заданий. Так что если вы хотите к ним лучше подготовиться - welcome

Ставь лайк, если ответил верно. Делитесь в комментариях, у кого еще Index Range Scan тормозил прод.

#oracle #оптимизация #задача #оптимизация #performance #Pavel_Dolganov

Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀

BY Oracle Developer👨🏻‍💻




Share with your friend now:
tg-me.com/oracle_dbd/900

View MORE
Open in Telegram


Oracle Developer‍ Telegram | DID YOU KNOW?

Date: |

The messaging service and social-media platform owes creditors roughly $700 million by the end of April, according to people briefed on the company’s plans and loan documents viewed by The Wall Street Journal. At the same time, Telegram Group Inc. must cover rising equipment and bandwidth expenses because of its rapid growth, despite going years without attempting to generate revenue.

The global forecast for the Asian markets is murky following recent volatility, with crude oil prices providing support in what has been an otherwise tough month. The European markets were down and the U.S. bourses were mixed and flat and the Asian markets figure to split the difference.The TSE finished modestly lower on Friday following losses from the financial shares and property stocks.For the day, the index sank 15.09 points or 0.49 percent to finish at 3,061.35 after trading between 3,057.84 and 3,089.78. Volume was 1.39 billion shares worth 1.30 billion Singapore dollars. There were 285 decliners and 184 gainers.

Oracle Developer‍ from pl


Telegram Oracle Developer👨🏻‍💻
FROM USA