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

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

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