» 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


Jak rozšířit signál Wi-Fi: Extender je nejlevnější a snadná cesta

Jak rozšířit signál Wi-Fi: Extender je nejlevnější a snadná cesta

** Wi-Fi extendery dobře poslouží k rozšíření signálu ** Jsou to malé krabičky do zásuvky s triviálním nastavením ** Zvolte raději výkonnější modely, svůj účel splní lépe

Včera | David Polesný | 24

11 tipů, jak efektivně a přesně sledovat počasí pomocí internetu

11 tipů, jak efektivně a přesně sledovat počasí pomocí internetu

** Sledujte počasí z více zdrojů a podrobněji, přesněji tak určíte, jaké počasí vás potká na dovolené ** Na webu najdete hromadu pokročilých předpovědí počasí, ale i specializované meteorologické služby ** Vybrali jsme 14 služeb na počasí, které se vám můžou hodit

23.  6.  2017 | Jakub Čížek | 19

Nejlepší program pro střih videa na doma: 9 video editorů, ze kterých si vyberete

Nejlepší program pro střih videa na doma: 9 video editorů, ze kterých si vyberete

** Pokročilé střihové programy pro neprofesionální využití stojí do 3 000 Kč, jsou ale i zdarma ** Podpora 4K, hromada editačních funkcí a efektové filtry jsou samozřejmostí ** Vybrali jsme 9 nejzajímavějších programů pro nejrozšířenější operační systém Windows

25.  6.  2017 | Stanislav Janů | 34


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