Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Оптимізація Запитів | Оптимізація Запитів.Індекси
Просунуті Техніки в SQL

bookЗавдання: Оптимізація Запитів

Дослідимо дві таблиці: BankAccounts та ще одну додаткову таблицю під назвою Transactions.

BankAccounts table

Transactions table

Припустимо, нам потрібно отримати лише ті номери рахунків, які здійснили хоча б одну транзакцію.

У цьому завданні наведено запит, який не оптимізовано. Ваше завдання — переписати його більш оптимальним способом.

Ось перелік основних технік переписування запитів для підвищення оптимізації:

  1. Явно вказуйте стовпці: Замість використання зірочки (*) вказуйте назви стовпців у запитах для кращої продуктивності, читабельності та підтримки;

  2. Мінімізуйте вкладені запити: Зменшуйте використання підзапитів для оптимізації продуктивності. Розгляньте альтернативи, такі як об'єднання (join) або похідні таблиці, щоб уникнути складності та додаткових витрат;

  3. Уникайте багаторазового використання оператора IN: Обмежуйте використання оператора IN у запитах, щоб не впливати на продуктивність. Замість цього використовуйте JOIN або EXISTS для більш ефективних планів виконання;

  4. Логічно організовуйте об'єднання: Починайте об'єднання SQL із основної таблиці, а потім приєднуйте пов'язані таблиці для оптимізації структури запиту та роботи рушія бази даних;

  5. Використовуйте обмежувальні умови WHERE: Покращуйте продуктивність запиту, додаючи обмежувальні умови у секцію WHERE для фільтрації рядків і підвищення швидкості виконання;

  6. Рефакторинг коду у збережені процедури або функції: Інкапсулюйте повторювані фрагменти коду у збережені процедури або користувацькі функції для повторного використання, модульності та спрощення підтримки. Це дозволяє зменшити надлишковість і оптимізувати SQL-запити.

Завдання

Swipe to start coding

Будь ласка, перепишіть запит більш оптимально. Зверніть увагу, що потрібно отримати лише номери рахунків, які виконали хоча б одну транзакцію (перевели гроші на інший рахунок), відсортовані у зростаючому порядку.

Примітка

Для виконання цього завдання використовуйте тип з'єднання LEFT або INNER.

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 7
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you show me the unoptimized query?

What would an optimized query look like for this task?

Can you explain why the optimized query is better?

close

Awesome!

Completion rate improved to 4.35

bookЗавдання: Оптимізація Запитів

Свайпніть щоб показати меню

Дослідимо дві таблиці: BankAccounts та ще одну додаткову таблицю під назвою Transactions.

BankAccounts table

Transactions table

Припустимо, нам потрібно отримати лише ті номери рахунків, які здійснили хоча б одну транзакцію.

У цьому завданні наведено запит, який не оптимізовано. Ваше завдання — переписати його більш оптимальним способом.

Ось перелік основних технік переписування запитів для підвищення оптимізації:

  1. Явно вказуйте стовпці: Замість використання зірочки (*) вказуйте назви стовпців у запитах для кращої продуктивності, читабельності та підтримки;

  2. Мінімізуйте вкладені запити: Зменшуйте використання підзапитів для оптимізації продуктивності. Розгляньте альтернативи, такі як об'єднання (join) або похідні таблиці, щоб уникнути складності та додаткових витрат;

  3. Уникайте багаторазового використання оператора IN: Обмежуйте використання оператора IN у запитах, щоб не впливати на продуктивність. Замість цього використовуйте JOIN або EXISTS для більш ефективних планів виконання;

  4. Логічно організовуйте об'єднання: Починайте об'єднання SQL із основної таблиці, а потім приєднуйте пов'язані таблиці для оптимізації структури запиту та роботи рушія бази даних;

  5. Використовуйте обмежувальні умови WHERE: Покращуйте продуктивність запиту, додаючи обмежувальні умови у секцію WHERE для фільтрації рядків і підвищення швидкості виконання;

  6. Рефакторинг коду у збережені процедури або функції: Інкапсулюйте повторювані фрагменти коду у збережені процедури або користувацькі функції для повторного використання, модульності та спрощення підтримки. Це дозволяє зменшити надлишковість і оптимізувати SQL-запити.

Завдання

Swipe to start coding

Будь ласка, перепишіть запит більш оптимально. Зверніть увагу, що потрібно отримати лише номери рахунків, які виконали хоча б одну транзакцію (перевели гроші на інший рахунок), відсортовані у зростаючому порядку.

Примітка

Для виконання цього завдання використовуйте тип з'єднання LEFT або INNER.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

close

Awesome!

Completion rate improved to 4.35
Секція 2. Розділ 7
single

single

some-alt