Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Оптимізація Запитів | Оптимізація Запитів.Індекси
Quizzes & Challenges
Quizzes
Challenges
/
Оптимізація SQL та Особливості Запитів

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

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

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

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

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

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

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

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

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

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

Завдання

Swipe to start coding

Ваше завдання — написати запит, який повертає список усіх номерів рахунків, з яких було здійснено хоча б одну транзакцію (переказ коштів на інший рахунок). Результати мають бути відсортовані за зростанням номера рахунку.

Щоб зробити ваш запит ефективнішим і зрозумілішим, дотримуйтесь наступних кроків:

  • Вибирайте лише стовпець account_number;
  • Використовуйте INNER JOIN між таблицями BankAccounts та Transactions;
  • Не використовуйте оператор IN або підзапити;
  • Відсортуйте результат за account_number у порядку зростання.

Рішення

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

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Suggested prompts:

Can you show me the original unoptimized query?

What database system are we using for this task?

Can you provide an example of the tables involved?

close

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

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

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

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

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

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

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

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

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

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

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

Завдання

Swipe to start coding

Ваше завдання — написати запит, який повертає список усіх номерів рахунків, з яких було здійснено хоча б одну транзакцію (переказ коштів на інший рахунок). Результати мають бути відсортовані за зростанням номера рахунку.

Щоб зробити ваш запит ефективнішим і зрозумілішим, дотримуйтесь наступних кроків:

  • Вибирайте лише стовпець account_number;
  • Використовуйте INNER JOIN між таблицями BankAccounts та Transactions;
  • Не використовуйте оператор IN або підзапити;
  • Відсортуйте результат за account_number у порядку зростання.

Рішення

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

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

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

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

single

some-alt