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