Съдържание
Можем да получим същите резултати, като напишем различни SQL заявки. Но използването на най -добрата заявка е важно при разглеждане на производителността. SQL Tuning е процесът, който гарантира, че SQL изявленията, които генерира приложение, ще бъдат изпълнени в най -кратки срокове. Тези SQL заявки могат да бъдат оптимизирани за по -добра производителност.
Техники за оптимизация или SQL настройка
След това ще видим някои техники за оптимизация
СЛУЧАЙ 1: SQL заявката става по -бърза, ако използвате имената на полетата, отколкото * като заявка за всички полета на таблицата
SELECT * ОТ клиенти
По -оптимално е да запишете заявката по този начин
ИЗБЕРЕТЕ идентификатор, име, адрес ОТ клиенти
СЛУЧАЙ 2: Клаузата HAVING се използва за филтриране на редовете, след като всички редове са избрани.
SELECT предмет, брой (ученици) number_students ОТ записани WHERE subject = 'Химия' И предмет = 'История' GROUP BY предмет;
По -оптимално е да запишете заявката по този начин
SELECTматериали, брой (ученици) number_alumnos ОТ записани ГРУПА ПО предмет HAVING subject = 'Химия' И предмет = 'История'
СЛУЧАЙ 3: Понякога може да имаме повече от една подзаявки в основната заявка. Нека да видим в следния пример как да минимизираме блока на подзаявка във вашата заявка.
Консултираме се с най -възрастния и най -високоплатения служител.
SELECT име ОТ служители КЪДЕ заплата = (SELECT MAX (заплата) ОТ служители) И възраст = (SELECT MAX (възраст) ОТ служители) И категория = 'Електроника';
По -оптимално е заявката да се напише по следния начин
SELECT име ОТ служители WHERE (заплата, възраст) = (SELECT MAX (заплата), MAX (възраст) ОТ служители) И item = 'Електроника';
СЛУЧАЙ 4: Използването на оператора EXISTS, IN и табличните съединения по подходящ начин във вашата заявка е важно, тъй като те са транзакции, които забавят достъпа до данни.
Като цяло най -бавното представяне в заявка за Canda.
IN е ефективен, когато повечето от критериите за филтриране са в подзаявката.
Exist е ефективен, когато повечето от критериите за филтриране са в основната заявка.
Нека видим някои примери
Изберете * от p на продукта, където product_id IN (изберете product_id от поръчките)
По -оптимално е да го напишете по следния начин
Изберете * от продукта, където СЪЩУВА (изберете * от поръчките, където поръчки.product_id = product.product_id)
Използвайте съществуват вместо РАЗЛИЧЕН
Пример вижте какви категории са налични книги
ИЗБЕРЕТЕ РАЗЛИЧНИ категории.id, категории.категории ОТ категории, книги КЪДЕ категории.id = книги.идкатегория;
По -оптимално е заявката да се напише, както следва
ИЗБЕРЕТЕ РАЗЛИЧНИТЕ категории.id, категории.категории ОТ категории, КЪДЕТО СЪЩЕСТВУВА (ИЗБЕРЕТЕ "X" ОТ КНИГИ КНИГИ books.idcategory = categories.id);
Това са някои съвети, които ще спестят ресурси при изпълнение на sql заявки и по този начин също ще имат приложение с по -бързи отговори.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка