» Poradna » Ostatní

Pomalý SQL dotaz Microsoft SQL server

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 7/7
Jiří  |  15. 5. 2017 11:31  |  Microsoft Windows 7 Firefox 53.0

Dobrý den,potýkám se s pomalým dotazem. Tento dotaz se "zničeho nic" zpomalil a nepodařilo se nám najít důvod, co ho zpomalilo. Tak řešíme jeho zrychlení. Je zvláštní, že když se dotaz pustí bez klausule ORDER BY, tak proběhne rychle (méně než 1s), když se pustí s řazením, tak trvá víc než 40s. Přitom vrací jen pár záznamů, které by tedy měl mít seřazené rychle. Mám tedy dojem, že řadí už vstupní tabulky, které mají několik set tisíc záznamů a já bych ho chtěl nějak přesvědčit, aby řadil až výsledek, tedy jen těch pár záznamů, které by mu měli jít rychle. Dokáže někdo poradit?

Odpovědi na otázku

15. 05. 2017 11:49 | Microsoft Windows 10 Chrome 59.0.3067.6

Na vině je optimalizace, kterou provádi SQL server a vypočtené statistiky pro tabulku. Mohlo se změnit statistické rozložení dat.Je jedno, kolik záznamů ten dotaz vrací, ale důležitý je návrh tabulky - hlavně indexů a zda používáš podmínky v dotazu, které ten index využijí.Mohl bys sem dát dotaz a informaci o indexech v tabulce (oznac, ktery je clusterovany)? Pro MS SQL server je 100 000 záznamů nic. S desítkami milonů záznamů v tabulce se optimalizované dotazy provedou do 1s.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jiří  |  15. 05. 2017 12:44  |  Microsoft Windows 7 Firefox 53.0  |  [82.142.82.---]

Tak problém vyřešen - když jsem začal popisovat strukturu tabulek a indexů pro odpověď sem, tak jsem si všimnul jednoho propojení přes tři sloupce, kterému v jedné tabulce chyběl index, takže když jsem ho přidal, tak se to rázem zrychlilo.Jen mi přijde zajímavé, že když jsem si pro dotaz zobrazil execution plan, tak mě na ten chybějící index neupozornil.

Souhlasím  |  Nesouhlasím  |  Odpovědět
MatePravdu  |  15. 05. 2017 13:10  |  Microsoft Windows XP Chrome 49.0.2623.112  |  [188.175.163.---]

Dezadata issue? Páč tam měli takto optimalizovanou aplikaci pro UPC. 10 minut select. Dnes už vím proč nevolat na support UPC. Lidi po 20 minutách třískli telefonem. Jen tak na okraj. Kolega co dělal pro komerčku admina říkal, že by si tam peníze nikdy neuložil. Asi věděl proč. Měli tam jednu databázi a v ní sloupec s popisem: "Nenabízet žádné produkty, reaguje podrážděně". Si fakt nedělám legraci.

Souhlasím  |  Nesouhlasím  |  Odpovědět
15. 05. 2017 14:43 | Microsoft Windows 10 Chrome 59.0.3067.6

Jakýkoliv dotaz z tabulek, které mají do stovek tisíc záznamů a není hotový do sekundy si říká o analýzu a optimalizaci.Zkus si spustit návrháře indexů (ale nenechávej jej nic automaticky vytvářet). A jeho analýzy získáš navržené indexy na základě použití.Pokud máš propojení přes 3 sloupce a uděláš 3 indexy, tak nic nezískáš. Zrychlilo se ti to, protože použil index na tom třetím sloupci a předtím dělal full scan. Pomohl by ti jeden index přes všechny 3 sloupce.Další věc je omezení pomocí custerovaného indexu. Pokud máš cluster na datum a víš, že záznamy nemohou být staší než měsíc, omez to pro jistotu na 2 měsíce do minulosti.

Souhlasím  |  Nesouhlasím  |  Odpovědět
15. 05. 2017 14:46 | Microsoft Windows 10 Chrome 59.0.3067.6

Ještě, pokud si zobrazuješ execution plan, tak tam vydíš přímo náklady na jednotlivé kroky a víš, co konkrétně zdržuje.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Mirek  |  16. 05. 2017 09:25  |  Microsoft Windows 7 IE 11.0  |  [82.142.82.---]

ten index jsem samozřejmě vyrobil přes všechny tři sloupce, to je jasný a ten execution plán - u něj mě právě zarazilo, že ty náklady byly rovnoměrně rozložený mezi všechny prováděné vazby (těch vazeb je tam celkem 8) a nebyly nijak zvětšené u té vazby, kde mi chyběl index, proto jsem psal, že je zvláštní, že jsem s jeho pomocí ten chybějící index nenašel

Souhlasím  |  Nesouhlasím  |  Odpovědět
16. 05. 2017 10:07 | Microsoft Windows 10 Chrome 59.0.3067.6

Dotaz pres 100 000 zaznamu musi byt hotovy okamzite bez cekani - v pripade, ze je to dotaz, ktery se pouziva casteji. Pokud trva dele, musis dal pokracovat v optimalizaci.

Souhlasím  |  Nesouhlasím  |  Odpovědět



Určitě si přečtěte


To tu ještě nebylo. Specialisté ukázali, že zavirované mohou být i titulky SRT

To tu ještě nebylo. Specialisté ukázali, že zavirované mohou být i titulky SRT

** Stáhnete si film a titulky třeba z OpenSubtitles.org ** A osud vás za ten warez záhy potrestá ** Specialisté totiž ukázali, že i v titulcích může být schovaný virus

24.  5.  2017 | Jakub Čížek | 58

Pojďme programovat elektroniku: Postavíme si bezdotykové ovládání PC za stokorunu

Pojďme programovat elektroniku: Postavíme si bezdotykové ovládání PC za stokorunu

** Vzpomínáte na Leap Motion? ** Dnes si postavíme něco podobného za zlomek ceny ** Pohrajeme si s optickým detektorem gest

28.  5.  2017 | Jakub Čížek | 9


Aktuální číslo časopisu Computer

Bojujeme proti Fake News

Dva velké testy: fotoaparáty a NASy

Co musíte vědět o změně evropského roamingu

Radíme s výběrem základní desky