Завдання: Оптимізація Запитів
Дослідимо дві таблиці: BankAccounts
та ще одну додаткову таблицю під назвою Transactions
.
BankAccounts table
Transactions table
Припустимо, нам потрібно отримати лише ті номери рахунків, які здійснили хоча б одну транзакцію.
У цьому завданні наведено запит, який не оптимізовано. Ваше завдання — переписати його більш оптимальним способом.
Ось перелік основних технік переписування запитів для підвищення оптимізації:
-
Явно вказуйте стовпці: Замість використання зірочки (
*
) вказуйте назви стовпців у запитах для кращої продуктивності, читабельності та підтримки; -
Мінімізуйте вкладені запити: Зменшуйте використання підзапитів для оптимізації продуктивності. Розгляньте альтернативи, такі як об'єднання (join) або похідні таблиці, щоб уникнути складності та додаткових витрат;
-
Уникайте багаторазового використання оператора IN: Обмежуйте використання оператора
IN
у запитах, щоб не впливати на продуктивність. Замість цього використовуйтеJOIN
абоEXISTS
для більш ефективних планів виконання; -
Логічно організовуйте об'єднання: Починайте об'єднання SQL із основної таблиці, а потім приєднуйте пов'язані таблиці для оптимізації структури запиту та роботи рушія бази даних;
-
Використовуйте обмежувальні умови WHERE: Покращуйте продуктивність запиту, додаючи обмежувальні умови у секцію
WHERE
для фільтрації рядків і підвищення швидкості виконання; -
Рефакторинг коду у збережені процедури або функції: Інкапсулюйте повторювані фрагменти коду у збережені процедури або користувацькі функції для повторного використання, модульності та спрощення підтримки. Це дозволяє зменшити надлишковість і оптимізувати SQL-запити.
Swipe to start coding
Будь ласка, перепишіть запит більш оптимально. Зверніть увагу, що потрібно отримати лише номери рахунків, які виконали хоча б одну транзакцію (перевели гроші на інший рахунок), відсортовані у зростаючому порядку.
Примітка
Для виконання цього завдання використовуйте тип з'єднання
LEFT
абоINNER
.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.35
Завдання: Оптимізація Запитів
Свайпніть щоб показати меню
Дослідимо дві таблиці: BankAccounts
та ще одну додаткову таблицю під назвою Transactions
.
BankAccounts table
Transactions table
Припустимо, нам потрібно отримати лише ті номери рахунків, які здійснили хоча б одну транзакцію.
У цьому завданні наведено запит, який не оптимізовано. Ваше завдання — переписати його більш оптимальним способом.
Ось перелік основних технік переписування запитів для підвищення оптимізації:
-
Явно вказуйте стовпці: Замість використання зірочки (
*
) вказуйте назви стовпців у запитах для кращої продуктивності, читабельності та підтримки; -
Мінімізуйте вкладені запити: Зменшуйте використання підзапитів для оптимізації продуктивності. Розгляньте альтернативи, такі як об'єднання (join) або похідні таблиці, щоб уникнути складності та додаткових витрат;
-
Уникайте багаторазового використання оператора IN: Обмежуйте використання оператора
IN
у запитах, щоб не впливати на продуктивність. Замість цього використовуйтеJOIN
абоEXISTS
для більш ефективних планів виконання; -
Логічно організовуйте об'єднання: Починайте об'єднання SQL із основної таблиці, а потім приєднуйте пов'язані таблиці для оптимізації структури запиту та роботи рушія бази даних;
-
Використовуйте обмежувальні умови WHERE: Покращуйте продуктивність запиту, додаючи обмежувальні умови у секцію
WHERE
для фільтрації рядків і підвищення швидкості виконання; -
Рефакторинг коду у збережені процедури або функції: Інкапсулюйте повторювані фрагменти коду у збережені процедури або користувацькі функції для повторного використання, модульності та спрощення підтримки. Це дозволяє зменшити надлишковість і оптимізувати SQL-запити.
Swipe to start coding
Будь ласка, перепишіть запит більш оптимально. Зверніть увагу, що потрібно отримати лише номери рахунків, які виконали хоча б одну транзакцію (перевели гроші на інший рахунок), відсортовані у зростаючому порядку.
Примітка
Для виконання цього завдання використовуйте тип з'єднання
LEFT
абоINNER
.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 4.35single