» 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


Země se jenom o vlásek vyhnula věčnému zmrznutí

Země se jenom o vlásek vyhnula věčnému zmrznutí

** Země po většinu doby své existence zmrzlá rozhodně nebyla ** Podle nového výzkumu tomu však unikla jen o vlásek ** Kdyby totiž byla jenom o 15 procent dále od Slunce, tak by prý kompletně celá zamrzla

20.  9.  2017 | Stanislav Mihulka | 9

CCleaner obsahuje softwarovou havěť! Tvůrcům se do kódu dostali hackeři

CCleaner obsahuje softwarovou havěť! Tvůrcům se do kódu dostali hackeři

** Masově oblíbený program pro softwarovou očistu Windows ovládli hackeři ** Narušení se podařilo zavčas odhalit, unikla jen data o počítačích uživatelů ** Je paradoxní, že CCleaner byl slabě zabezpečen, když jej letos koupil Avast

18.  9.  2017 | David Polesný | 45

Noční strana Venuše vydala další tajemství

Noční strana Venuše vydala další tajemství

18.  9.  2017 | Jiří Černý

Hacknutý CCleaner je mnohem zákeřnější, než se zdálo. Update na novou verzi nestačí, proveďte obnovu systému

Hacknutý CCleaner je mnohem zákeřnější, než se zdálo. Update na novou verzi nestačí, proveďte obnovu systému

** Chyba v CCleaneru je závažnější, než se zdálo ** Update na novou verzi nemusí stačit ** Přinášíme detaily

21.  9.  2017 | Stanislav Janů | 55

Jak tankují bombardéry: Z létající benzinky šest kilometrů nad Českem

Jak tankují bombardéry: Z létající benzinky šest kilometrů nad Českem

** Bombardéry tankují z létající benzinky Boeing KC-135 Stratotanker ** Tu americké letectvo pro doplňování paliva jiných letounů ve vzduchu využívá už více jak půlstoletí ** Tankování probíhá přes speciální výsuvné čerpací rameno na zádi

17.  9.  2017 | Natoaktual.cz


Aktuální číslo časopisu Computer

Vyplatí se ještě těžit kryptoměny?

Velký test studentských notebooků

Test pěti levných soundbarů

Nejlepší chytré hodinky