Ladění SQL nebo optimalizace SQL

Obsah

Některé dotazy spotřebovávají více prostředků než jiné. Například dotazy, které vracejí velké sady výsledků a ty, které obsahují klauzule WHERE, které nejsou jedinečné, jsou vždy náročné na prostředky. Žádný stupeň inteligence databází sql nepracuje dobře při optimalizaci dotazů ani nemůže eliminovat náklady na zdroje těchto konstrukcí ve srovnání s méně složitým dotazem.
Stejných výsledků můžeme dosáhnout psaním různých dotazů SQL. Při zvažování výkonu je ale důležité použít nejlepší dotaz. Ladění SQL je proces, který zajišťuje, že příkazy SQL, které aplikace generuje, budou provedeny v co nejkratším čase. Tyto dotazy SQL lze optimalizovat pro lepší výkon.
Optimalizační techniky nebo ladění SQL
Dále uvidíme několik optimalizačních technik
PŘÍPAD 1: Dotaz SQL se stane rychlejším, pokud použijete názvy polí než * jako dotaz pro všechna pole v tabulce
VYBRAT * Z klientů

Optimálnější je napsat dotaz tímto způsobem
VYBERTE ID, jméno, adresu OD klientů

PŘÍPAD 2: Klauzule HAVING se používá k filtrování řádků poté, co byly vybrány všechny řádky.
 VYBRAT předmět, počet (studentů) počet_studentů OD zapsaných KDE předmět = 'Chemie' A předmět = 'Historie' SKUPINA PODLE předmětu;

Optimálnější je napsat dotaz tímto způsobem
 SELECTmateria, count (students) number_alumnos FROM enrolled GROUP BY subject HAVING subject = 'Chemistry' AND subject = 'History'

PŘÍPAD 3: Někdy můžeme mít v hlavním dotazu více než jeden poddotaz. Podívejme se v následujícím příkladu, jak minimalizovat blok poddotazu ve vašem dotazu.
Konzultujeme nejstaršího a nejlépe placeného zaměstnance.
 VYBRAT jméno OD zaměstnanců KDE plat = (VYBERTE MAX (plat) OD zaměstnanců) A věk = (VYBERTE MAX (věk) OD zaměstnanců) AND category = 'Electronics';

Optimálnější je napsat dotaz následujícím způsobem
 VYBERTE název OD zaměstnanců KDE (plat, věk) = (VYBERTE MAX (plat), MAX (věk) OD zaměstnanců) A položka = 'Elektronika';

PŘÍPAD 4: Správné používání operátorů EXISTS, IN a tabulek ve vašem dotazu je důležité, protože se jedná o transakce, které zpomalují přístup k datům.
Obecně nejpomalejší výkon v dotazu canda.
IN je efektivní, když je většina kritérií filtru v poddotazu.
Existovat je efektivní, když je většina kritérií filtru v hlavním dotazu.
Podívejme se na několik příkladů
 Vyberte * z produktu p, kde product_id IN (vyberte product_id z objednávek)

Optimálnější je napsat to následovně
 Vyberte * z produktu, kde EXISTUJE (vyberte * z objednávek, kde objednávky.product_id = product.product_id)

Použití existovat namísto ODLIŠNÝ
Podívejte se například na kategorie, ve kterých jsou knihy k dispozici
 VYBERTE ROZLIŠENÍ category.id, categories.categories Z kategorií, knihy KDE category.id = books.idcategory;

Optimálnější je napsat dotaz následujícím způsobem
 VYBERTE DISTINKT kategorie.id, category.categories Z kategorií WHERE EXISTS (SELECT 'X' FROM books WHERE books.idcategory = categories.id);

Toto je několik tipů, které ušetří prostředky při spouštění sql dotazů, a tedy i aplikaci s rychlejšími odpověďmi.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave