» 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


Nový solární článek dokáže zachytit téměř veškerou energii světelného spektra ze Slunce

Nový solární článek dokáže zachytit téměř veškerou energii světelného spektra ze Slunce

** Vědci vytvořili nový typ solárního článku, který se pyšní neuvěřitelnou efektivitou ** Speciální trojrozměrná struktura dokáže zachytit téměř všechny vlnové délky světla ze Slunce ** Systém solárního článku využívá koncentrátorových čoček pro světlo

22.  7.  2017 | Karel Javůrek | 15

Další důkaz o existenci Planety 9

Další důkaz o existenci Planety 9

21.  7.  2017 | Jiří Černý | 3

10 robotických startupů, které brzy připraví spoustu lidí o práci

10 robotických startupů, které brzy připraví spoustu lidí o práci

** Roboty se v mnoha oblastech používají už dlouho, ale nyní přichází nová éra ** Roboty jsou chytřejší a poradí si s komplexními úkoly ** Náhrada lidí přijde rychleji a ve velkém

20.  7.  2017 | Karel Javůrek | 28


Aktuální číslo časopisu Computer

Test 11 telefonů do 6 000 Kč

Postavte si a přetaktujte počítač

Srovnali jsme 7 sportovních kamer

Která zaměstnání nahradí roboti?