Kontakty

Monitorovanie účinnosti MS SQL Servera. Praktické odporúčania. SQL Profiler rieši problémy

Tento článok obsahuje niekoľko materiálov zverejnených v poštovom zozname "MS SQL Server - Prípad je tenký ... "a venovaný problémom monitorovania účinnosti MS SQL Server, metódy na objasnenie príčin problémov hardvéru a ich povolenie. Okrem toho budete ponúknuté niekoľko užitočných, praktických odporúčaní a varovaní.

Ak je váš databázový server príliš intenzívne používa I / O, môžete zmeniť hodnotu operačného systému I / O Page Limit Limit, ktorý môže zvýšiť efektívne hodnotenie čítania / zápisu operačný systém na pevných diskoch.
Najprv spustite referenčný test I / O pre obvyklé zaťaženie servera. Potom v RegEdit.exe otvorte kľúč:

HKLM \\ SEJKOĽKOSTI SYSTÉMUJÚCEHO KONTROLUJÚCEHO PRIHLÁSENIA SPONSAGEMANAGER \\ t

Význam vašich činov je krok za krokom výber hodnôt tohto kľúča k najoptimálnejšiemu, z hľadiska zmien vo výsledkoch referenčných testov, hodnôt.
V tomto kľúčovom tlačidle číta operačný systém maximálny počet Bajty, ktoré môže použiť pre I / O operácie. V predvolenom nastavení je nakonfigurovaná hodnota 0, ku ktorej 512KB. Zvýšte túto hodnotu nad krokmi, pridávať 512kB zakaždým (napríklad: "512", "1024" atď.) A po každej zmene postupujte podľa referenčného testovania systému. Zvýšte tento parameter, má zmysel, kým nedodržíte zvýšenie šírky pásma I / O, ktorá sa môže prejaviť pri znižovaní časových nákladov na štandard disk Operácie. Keď prestanete pozorovať výrazné zlepšenie, vráťte sa do editora databázy Registry a zničte posledný prírastok.

Pozor: Existuje limit maximálna veľkosť Hodnoty tohto kľúča. Ak máte 16 MB pamäte RAM, nenainštalujte iogagelocklimit cez 2048 bajtov; Pre 32MB RAM neprekračujte 4096 bajtov a tak ďalej.

Dôležitá poznámka:

Uvedené sergey operácie s nie správne alebo chybné použitie môže viesť k zrúteniu vášho systému. Preto sa postarajte o predčasnú dostupnosť záložných kópií databáz a systémov, uložte NT Pracovnú konfiguráciu a upravte možné zmeny na skládke. Nikdy neurobte viac ako jednu zmenu konfigurácie naraz.

V predchádzajúcich otázkach (pozri počítačovú stránku č. 1, 3-5, 7, 9'2006), sme preskúmali otázky týkajúce sa prechodu na SQL Server 2005 migráciou alebo aktualizáciou, ako aj hlavným scenárom používania SQL Server 2005. Tento článok bude hovoriť o rôznych metódach na optimalizáciu dotazu a možných prístupov k riešeniu problémov súvisiacich s problémami produktivity.

SQL Server poskytuje služby, ktoré sa vykonávajú v dynamickom, neustále sa meniacom médiu. Preto pravidelné monitorovanie operácie servera umožňuje identifikovať problémy vo fáze ich výskytu a okamžite prijať opatrenia na ich odstránenie. S akumuláciou štatistík sa objaví pochopenie hlavných trendov serverovej práce. Pravidelný zber údajov - dokonca aj v tých prípadoch, keď server funguje bez akýchkoľvek problémov, vám umožní vytvoriť takzvaný základný výkon výkonu (základná hodnota výkonu servera), ktorá môže slúžiť ako odkaz s ďalšími meraciami servera.

Po obdržaní základnej úrovne výkonu získate schopnosť analyzovať výkonnosť požiadaviek v rôznych scenároch. Odporúča sa vykonať merania, minimálne, pred, počas a po implementácii rôznych optimalizačných postupov, ktoré zabezpečia, že úspech prijatých opatrení. Okrem toho pravidelné štandardné merania výkonu (týždenne, mesačne, štvrťročné, atď.) Poskytnú jasnejší obraz operácie servera.

Základný štandard môže byť použitý na určenie času načasovania servera a čas nečinného času (vrchol a mimo špičkových hodín), doba odozvy dotazov a veliteľských balíkov, čas vykonania postupov tvorby zálohovanie a obnovu dát atď.

Výkonnosť otázok

Výkonnosť dotazov by sa mala zvážiť z dvoch hľadísk - zdroje používané na vykonanie žiadosti (zdroje zahŕňajú predmety, na ktoré sa odvolávame počas vykonávania dotazu, zablokovaných objektov atď.) A čas strávený na vykonanie - Čím menší čas potrebný na vykonanie žiadosti, tým nižšia je pravdepodobnosť, že počas procesu dotazu budeme blokovať iné otázky a transakcie.

SQL Server 2005 obsahuje dva základné nástroje na meranie výkonu dotazu - výkonový monitor a profilovač SQL Server. Okrem toho je možné použiť konštrukcie na získanie informácií o vykonávaní požiadaviek. jazyk T-SQL Z súborovo štatistických skupín - Nastavte štatistiku IO, Nastavte profil štatistiky a nastavenie času štatistiky - a dynamické zobrazenia (dynamické zobrazenia manažmentu). Ďalej uvažujeme o aplikácii Performance Monitor a SQL Server Profiler podrobnejšie.

Používanie monitora výkonu

Nástroj na monitorovanie výkonu sa používa na analýzu výkonu hardvérových a softvérových zdrojov, vrátane pamäte, používania siete, času procesora, ako aj informácií týkajúcich sa sQL Práca Server a ďalšie softvérové \u200b\u200bprodukty - Microsoft Message Queuing (MSMQ), Microsoft. Internetová sieť. a Microsoft Exchange Server. Najmä, výkonový monitor môže byť použitý na monitorovanie zdrojov SQL Server, ako je blokovanie a transakcie.

Ak chcete pridať zápis, musíte vykonať nasledujúce kroky:

  1. V ponuke Začať. Vyberte príkaz Beh. A v dialógovom paneli Beh. Zadať perfmon.. V dôsledku toho sa spustí konzola Microsoft Management Console Console (MMC). grafické znázornenie Niekoľko pulzov výkonnosti.
  2. V okne Systémový monitor Stlačte pravé tlačidlo na grafe a vyberte príkaz Pridajte počítadlá..
  3. V dialógovom paneli Pridajte počítadlá. Vyberte počítač, ktorý máte záujem a objekt na monitorovanie. Objekty súvisiace s SQL Serverom majú vhodnú prefix.
  4. Ak chcete vybrať merače, musíte vybrať možnosť Všetky počítadlá.alebo jeden alebo viac metrov z rozbaľovacieho zoznamu (obr. 1).
  1. Potom vyberte položku Database Instances alebo Umit Všetky inštancie.
  2. Stlačením tlačidiel Pridať a zatvorte dopĺňa pridanie počítadiel.

Po pridaní počítadiel, ktoré máte záujem, môžeme buď zobraziť svoje hodnoty vo forme grafu, alebo ich uložiť v súbore sledovania (obr. 2).

V druhom prípade je potrebné odhaliť prvok Výkonné protokoly a upozornenia a kliknite na príkaz Nové nastavenia protokolu. V dialógovom paneli Nové nastavenia protokolu Musíte zadať názov protokolu a kliknite na tlačidlo OK. Ďalej v dialógovom paneli Proti predstavu. Vyberieme tím Pridajte počítadlá.. Pridanie zápisu záujmu pre nás sa vyskytuje rovnakým spôsobom, ako je opísané vyššie. Poznač si to veľký počet Počítadlá môžu ovplyvniť výkon systému. Keď dokončíte pridávanie počítadiel, kliknite na tlačidlo Zavrieť.

Na karte Všeobecne. V kapitole Vzorové údaje každý Môžete nastaviť frekvenciu odberu vzoriek (odstránenie údajov). Odporúča sa začať s priemernou frekvenciou, napríklad každých 5 minút, a potom, ak je to potrebné, znížte alebo zvýšite. Upozorňujeme, že čím kratší je interval odberu vzoriek, tým viac systémových a diskových zdrojov sú potrebné. Je potrebné pripomenúť, že intervaly sú kratšie ako kvantizácia počítadla, môže tiež viesť k nesprávnemu displeji dát. Na karte Protokolové súbory. Môžete nakonfigurovať vlastnosti protokolu súborov a ďalej Harmonogram. Nastavuje sa plán monitorovania. Stlačením tlačidla OK vedie k vytvoreniu protokolu na začiatku zberu údajov (obr. 3).

Ak chcete manuálne vyplniť protokolovanie, musíte na prvok stlačiť pravé tlačidlo. Protokoly. A vyberte príkaz Zastaviť.

Ak chcete zobraziť údaje zozbierané v súbore dátového protokolu v monitore výkonu, vyberte položku Systémový monitor, v príkazovom paneli Prezrieť záznam. Údajov.a v dialógovom paneli Vlastnosti monitora systému. Na karte Zdroj. Zadajte názov súboru protokolu.

Najčastejšie používané pult monitorovania výkonu, informácie, z ktorých môžu byť použité na určenie problémov spojených s produktivitou sú rozdelené do nasledujúcich kategórií:

  • prístup k dátam je Audit Methods Access Methods platné pre SQL Server samotný, použije sa objekt. SQLSERVER: Metódy prístupu;
  • Štatistika - Na monitorovanie požiadaviek na kompiláciu a prekompilovanie sa aplikuje objekt SQLSERVER: SQL štatistika. Poskytuje informácie o tom, ako rýchlo a efektívne požiadavky SQL Server procesov;
  • transakcie - Ak chcete určiť počet transakcií v priebehu sekundy, používajú sa počítadlá patriace do objektov SQLSERVERČNOSTI: Databázy. a Sqlserver: Transakcie;
  • zámky - Audit SQL Server Zámky inštalované na určitých typoch zdrojov sa aplikuje objekt Sqlserver: Zámky. (Stôl 1).

Tabuľka 1. SQL Server profiler počítadlá

TAME COUNTER

Popis

Počítanie počtu skenovacích rozsahov (rozsah skenovania) pre indexy za sekundu

Počíta počet plných skenovania vykonaných v poslednej sekunde

Indexové vyhľadávanie / sek

Počíta počet vyhľadávaní podľa indexu pre poslednú sekundu

ZAPNUTÉ ZÁKAZNÍKA / SEK

Počíta počet zámkov pre stôl

Vytvorené pracovné miesta / SEC

Počíta počet pracovných stolov vytvorených v poslednej sekunde

Dávkové požiadavky / SEC

Počítanie počtu balení príkazov Transact-SQL za sekundu. Veľký počet balíkov znamená dobrú šírku pásma.

SQL kompilácie / sek

Počíta počet zostavovaní požiadaviek za sekundu. Hodnota tohto meradla by mala byť takmer konštantná, keď používateľ vykoná základné akcie.

SQL Re-Compilations / SEC

Počíta počet odporúčaní požiadaviek za sekundu

SQLSERVER: databázy objekt. Transakcie / SEC počítadlo

Vypočíta počet transakcií beží v databáze pre poslednú sekundu

Sqlserver: Objekt transakcií. Počítadlo najdlhšie transakcie

Vypočíta počet sekúnd od začiatku transakcie, ktorá bola aktívna dlhšia ako ktorákoľvek iná aktuálna transakcia. Ak tento počítač zobrazuje veľmi dlhú transakciu, použite systém SYS.DM_TRAN_ACTACT_TRANSACTIONS () SYSTÉM SYSTÉMU SYSTÉMU NA ZÍSKAJÚCE INFORMÁCIE O TEJTO TRANSKOU

Sqlserver: Objekt transakcií. Počítadlo konfliktov

Počítanie percenta transakcií s použitím obrazovej izolácie (izolácia snímok) na riešenie vznikajúcich konfliktov pri aktualizácii údajov za poslednú sekundu

Priemerná doba čakania (MS)

Vypočíta priemernú čakaciu dobu pre každý zámkový dotaz, ktorý spôsobil čakanie

Žiadosti o zámku / sek

Počíta počet zámkov a transformácií zámkov za sekundu

Doba čakania (MS)

Vypočítava celkové počkanie na zámky za poslednú sekundu

Počítanie počtu zámkových dotazov za sekundu, čo viedlo k čakaniu

Druhým nástrojom, ktorý možno použiť na meranie výkonnosti dotazu, je SQL Server Profiler. Ďalej považujeme základné spôsoby, ako ho používať.

Použitie SQL Server Profiler

Pomôcka SQL Server Profiler slúži na meranie výkonu jednotlivých dotazov a dotazov, ktoré sú zahrnuté v uložených postupoch a zábaľových balíkoch v Transact-SQL. S ním môžete zhromažďovať informácie o produktivite, vrátane času stráveného na vykonanie samostatného príkazu, čas blokovania vykonať príkaz, ako aj plán realizácie (realizačný plán).

Ak chcete vytvoriť nový profil, musíte vykonať niekoľko nasledujúcich krokov:

  1. Spustite SQL Server Profiler ( Microsoft SQL Server 2005 \u003d\u003e Výkonné nástroje \u003d\u003e SQL Server Profiler).
  2. V ponuke Spis Vyberte príkaz Nová stopa..
  3. V dialógovom paneli Pripojenie k serveru vyberať povinný server. A kliknite na tlačidlo Pripojiť..
  4. V dialógovom paneli Stopové vlastnosti. Potrebujete nastaviť názov profilu (Názov sledovania)a v zozname Použite šablónu. Vyberte jednu z dostupných šablón alebo PrázdnyAk sa šablóna nepoužíva.
  5. Ak chcete uložiť výsledky profilovania, vyberte možnosť Uložiť do súboru. Ak chcete zapisovať údaje do súboru a zadajte maximálnu veľkosť súboru (predvolená hodnota - 5 MB), voliteľne môžete povoliť možnosť Povoliť prevrátenie súborov pre automatická tvorba Nový súbor na dosiahnutie špecifikovanej veľkosti profilu. Druhá možnosť - ukladanie údajov v tabuľke databázy (Uložiť do tabuľky) - možnosť Nastavte maximálne riadky. Umožňuje nastaviť maximálny počet záznamov.
  6. Môžete použiť možnosť na úlohu času ukončenia Povoliť čas stopu (Obr. 4).

Ak chcete zadať stĺpce udalostí a údajov pre profil, sú potrebné nasledujúce kroky:

  1. V dialógovom paneli Stopové vlastnosti. Prejdite na kartu Výber udalostí.
  2. Pridajte alebo odstráňte udalosti z profilu pomocou tabuľky tried podujatia.
  3. Ak chcete získať zoznam všetkých dostupných udalostí, zapnite túto možnosť. Zobraziť všetky udalosti. (Obr. 5).

V Tab. 2 Uvádza zoznam najčastejšie používaných udalostí SQL Server Profiler. Podobne ako výkonové počítadlá, SQL Server Profiler udalosti sú rozdelené do radu kategórií, niektoré z nich majú záujem vyriešiť naše úlohy.

Tabuľka 2. SQL Server Profiler Udalosti

Názov udalosti

Popis

Táto udalosť nastane po dokončení hovoru, aby ste zavolali vzdialený postup.

Táto udalosť sa vykonáva po ukončení uloženého procesu.

SP: stmtcompleted

Táto udalosť nastane po ukončení jedného z príkazov Transact-SQL vo vnútri uloženého procesu.

SQL: STMTCOMPLETEDED

Táto udalosť je dokončená po dokončení príkazu Transact-SQL

SQL: Batchcompleted.

Táto udalosť nastane po dokončení realizácie príkazového balíka Transact-SQL

Táto udalosť sa vykonáva, keď transakcia dostane zámok na určitom zdroji

Táto udalosť nastane, keď transakcia uvoľní predtým zablokovaný zdroj

Táto udalosť sa vykonáva, keď je čakacia doba prekročená po prijatí zámku, pretože požadovaný zdroj je už zablokovaný inou transakciou

Ako určiť prítomnosť zámkov

Zakaždým, keď sa transakcia používa v transakcii (tabuľka, strana, index atď.), Blokovanie je nainštalovaný. Ak sa iná transakcia snaží o prístup k tomuto zdroju a typ blokovania je nekompatibilný s už nainštalovaným blokovaním, dochádza k novému blokovaniu.

Ak chcete určiť prítomnosť zámkov, môžete použiť nasledujúce metódy:

  • použite nástroj SQL Server Management Studio Activity Monitor Utility, ktorý zobrazuje informácie o procesoch, zámkoch na úrovni procesu a na úrovni objektu. Ak chcete získať prístup na monitor aktivity v SQL Server Management Studio, musíte vybrať položku Zvládaniea v ňom - Monitor činnosti A dvakrát kliknite na túto položku. Monitor aktivity vám umožňuje zobraziť:

Blokované objekty pre každý proces - určiť dotaz, ktorý viedol k vzniku blokovania, použite identifikátor procesu ID procesu servera (spid) Na stránke Informácie o procese,

Procesy, ktoré nútia iné procesy, ktoré majú byť v stave čakania - na identifikáciu takýchto procesov, použite stĺpec Blokované. Na stránke Informácie o procese (Obr. 6);

  • použite SQL Server profilovač na získanie správy o blokovaných procesoch - tento zoznam zobrazuje informácie o procesoch, ktoré zostali zablokované dlhšie ako zadaný čas. o

SQL Profiler - softvérpoužíva na sledovanie servera SQL Server. "TRACING" - SQL SERVER SERVER 2008 PRACOVNÝ ZBER

Hlavné stretnutie:

SQL Profiler používajú administrátori pre:

· Analýza uplatňovania žiadosti;

· Definície optimalita požadovaných požiadaviek odoslaných na server;

· Zisťovanie príkazov Transact-SQL pri vykonávaní chyby;

· Zber informácií o užívateľskej aktivite pre dlhý časový interval;

· Monitorovať prevádzku servera v reálnom čase.

Nové príležitosti:

a. Služby profilovania;

b. Profil po integračných službách;

c. Schopnosť zaznamenávať čítanie z monitora výkonu pri nahrávaní vykonania príkazu

d. V profile sa pridá mnoho nových udalostí a zdrojov informácií, ktoré možno zvoliť na zápis do súboru sledovania;

f. Schopnosť zoskupiť udalosti v okne profilu.

Práca so SQL Server Profiler

1. Spustite SQL Server Profiler - z menu Štartovacie programy v SQL Server 2008à Výkonnostné nástrojeà SQL Server Profiler.

2. V okne, ktoré sa otvorí v menu Spis vyberať Nová stopa. A pripojte sa k SQL Serveru 2008, ktorého prácu budeme sledovať.

3. Konfigurácia nastavení relácie v okne Stopové vlastnosti.ktorý sa automaticky otvorí začiatkom relácie stopy (pozri obr. 8.1).

Obr. 8.1. Nastavenie nastavení stopy

a. Na karte Všeobecne. Vyberte v zozname Použite šablónu. Najvhodnejší vzor. Výber šablóny sa vykoná pomocou menu. Spis à Šablóny. v SQL Server Profiler. Spočiatku k dispozícii - osem šablón:

1). Štandard (predvolené) - Predvolená šablóna, ktorá vám umožní sledovať všetky uložené procedúry a príkazy Transact-SQL a príkazy;

2). Sp_counts. - Zber informácií o vykonaní uložených postupov a funkcií s triedením podľa mena;

3). Tsql - Zber informácií o všetkých príkazy Transact-SQLSpustenie na spustenie na serveri s identifikátorom užívateľských procesov a čas začiatku;

4). Tsql_duration. - Podobne ako predchádzajúca šablóna, ale namiesto informácií o čase spustenia príkazu TSQL, čas je zaznamenaný, že prevzal jej vykonanie;

5). Tsql_grouped. - Okrem informácií o príkazovom kóde pre Transact-SQL a jeho časový čas sa zaznamenávajú aj informácie o názve aplikácie, Účet Užívateľ v OS a používateľskom účte, ktorý bol použitý na pripojenie;



6). Tsql_replay. - Nahrávanie najpodrobnejších informácií o vykonaných príkazoch Transact-SQL;

7). Tsql_sps. - Okrem zaznamenávania informácií o začiatku postupu ukladania (SP: Spustenie), informácie o vykonaní každého z príkazov uloženého postupu sa zaznamenávajú (SP: STMTSTARTING);

8). Ladenie. - Používa sa na zber informácií Potrebný poradca databázy TUNING.

b. Na karte Všeobecne. Ak potrebujete zadať umiestnenie informácií o sledovaní:

jeden). Informácie o sledovaní môžu byť nakonfigurované na súbor (predvolené 5 MB veľkosť):

· Parameter Povoliť prevrátenie súborov Určuje, či sa pri vypĺňaní jedného súboru automaticky vytvorí nasledujúce. Názov ďalšieho súboru bude rovnaký ako názov predchádzajúceho, ale číslo (1, 2, 3, atď) bude pridané do svojho mena.

· Parameter Serverové procesy sledujú údaje Môžete použiť na zvýšenie spoľahlivosti informácií o záznamoch. Po inštalácii tejto správy o spracovaní informácií bude server zapnutý.

2). Informácie o sledovaní môžu byť uložené sQL tabuľka Server. Stôl s požadovanou sadou stĺpcov sa vytvorí automaticky.

3). Použitie parametra Povoliť čas stopu Ak je stopa automaticky vypnutá, môžete zadať čas.

c. Na karte Výber udalostí Definujte nastavenia zberu informácií. V tabuľke na tejto karte musíte vybrať požadované udalosti (v riadkoch) a informácie (v stĺpcoch), ktoré budú zaznamenané pre nich. Ak chcete zobraziť všetky riadky a stĺpce, musíte nainštalovať príznaky Zobraziť všetky udalosti. a Zobraziť všetky stĺpce.

jeden). Použite tlačidlo Filtre stĺpcov. (Filtre stĺpcov) Prispôsobte filtre potrebné informácie (Sledujte akcie vykonané v konkrétnej databáze alebo konkrétnej aplikácii alebo konkrétneho používateľa) - Páči sa mi to alebo NIE AKO;

2). Pomocou tlačidla Usporiadajte stĺpce. (Usporiadanie stĺpcov) Nakonfigurujte poradie stĺpcov, ktoré sa majú zobraziť alebo písať v profiler so schopnosťou zoskupiť skupinu sekcií.

4. Po nastavení všetkých nastavení stopy kliknite na tlačidlo. Beh. (RUN) (pozri obr. 8.2)

Obr. 8.2. Zobrazenie informácií počas sledovania

V hornej časti okna sa zobrazia udalosti vyskytujúce sa na serveri a na spodnej strane. detailné informácie Pre každú udalosť (napríklad SQL príkazový kód).

Možnosti dostupné v okne Trace:

1. Ak na karte Usporiadajte stĺpce. V vlastnostiach šablón ste vybrali stĺpce pre zoskupenie, môžete zoskupiť tieto záznamové stĺpce v okne prezerania. Na tento účel v ponuke VYHLIADKA. Poskytnuté tímu Zoskupený pohľad.;

2. Ak na zozname Skupina. Bol umiestnený len jeden stĺpec, potom máte možnosť používať režim zobrazenia. Agregovaný pohľad. (Pozri obr. 8.3). Tento režim je aktivovaný pomocou príkazu. Agregovaný pohľad. Z rovnakého menu VYHLIADKA..

Obr. 8.3. Režim zobrazenia Agregovaný pohľad.

3. Môžete otvoriť udalosti v profile, uložené v tabuľkách súborov a sledovania. Je tiež možné opakovať štatutárne operácie pomocou menu. Replay.;

4. Môžete prepojiť informácie o sledovaní pomocou indikátorov merača výkonu systému. Pre to:

· Určite reláciu sledovania, počas ktorej sa musia zaznamenať informácie pre stĺpce. Doba spustenia a Koncový čas.;

· Spustite reláciu sledovania s nahrávaním informácií do súboru alebo tabuľky. Súčasne zbierajte merače v súbore Monitor výkonu;

· Otvorené zozbierané informácie Z súboru sledovania v profile a potom pomocou príkazu Dovoz údajov o výkone. Z menu Spis.

V tejto prednáške budeme naďalej študovať uložené procedúry, ktoré začali v "vytváraní uložených postupov a riadenia týchto postupov." Naučíte sa, ako analyzovať uložené procedúry a iné príkazy T-SQL pomocou aplikácie Microsoft SQL Server Query Analyzer Query Analyzer a profil SQL Server Profiler profil. Z tejto analýzy môžete určiť, aké účinné prevádzkovatelia T-SQL sú. Efektívny server SQL Server používa vhodnú sekvenciu operácií a vhodných indexov, aby sa znížil počet spracovaných riadkov a minimalizoval počet I / O operácií.

Pomocou aplikácie Query Analyzer môžete vidieť plán vykonania vybraný pre operátor T-SQL optimalizátor požiadaviek SQL Server. Optimalizátor dotazu - Toto je vnútorný modul, ktorý hľadá najlepší plán Pravidlá pre každého operátora T-SQL. Optimalizátor dotazu Analyzuje každý T-SQL vyhlásenie, vyzerá cez množstvo možných plánov realizácie a vyhodnocuje "náklady" každého plánu z hľadiska požadovaných zdrojov a času spracovania. Plán je vybraný s najmenšími nákladmi. Náklady na každý plán sa určujú na základe existujúcich štatistík, ktoré sú zhromažďované systémom a môžu byť zastarané. Ako môžete vedieť viac o vašej databáze a vašim údajom ako optimalizátor dotazuMôžete byť schopní vytvoriť plán, ktorý bude lepší ako optimalizátor dotazu. Pomocou informácií, ktoré analyzátor dotazov poskytuje, môžete určiť, či plán na optimalizáciu dotazu bude účinný určitý operátorA ak nie, môžete sa pokúsiť optimalizovať tento operátor, modifikovať ho alebo pomocou príkazu SQL. V tejto prednáške sa dozviete, ako optimalizovať T-SQL príkazy, ktoré budú doplnkom k štúdiu použitia analyzátora dotazov.

Používanie profilu môžete analyzovať operácie vo vašom systéme SQL Server, aby ste určili, ktoré SQL a uložené procedúry používajú zbytočné systémové zdroje. Vlastniť tieto informácie, môžete zaostriť svoje ladiace úsilie predovšetkým na týchto operátorov a uložených postupov. Okrem opisu, ako používať profilovač, táto prednáška tiež ukazuje, ako používať informácie získané pomocou profilu.

Použitie sql dotaz Anysenzer

Nástroj Analyzer Query Analyzer prichádza s Microsoft SQL Server 2000 na oplátku

V našej práci sme často čelia situácii, keď určitá požiadavka pracuje pomaly a v texte žiadosti je nejasná zjavné problémy. Zvyčajne v tomto prípade je potrebné skúmať problém na hlbšej úrovni. Je pravidlo, že je potrebné vidieť text SQL rekordéra a jeho plánu, a to je len pomáha sqlprofiler.

Čo je SQL Profiler a prečo je všeobecne nevyhnutné

SQLProFilerometh Program dodal s MS SQL Server a je určený pre všetky udalosti, ktoré sa vyskytujú v SQL Serveri alebo hovoria iným slovami, aby nahrávali stopu. Prečo SQLProfiler môže byť potrebný programátorom 1C? Aspoň s cieľom získať text dotazu SQL a vidieť jeho plán. Samozrejme, to možno urobiť s pomocou technologického časopisu, ale vyžaduje si nejaké zručnosti a plán v DVG nie je tak krásny a čitateľný. V profiler môžete vidieť nielen text, ale aj grafický plán na vykonanie žiadosti, ktorý je podľa môjho názoru oveľa pohodlnejší. Používanie profilu môžete definovať: požiadavky dlhšie ako určitý čas požiadaviek na konkrétnu tabuľku čakania na zámky časových plesní a veľa ...

Analýza dotazu pomocou SQL Profiler

Najbežnejší profil je používaný špeciálne pre analýzu dotazov. Spravidla nemusíme sledovať všetky požiadavky, často je potrebné vidieť, ako je špecifický dotaz v 1C vysielaný v SQL a pozri plán realizácie. Napríklad môže byť potrebné určiť, prečo sa žiadosť vykoná pomaly, alebo sme napísali veľkú požiadavku a chcete sa uistiť, že text SQL QUERY NEPOUŽÍVAŤ PRIPOJENIA S POTRUBNOTIKOM. Ak chcete chytiť požiadavku na sledovanie, robíme nasledovné:

1. Spustite SQL Profiler Start - Všetky programy - Microsoft SQL Server 2008 R2 - Výkonné prostriedky - SQLPROFILER
2. Vytvorte nový súbor sledovania - vytvorte stopu (CTRL + N)
3. Uveďte server DBMS, v ktorom sa nachádza naša databáza a kliknite na tlačidlo "Connect".

Samozrejme, nič nebráni sledovaniu servera DBMS, ktorý je na inom počítači. 4. V okne "Trace Vlastnosti", ktoré sa zobrazí, prejdite na druhú záložku "Výber udalostí"

5. Teraz musíte špecifikovať udalosti a vlastnosti týchto udalostí, ktoré chceme vidieť v stope. Potrebujeme otázky a požiadavky na požiadanie, preto je potrebné umožniť príslušné udalosti. Ukázať Úplný zoznam Vlastnosti a udalosti zahŕňajú vlajky "Zobraziť všetky stĺpce" a "zobraziť všetky udalosti". Ďalej musíte vybrať iba udalosti zobrazené na obrázku nižšie, všetky ostatné udalosti musia byť zakázané.


Popis udalosti: ShowplanstatisticsProfile- Textový plán pre vykonanie dotazu.
SHOWPLANXMLSTATISTIKTYPROFILE-GRAPHIC PLÁNOVANIE PODMIENKU. \\ T
RPC: Dokončil sa text, ak sa vykoná ako postup (ak je požiadavka 1C vykonaná s parametrami).
SQL: BACKCOMPLETED- Query Text Ak sa vykoná ako pravidelný dotaz (ak je 1C požiadavka spokojná bez parametrov).

6. Teraz potrebujete nakonfigurovať filter pre udalosti. Ak sa to nerobí, potom uvidíme požiadavky na všetky databázy umiestnené na tento server Dbms. Stlačte tlačidlo "Filtre stĺpcov" a zadajte filter podľa názvu databázy

Teraz uvidíme len v sledovaní iba požiadavky na databázu "testBase_8_2" Ak si želáte, môžete dať filter a na iné polia, najzaujímavejšie z nich: Trvanie (trvanie), textata (zvyčajne je to text dotazu) a RowCounts (počet riadkov vrátenej požiadavky).

Napríklad, ak potrebujem chytiť všetky požiadavky na tabuľku "_inforg4312" s trvaním viac ako 3 sekundy v databáze "testBase_8_2", potom robím:
a) Databázový filter, príklad je zobrazený vyššie
b) Trvajúci filter v milisekundách.

C) Filter podľa textu


Tu poukazujeme na masku. Ak potrebujete sledovať žiadosti, ktoré sa odvolávajú na viaceré tabuľky, vytvárame niekoľko položiek v časti "vyzerá". Podmienky všetkých filtrov spolupracujú.

7. Teraz môžete spustiť stopu. Kliknite na tlačidlo "RUN", potom, čo Trace začína pracovať, a môžete vidieť tie udalosti, ktoré ste nastavili a ktoré spadajú pod filtre. Na ovládanie stopy môžete použiť tlačidlá príkazového panela.


Vľavo vpravo vpravo: Eraser - Vymaže okno Trace, štart - Spustí sledovanie, pozastavenie - umiestnite pozastavenie sledovania, zatiaľ čo stlačenie stopy sa obnoví, zastavuje - zastaví sledovanie

8. Samotná trasa sa skladá z dvoch častí. V hornej časti sú udalosti a vlastnosti udalostí. V spodnej časti sa zobrazia rôzne informácie v závislosti od typu udalostí. V našom prípade sa tu zobrazí text dotazu alebo jeho plán.

9. Vykonajte požiadavku na 1C Query Console a zistite, ako to bude mať vplyv na profil.


V stope je zrejmé, že požiadavky boli trochu a len jeden z nich je. Zostávajúce požiadavky sú služby.

10. Podľa vlastností udalostí, môžete pochopiť: koľko sekúnd sa dotaz vykonáva, koľko logických hodnôt (číta), koľko riadkov sa žiadosť vrátila ako výsledok (RowCounts) atď. V mojom prípade bola žiadosť vykonaná 2 milisekúnd, vyrobená 4 logické čítanie a vrátila 1 reťazec.

11. Ak stúpate na jednu udalosť vyššie, budeme môcť zobraziť plán požiadavky v grafickej forme.
Ako možno vidieť z plánu, vyhľadávanie sa vykonáva na indexe za cenu, hoci tento plán nemožno nazývať dokonalý, pretože Index nie je zakrytý, kód poľa a názov sa získava pomocou keylookup, ktorý trvá 50% času.


Používanie kontextového menu je možné uložiť grafický plán samostatný súbor s príponou * .sqlplan a otvorte ho v profiler na inom počítači alebo pokročilejšie sQL programy Plánu SENTRY PLANY PRESPOSTATOČNOSTI.

12. Ak povstanete ešte vyššie, uvidíme rovnaký plán dotazov, ale už v textovom formulári. Je to tento plán, ktorý sa zobrazuje v TJ, PC a ďalších prostriedkoch na kontrolu výkonu 1c. Analyzovať ho, odporúčam používať pokročilé textový editor S podsvietením, napríklad Notepad ++.

13. Používam menu "Súbor-Uložiť ako", môžete celú stopu uložiť do rôznych formátov:
a) vo formáte samotného profilee, t.j. S rozšírením * .trc
b) Vo formáte XML
c) Môžete vytvoriť vzor šablóny od sledovania. Pozrite si nasledujúcu položku.
d) Sledujte stopu ako tabuľku databáz. Pohodlný spôsob, ako musíme nájsť napríklad najviac spomalenie V celej stope alebo vyberte požiadavky na ľubovoľný parameter. Súbor - Uložiť ako - Tracing Table - Vyberte DBMS Server a pripojte sa k nemu. Ďalej musíte vybrať databázu na zadanom serveri a zadajte názov tabuľky, kde sa uloží stopa. Môžete si vybrať už existujúce tabuľkyAlebo napíšte nový názov a potom sa tabuľka automaticky vytvorí vo vybranej databáze.

Treba mať na pamäti, že trvanie je uložené v tabuľke v miliónoch sekúnd sekundy a keď je výsledok odvodený, je žiaduce preložiť hodnotu pre milisekúnd. Rovnakým spôsobom sa do tabuľky pridáva ročníkový stĺpec, ktorý zobrazuje počet tohto reťazca v stope.

14. Ak často potrebujete používať profilovač na analýzu požiadaviek, nastavenie potrebných filtrov a udalostí rýchlo unavené a okrem toho bude trvať veľa času. Prajenie šablónami prichádzajú na záchranu, kde zadáme filtre, ktoré potrebujeme a poradie stĺpca a potom jednoducho vyberte túto šablónu pri vytváraní novej stopy. Ak chcete vytvoriť šablónu, použite ponuku Súbor - Šablóny - Nová šablóna

Na prvej záložke je všetko jednoduché. Zadajte typ servera, názov šablóny av prípade potreby vložte príznak na použitie tejto predvolenej šablóny. Na druhej karte, urobte výber udalostí a nastavte filtre, ako už je uvedené vyššie. Odporúčam tiež nastaviť poradie stĺpcov v sledovaní, šetrí čas pri analýze požiadaviek. Napríklad je pre mňa vhodnejšie použiť nasledujúci príkaz.

Teraz, keď vytvárate novú stopu, môžete jednoducho zadať požadovanú šablónu, potom na druhú kartu budú všetky filtre a udalosti automaticky vyplnené.

Samozrejme, nie všetky spôsoby, ako používať tento nádherný nástroj, sa tu zobrazujú, ak je záujem divákov, potom v budúcnosti bude možné doplniť zbierku článkov na túto tému.



Páči sa vám článok? Zdieľaj to