Contacte

Monitorizarea eficacității serverului MS SQL. Recomandări practice. SQL Profiler rezolvă probleme

Acest articol conține mai multe materiale publicate în lista de corespondență "MS SQL Server - Cazul este subțire ... "și dedicat problemelor de monitorizare a eficacității SM SQL Server, metode de clarificare a cauzelor problemelor hardware și permisiunea acestora. În plus, vi se va oferi mai multe recomandări și avertismente practice utile.

Dacă serverul dvs. de baze de date este utilizat prea intens de I / O, puteți modifica valoarea sistemului de operare Limit de blocare a paginii I / O, care poate crește rata de citire / scriere eficientă sistem de operare pe hard disk-uri.
În primul rând, executați testul de referință I / O pentru sarcina obișnuită a serverului. Apoi, în Regedit.exe, deschideți cheia:

HKLM \\ System \\ CurrentControlset \\ Control \\ SessionManager \\ MemoryManagement \\ Iopagellocklimit

Semnificația acțiunilor dvs. este selecția pas cu pas a valorilor acestei cheii la cele mai optime, din punct de vedere al modificărilor rezultatelor testelor de referință, valori.
În această cheie, sistemul de operare citește numărul maxim Octeți pe care îl pot utiliza pentru operațiile I / O. Implicit, valoarea de la 0 la care este configurată 512KB. Creșteți această valoare peste trepte, adăugând 512kb de fiecare dată (de exemplu: "512", "1024", etc.) și urmați testarea de referință a sistemului dvs. după fiecare schimbare. Creșteți acest parametru Este sens numai până când observați o creștere a lățimii de bandă a operațiunilor I / O, care se pot manifesta în reducerea costurilor de timp pentru standard operațiuni de discuri. Când opriți observarea unei îmbunătățiri semnificative, reveniți la editorul de registri și distrugeți ultima creștere.

Avertizare: Există o limită dimensiune maximă Valorile acestei cheii. Dacă aveți 16 MB de memorie RAM, nu instalați Iogagellocklimit peste 2048 octeți; Pentru memoria RAM de 32MB, nu depășiți 4096 de octeți și așa mai departe.

Notă importantă:

Operațiunile Sergey enumerate, fără utilizare corectă sau eronată, pot duce la prăbușirea sistemului dvs. Prin urmare, aveți grijă de predisponibilitatea copiilor de backup ale bazelor de date și sistemelor, salvați configurația de lucru NT și modificați posibilele modificări ale depozitului de deșeuri. Nu faceți niciodată mai multe modificări de configurare la un moment dat.

În problemele anterioare (a se vedea Computer Process No. 1, 3-5, 7, 9'2006), am revizuit problemele legate de tranziția către SQL Server 2005 prin migrarea sau actualizarea, precum și principalele scenarii de utilizare a SQL Server 2005. Acest articol va vorbi despre diferite metode de optimizare a interogării și posibilelor abordări pentru rezolvarea problemelor legate de problemele de productivitate.

SQL Server oferă servicii care sunt efectuate într-un mediu dinamic, în continuă schimbare. Prin urmare, monitorizarea periodică a operațiunii serverului permite identificarea problemelor în stadiul apariției acestora și să ia în mod prompt măsuri pentru a le elimina. Odată cu acumularea de statistici, apare o înțelegere a principalelor tendințe ale lucrării serverului. Colectarea regulată a datelor - chiar și în acele cazuri atunci când serverul funcționează fără probleme, vă va permite să creați un așa-numit criteriu de performanță de bază (linia de bază a performanței serverului), care poate servi ca o referință cu alte măsurători ale serverului.

După primirea unui standard de performanță de bază, achiziționați capacitatea de a analiza performanța solicitărilor în diferite scenarii. Se recomandă efectuarea măsurătorilor, la un nivel minim, înainte, în timpul și după implementarea diferitelor proceduri de optimizare, care vor asigura succesul acțiunilor întreprinse. În plus, măsurătorile regulate de performanță standard (săptămânal, lunar, trimestrial etc.) vor oferi o imagine mai clară a funcționării serverului.

Standardul de bază poate fi utilizat pentru a determina timpul de timp al serverului și timpul de timp inactiv (orele de vârf și orele de vârf), timpul de răspuns al pachetelor de interogare și comandă, momentul executării procedurilor de creare backups. și recuperarea datelor etc.

Performanța întrebării

Performanța interogării ar trebui luate în considerare din două puncte de vedere - resursele utilizate pentru a efectua o solicitare (resursele includ obiectele la care facem apel în timpul executării interogării, obiectelor blocate etc.) și timpul petrecut pe execuția Cerere, - Cu cât timpul necesar execută cererea, cu atât este mai mică probabilitatea ca în timpul procesului de interogare, vom bloca alte interogări și tranzacții.

SQL Server 2005 include două instrumente de bază pentru măsurarea performanței interogării - monitor de performanță și Profiler SQL Server. În plus, este posibilă utilizarea construcțiilor limba T-SQL Din grupul Set Statistici - setați statisticile IO, setați profilul statisticilor și setați ora statistică - și vizualizări dinamice (vizualizări dinamice de gestionare). Apoi, considerăm aplicarea monitorului de performanță și a profilului SQL Server în detaliu.

Utilizarea monitorului de performanță

Utilitarul de monitorizare a performanței este utilizat pentru a analiza performanța resurselor hardware și software, inclusiv memoria, utilizarea rețelei, timpul procesorului, precum și informațiile referitoare la sQL lucrare Server și alții produse de software - Apelarea mesajelor Microsoft (MSMQ), Microsoft. Cadru net. și Microsoft Exchange Server. În particular, monitorul de performanță poate fi utilizat pentru a monitoriza resursele SQL Server, cum ar fi blocarea și tranzacțiile.

Pentru a adăuga recrupt, sunteți interesat, trebuie să efectuați următorii pași:

  1. În meniu Start. Selectați o comandă ALERGA. și în panoul de dialog ALERGA. introduce perfon.. Ca rezultat, va fi lansată consola de consola Microsoft Management Management (MMC). reprezentare grafică O serie de contoare de performanță.
  2. La fereastră Monitorul sistemului Apăsați butonul din dreapta de pe grafic și selectați comanda Adăugați contoare..
  3. În panoul de dialog Adăugați contoare. Selectați computerul care vă interesează și un obiect de monitorizare. Obiectele legate de SQL Server au prefixul corespunzător.
  4. Pentru a selecta contoare, trebuie să selectați fie opțiunea Toate contoarele.sau una sau mai multe metri de lista derulantă (figura 1).
  1. După aceasta, selectați instanțele bazei de date sau activați opțiunea Toate situațiile.
  2. Apăsând butoanele Adăugare și închidere completează adăugarea de contoare.

După adăugarea contoarelor care vă interesează, putem vizualiza valorile lor sub forma unui grafic, fie să le salvați în fișierul de urmărire (figura 2).

În acest din urmă caz, este necesar să se dezvăluie elementul Bustean de performanță și alerte și faceți clic pe comandă Noi setări de jurnal. În panoul de dialog Noi setări de jurnal Trebuie să specificați numele protocolului și faceți clic pe OK. În continuare în panoul de dialog Contraglimniema. Alegem echipa Adăugați contoare.. Adăugarea de concurenți de interes pentru noi apare în același mod ca cea descrisă mai sus. Rețineți că un numar mare de Contoarele pot afecta performanța sistemului. Când terminați adaugarea contoarelor, faceți clic pe Închide..

Pe tab-ul GENERAL În capitolul. Date de probă din fiecare dată Puteți seta frecvența de eșantionare (îndepărtarea datelor). Se recomandă începerea cu o frecvență medie, de exemplu la fiecare 5 minute și apoi, dacă este necesar, reduceți sau creșteți-o. Rețineți că cel mai scurt interval de eșantionare, sunt necesare resurse mai sistemice și de disc. Trebuie să se reamintească faptul că intervalele sunt mai scurte decât perioada de cuantificare a contorului, poate duce, de asemenea, la afișarea incorectă a datelor. Pe tab-ul Fișiere jurnale. Puteți configura proprietățile protocolului de fișiere și pe Programa Programul de monitorizare este setat. Apăsând butonul OK conduce la crearea unui protocol la începutul colectării datelor (figura 3).

Pentru a finaliza manual logarea, trebuie să apăsați butonul din dreapta de pe element. Counter busteni. Și alegeți o comandă Stop.

Pentru a vizualiza datele colectate în fișierul protocol de date din monitorul de performanță, selectați elementul Monitorul sistemului, în bara de activități - comanda Vizualizare jurnal. Date., și în panoul de dialog Proprietățile monitorului sistemului. Pe tab-ul Sursă. Specificați numele fișierului protocol.

Cele mai frecvent utilizate contoare de monitorizare a performanței, informații din care pot fi utilizate pentru a determina problemele asociate cu productivitatea sunt împărțite în următoarele categorii:

  • accesul la date este de a audita metodele de acces la datele aplicabile serverului SQL în sine, se utilizează un obiect. SQLSERVER: Metode de acces;
  • statistici - Pentru a monitoriza cererile de compilare și recompilare, se aplică un obiect SQLSERVER: STITURI SQL. Oferă informații despre cât de repede și eficient solicitările de procese SQL Server;
  • tranzacții - Pentru a determina numărul de tranzacții într-o secundă, sunt utilizate contoarele aparținând obiectelor SQLSERVER: Baze de date. și SQLSERVER: tranzacții;
  • lacate - Pentru a audita blocurile SQL Server instalate pe anumite tipuri de resurse, se aplică un obiect SQLSERVER: încuietori. (Tabelul 1).

Tabelul 1. Contoare de profiler SQL Server

Tame Counter.

Descriere

Numărarea numărului de intervale de scanare (scanări în rază) pentru indexuri pe secundă

Numără numărul de scanare completă efectuată în ultima secundă

Căutări index / sec

Numără numărul de căutări prin index pentru ultima secundă

Masa de blocare a masei / sec

Numără numărul de încuietori pentru masă

Lucrări de lucru create / sec

Numără numărul de mese de lucru create în ultima secundă

Cereri de lot / sec

Numărarea numărului de pachete de comandă TRANSACT-SQL pe secundă. Un număr mare de pachete înseamnă o lățime de bandă bună.

Compilații SQL / sec

Numără numărul de comprese ale cererilor pe secundă. Valoarea acestui contor ar trebui să fie aproape constantă după ce utilizatorul este executat de acțiunile de bază.

SQL re-compilații / sec

Numără numărul de recomandări ale cererilor pe secundă

SQLSERVER: Obiectul bazelor de date. Tranzacții / Sec Counter

Calculează numărul de tranzacții care rulează în baza de date pentru ultima secundă

SQLSERVER: Obiectul tranzacțiilor. Timpul de funcționare al tranzacțiilor contrare

Calculează numărul de secunde de la începutul tranzacției, care a fost activ mai mult decât orice altă tranzacție curentă. Dacă acest contor arată o tranzacție foarte lungă, utilizați procedura stocată de sistem sys.dm_tran_active_transactions () pentru a obține informații despre această tranzacție

SQLSERVER: Obiectul tranzacțiilor. Actualizați rata de conflict

Numărarea procentului de tranzacții utilizând izolația imaginii (izolarea instantanee) pentru a rezolva conflictele emergente la actualizarea datelor pentru ultima secundă

Timpul mediu de așteptare (MS)

Calculează timpul mediu de așteptare pentru fiecare interogare de blocare care a cauzat așteptarea

Solicitări de blocare / sec

Numără numărul de încuietori și transformări ale încuietorilor pe secundă

Blocați timpul de așteptare (MS)

Calculează așteptarea totală a blocărilor pentru ultima secundă

Numărarea numărului de interogare de blocare pe secundă, ceea ce a dus la așteptare

Al doilea utilitar care poate fi folosit pentru a măsura performanța interogării este Profiler SQL Server. Apoi, luăm în considerare căile de bază de ao folosi.

Utilizarea profilului SQL Server

Utilitarul Profiler SQL Server servește pentru a măsura performanța interogărilor și interogărilor individuale care sunt incluse în procedurile stocate și pachetele de comandă din TRANSACT-SQL. Cu aceasta, puteți colecta informații despre productivitate, inclusiv timpul petrecut pe execuția unei comenzi separate, timpul de blocare pentru a executa comanda, precum și planul de execuție (plan de execuție).

Pentru a crea un profil nou, trebuie să efectuați un număr de pașii următori:

  1. Rulați profilul SQL Server ( Microsoft SQL Server 2005 \u003d\u003e Instrumente de performanță \u003d\u003e SQL Server Profiler).
  2. În meniu Fişier Selectați o comandă Noua trasare..
  3. În panoul de dialog Conectați-vă la server alege serverul necesar Și faceți clic pe buton Conectați..
  4. În panoul de dialog Proprietăți de urmărire. trebuie să setați numele profilului (Numele trasului), și în listă Utilizați șablonul. Selectați unul dintre șabloanele disponibile sau GolDacă șablonul nu este utilizat.
  5. Pentru a salva rezultatele profilului, selectați opțiunea Salvați în fișier. Pentru a scrie date într-un fișier și a specifica dimensiunea maximă a fișierului (valoarea implicită - 5 MB), opțional puteți activa opțiunea Activați răsturnarea fișierelor pentru crearea automată fișier nou pentru a obține dimensiunea profilului specificat. A doua posibilitate - economisirea datelor în tabelul bazei de date (Salvare în tabel) - opțiune Setați rândurile maxime. Vă permite să setați numărul maxim de înregistrări.
  6. Puteți utiliza opțiunea de a încerca timpul de finalizare Activați timpul de oprire a urmăririi (Figura 4).

Pentru a specifica evenimentele și coloanele de date pentru profil, sunt necesare următorii pași:

  1. În panoul de dialog Proprietăți de urmărire. Du-te la fila Selectarea evenimentelor.
  2. Adăugați sau eliminați evenimente din profilul utilizării tabelului Clase de evenimente.
  3. Pentru a obține lista tuturor evenimentelor disponibile, activați opțiunea. Arătați toate evenimentele. (Figura 5).

În fila. 2 enumeră cele mai frecvent utilizate evenimente de profil SQL Server. Ca și contoarele de performanță, evenimentele Profiler SQL Server sunt împărțite într-o serie de categorii, unele dintre ele sunt de interes pentru a ne rezolva sarcinile.

Tabelul 2. Evenimente Profiler SQL Server

Numele evenimentului

Descriere

Acest eveniment are loc la finalizarea apelului pentru a apela o procedură la distanță.

Acest eveniment se efectuează la finalizarea procedurii stocate.

SP: Stmtcompleted.

Acest eveniment are loc la finalizarea uneia dintre comenzile TRANSACT-SQL din cadrul procedurii stocate.

SQL: STMTCompleted

Acest eveniment este finalizat la finalizarea comenzii TRANSACT-SQL

SQL: batchcompleted.

Acest eveniment are loc la finalizarea executării pachetului de comandă TRANSACT-SQL

Acest eveniment este efectuat atunci când tranzacția primește o blocare pe o anumită resursă

Acest eveniment apare atunci când tranzacția eliberează resursa blocată anterior

Acest eveniment se efectuează atunci când timpul de așteptare este depășit la primirea blocării, deoarece resursa necesară este deja blocată de o altă tranzacție

Cum să determinați prezența încuietorilor

De fiecare dată când o tranzacție este utilizată în tranzacție (tabel, pagină, index etc.), blocarea este instalată pentru acesta. Dacă o altă tranzacție încearcă să acceseze această resursă, iar tipul de blocare este incompatibil cu blocarea deja instalată, are loc o nouă blocare.

Pentru a determina prezența încuietorilor, puteți aplica următoarele metode:

  • utilizați utilitarul de monitorizare a activității SQL Server Management Studio, care afișează informații despre procese, se blochează la nivelul procesului și la nivelul obiectului. Pentru a accesa monitorizarea activității în SQL Server Management Studio, trebuie să selectați un element Management, și în ea - Monitorul activității Și faceți dublu clic pe acest articol. Monitorul de activitate vă permite să vizualizați:

Obiecte blocate pentru fiecare proces - Pentru a determina interogarea care a condus la apariția blocării, utilizați identificatorul procesului ID-ul procesului de server (SPID) Pe pagina Informații despre proces,

Procesele care forțează alte procese să fie într-o stare de așteptare - să identifice astfel de procese, să utilizeze coloana Blocat de. Pe pagina Informații despre proces (Figura 6);

  • aplicați Profiler SQL Server pentru a obține un raport privind procesele blocate - Această listă afișează informații despre procesele care au rămas blocate mai mult decât timpul specificat. despre

SQL Profiler - software.Folosit pentru a urmări serverul SQL Server. "Trasing" - SQL Server 2008 Sesiunea de colectare a muncii

Numirea principală:

SQL Profiler este utilizat de administratori pentru:

· Analiza aplicării cererii;

· Definițiile optimității cererilor trimise către server;

· Detectarea comenzilor tranzacționate-SQL, atunci când executați o greșeală;

· Colectarea informațiilor despre activitatea utilizatorului pentru un interval de lungă durată;

· Pentru a monitoriza funcționarea serverului în timp real.

Noi oportunitati:

a. Servicii de analiză a profilului;

b. Profil în următoarele servicii de integrare;

c. Abilitatea de a înregistra citirile de la monitorul performanței la înregistrarea executării comenzii

d. În profiler, se adaugă multe evenimente noi și surse de informații care pot fi selectate pentru a scrie în fișierul de urmărire;

f. Abilitatea de a grupa evenimente în fereastra profiler.

Lucrați cu profilul SQL Server

1. Rulați profilul SQL Server - din meniu Programe de pornire în SQL Server 2008à Performance Toolsà SQL Server Profiler.

2. În fereastra care se deschide în meniu Fişier alege Noua trasare. Și conectați-vă la SQL Server 2008, a cărui lucrare pe care o vom urmări.

3. Configurați setările sesiunii în fereastră Proprietăți de urmărire.care se deschide automat prin începerea sesiunii de urmărire (vezi figura 8.1).

Smochin. 8.1. Setarea setărilor sesiunii de urmărire

a. Pe tab-ul GENERAL Selectați în listă Utilizați șablonul. Modelul cel mai potrivit. Selectarea șablonului este realizată utilizând meniul. Fişier à Șabloane. în Profiler SQL Server. Inițial la dispoziția dvs. - opt șabloane:

1). Standard (implicit) - șablonul implicit care vă permite să urmăriți toate procedurile stocate și comenzile și comenzile tranzacționate-SQL;

2). Sp_counts. - colectarea de informații privind executarea procedurilor stocate și a caracteristicilor cu sortarea după nume;

3). TSQL. - colectarea de informații despre toate comenzi TRANSACTION-SQLalergând pentru a executa pe server, cu identificatorul proceselor de utilizator și de timp de începere;

4). Tsql_duration. - similar cu modelul anterior, dar în loc de informații despre momentul lansării comenzii TSQL, se înregistrează momentul potrivit căruia i-a luat execuția;

5). Tsql_grouped. - În plus față de informațiile despre codul de comandă TRANSACTION-SQL și timpul de începere, informațiile despre numele aplicației sunt, de asemenea, înregistrate, cont utilizator în OS și contul de utilizator care a fost utilizat pentru conectare;



6). Tsql_replay. - înregistrarea celor mai detaliate informații despre comenzile Transact-SQL efectuate;

7). Tsql_sps. - în plus față de înregistrarea informațiilor despre începerea procedurii de magazin (SP: pornire), sunt înregistrate informații privind executarea fiecărei comenzi ale procedurii stocate (SP: Stmtstarting);

8). Tuning. - Folosit pentru a colecta consilier de reglare a bazei de date necesare informațiilor.

b. Pe tab-ul GENERAL Dacă trebuie să specificați locația informațiilor de urmărire:

unu). Informațiile privind urmărirea pot fi configurate în fișier (implicit 5 MB în dimensiune):

· Parametrul Activați răsturnarea fișierelor Stabilește dacă următorul este creat automat la completarea unui singur fișier. Numele următorului fișier va fi același cu numele celui precedent, dar numărul (1, 2, 3 etc.) va fi adăugat la numele său.

· Parametrul Procesele serverului Trace datele Puteți utiliza pentru a crește fiabilitatea înregistrării informațiilor privind urmărirea. După instalarea acestui mesaj de procesare a informațiilor de check-in, serverul va fi angajat.

2). Informațiile privind urmărirea pot fi salvate în tabelul SQL. Server. Tabelul cu setul de coloane dorite va fi creat automat.

3). Folosind parametrul Activați timpul de oprire a urmăririi Puteți specifica momentul în care traseul este oprit automat.

c. Pe tab-ul Selectarea evenimentelor Definiți setările de colectare a informațiilor. În tabelul din această filă, trebuie să selectați evenimentele dorite (în linii) și informațiile (în coloane), care vor fi înregistrate pentru acestea. Pentru a afișa toate rândurile și coloanele, trebuie să instalați steaguri Arătați toate evenimentele. și Afișați toate coloanele.

unu). Utilizați butonul Filtre de coloane. (Filtre coloane) Personalizați filtrele informatie necesara (Acțiuni de urmărire efectuate într-o bază de date specifică sau o aplicație specifică sau un anumit utilizator) - Ca sau NU CA;

2). Folosind butonul Organizați coloane. (Organizarea coloanelor) Configurați ordinea coloanelor de afișare sau scriere într-un profiler cu abilitatea de a grupa grupul de secțiuni de date.

4. După setarea tuturor setărilor de urmărire, faceți clic pe buton. ALERGA. (Run) (vezi figura 8.2)

Smochin. 8.2. Vizualizați informații în timpul sesiunii de urmărire

În partea de sus a ferestrei, evenimentele care apar pe server sunt afișate și în partea de jos - este dată. informatii detaliate Pentru fiecare eveniment (de exemplu, codul de comandă SQL).

Oportunități disponibile în fereastra de urmărire:

1. Dacă în tabară Organizați coloane. În proprietățile șablonului, ați ales coloane pentru grupare, puteți grupa aceste coloane de înregistrare în fereastra de vizualizare. În acest scop în meniu VEDERE. Echipa furnizată Vizualizare grupată.;

2. Dacă pe listă Grup. A fost plasată o singură coloană, apoi aveți posibilitatea de a utiliza modul de afișare. Vedere agregată. (Vezi figura 8.3). Acest mod este activat utilizând comanda. Vedere agregată. Din același meniu VEDERE..

Smochin. 8.3. Modul de afișare Vedere agregată.

3. Puteți deschide evenimente în profil, salvate în fișiere și mese de urmărire. De asemenea, este posibilă repetarea operațiunilor statutare utilizând meniul. Replay.;

4. Puteți să vă conectați informațiile despre monitorizarea indicatorilor de performanță a performanței sistemului. Pentru aceasta:

· Determinarea sesiunii de urmărire, în timpul căreia trebuie înregistrate informații pentru coloane. Timpul de începere și Sfârșitul timpului.;

· Rulați sesiunea de urmărire cu înregistrarea informațiilor într-un fișier sau un tabel. Simultan colectează metri în fișier Monitorul de performanță;

· Deschis informații colectate Din fișierul de urmărire din profil, și apoi utilizați comanda Datele de performanță ale importului. Din meniul Fişier.

În această prelegere, vom continua să studiem procedurile stocate care au început în "Crearea procedurilor stocate și gestionarea acestor proceduri". Veți învăța cum să analizați procedurile stocate și alte instrucțiuni T-SQL utilizând Analyzer Query Analyzer Query Server Microsoft SQL Server și profilul SQL Server Profiler. Din această analiză puteți determina cât de eficienți sunt operatorii T-SQL. O solicitare eficientă de server SQL utilizează o secvență adecvată de operații și indici adecvați pentru a reduce numărul de rânduri prelucrate și minimizarea numărului de operații I / O.

Utilizând Query Analyzer, puteți vedea planul de execuție selectat pentru operatorul T-SQL optimizator de cereri SQL Server. Query Optimizer. - Acesta este un modul intern care caută cel mai bun plan Execuții pentru fiecare operator T-SQL. Query Optimizer. Analizează fiecare instrucțiune T-SQL, analizează printr-o serie de posibile planuri de execuție și evaluează "costul" fiecărui plan din punctul de vedere al resurselor și timpului de procesare necesare. Planul este selectat cu cel mai mic cost. Costul fiecărui plan este determinat pe baza statisticilor existente, care sunt colectate de sistem și pot fi depășite. După cum puteți ști mai multe despre baza dvs. de date și despre datele dvs. decât query Optimizer.Este posibil să puteți crea un plan care să fie mai bun decât optimizatorul de interogare. Utilizând informațiile pe care le oferă analizor de interogare, puteți determina dacă planul de optimizare a interogării va fi eficient un anumit operatorȘi dacă nu, puteți încerca să optimizați acest operator, modificând-l sau utilizând promptul SQL. În această prelegere, veți învăța cum să optimizați declarațiile T-SQL, care vor fi o adăugare la studiul utilizării analizorului de interogare.

Utilizarea profilerului, puteți analiza operațiunile din sistemul dvs. SQL Server pentru a determina ce proceduri SQL și stocate folosesc inutile resurse de sistem.. Posedând aceste informații, vă puteți concentra eforturile de reglare în primul rând pe acești operatori și proceduri stocate. În plus față de descrierea modului de utilizare a profilului, această prelegere arată, de asemenea, modul de utilizare a informațiilor obținute utilizând Profiler.

Utilizarea interogării SQL Anysenzer

Utilitarul de analiză a interogării vine cu Microsoft SQL Server 2000 în schimb

În munca noastră, suntem adesea confruntați cu situația când o anumită cerere funcționează încet, iar în textul cererii este neclar probleme evidente. De obicei, în acest caz este necesar să investigăm problema la un nivel mai profund. De regulă, devine necesar să se vadă textul înregistratorului SQL și planul său, iar acest lucru este doar ajută la SQLProfiler.

Ceea ce este profilul SQL și de ce este, în general, necesar

SQLPROFILROMETH Programul furnizat împreună cu MS SQL Server și este proiectat și vizualizând toate evenimentele care apar în serverul SQL sau vorbind cu alte cuvinte pentru a înregistra următorul. De ce sqlProctor poate fi necesar de un programator 1C? Cel puțin pentru a obține textul interogării SQL și a vedea planul său. Desigur, acest lucru se poate face cu ajutorul unei reviste tehnologice, dar necesită anumite abilități, iar planul din DVG nu este atât de frumos și citat. În profil, puteți vedea nu numai text, ci și planul grafic pentru efectuarea cererii, care, în opinia mea, este mult mai convenabilă. De asemenea, folosind profilul, puteți defini: solicitări mai lungi decât o anumită perioadă de timp la un anumit tabel de așteptare pe încuietori ale timpului de formare a matrițelor și mult ...

Analiza interogării utilizând profilul SQL

Cel mai frecvent profiler este utilizat în mod specific pentru analiza interogării. De regulă, nu avem nevoie să urmăriți toate solicitările, de multe ori este necesar să vedem cum este difuzată o interogare specifică în SQL și vedeți planul de execuție. De exemplu, poate fi necesar să se determine de ce cererea se efectuează încet sau am scris o cerere mare și doriți să vă asigurați că textul de interogare SQL nu conține conexiuni cu subquery. Pentru a prinde o cerere de urmărire, facem următoarele:

1. Rulați SQL Profiler Start - Toate programele - Microsoft SQL Server 2008 R2 - Mijloace de performanță - SQLPROFILER
2. Creați un nou fișier de urmărire - Creare Trace (CTRL + N)
3. Indicați serverul DBMS la care se află baza noastră de date și faceți clic pe "Conectați".

Firește, nimic nu împiedică urmărirea serverului DBMS, care este pe un alt computer. 4. În fereastra "Trace Properties" care apare, mergeți la al doilea marcaj "Selectarea evenimentelor"

5. Acum trebuie să specificați evenimentele și proprietățile acestor evenimente pe care vrem să le vedem în urmă. Avem nevoie de interogări și planuri de solicitare, prin urmare, este necesar să se permită evenimentele relevante. Pentru spectacol lista plina Proprietățile și evenimentele includ steagurile "arată toate coloanele" și "arată toate evenimentele". Apoi, trebuie să selectați numai evenimentele afișate în figura de mai jos, toate celelalte evenimente trebuie dezactivate.


Descriere eveniment: ShowplanStatisticsProfile - Plan text pentru executarea interogării.
Afișați planul de execuție a interogării graficeProfile-grafice.
RPC: Textul completat de interogare dacă este executat ca o procedură (dacă cererea 1C este executată cu parametri).
SQL: Textul de interogare a batchcompletați dacă este executat ca o interogare obișnuită (dacă cererea 1C este îndeplinită fără parametri).

6. Acum trebuie să configurați filtrul pentru evenimente. Dacă acest lucru nu este făcut, atunci vom vedea solicitări pentru toate bazele de date situate pe acest server DBMS. Apăsați butonul "Filtrele coloanelor" și specificați filtrul de numele bazei de date

Acum vom vedea în urmărirea cererilor numai pentru baza de date "TestBase_8_2" Dacă doriți, puteți pune filtrul și pe alte câmpuri, cele mai interesante dintre ele: Durata (durata), textata (de obicei acesta este textul interogării) și rowcounts (numărul de rânduri de solicitare returnate).

De exemplu, dacă trebuie să recuperez toate cererile la masa "_inforg4312" cu o durată mai mare de 3 secunde în baza de date "TestBase_8_2", atunci eu fac:
a) filtrul de bază de date, exemplul este afișat mai sus
b) filtrul de durată în milisecunde.

C) filtrați după solicitare Text


Aici subliniem masca. Dacă trebuie să urmăriți cererile care fac apel la mai multe tabele, creăm mai multe elemente în secțiunea "Arată". Condițiile tuturor filtrelor lucrează împreună.

7. Acum puteți rula urmărirea. Faceți clic pe "Rulați", după ce trasul începe să funcționeze și puteți vedea acele evenimente pe care le-ați configurat și care se încadrează în filtrele dvs. Puteți utiliza butoanele panoului de comandă pentru a controla urmărirea.


La stânga pentru dreapta: Eraser - Șterge fereastra de urmărire, începe - începe urmărirea, pauza - pune o pauză de urmărire, în timp ce apăsarea urmei este reînnoită, opriți - oprește urmărirea

8. Fereastra de urmărire este formată din două părți. În partea de sus există evenimente și proprietăți ale evenimentelor. În partea inferioară, sunt afișate diverse informații în funcție de tipul de evenimente. În cazul nostru, aici va fi afișat fie textul interogării, fie planul său.

9. Efectuați o solicitare către consola de interogare 1c și vedeți cum va afecta profilul.


În urmă, este clar că cererile au fost oarecum și doar unul dintre ei este. Cererile rămase sunt service.

10. Potrivit proprietăților evenimentelor, puteți înțelege: câte secunde este executată interogarea, câte citiri logice (citește), câte rânduri cererea returnată ca rezultat (RowCounts) etc. În cazul meu, cererea a fost efectuată 2 milisecunde, a făcut 4 citiri logice și a returnat 1 șir.

11. Dacă vă ridicați la un eveniment de mai sus, vom putea vedea planul de solicitare în formă grafică.
După cum se poate observa din plan, căutarea se desfășoară pe indicele la preț, deși acest plan nu poate fi numit perfect, pentru că Indicele nu acoperă, codul de câmp și numele sunt obținute utilizând Keylookup, care durează 50% din timp.


Folosind meniul contextual, planul grafic poate fi salvat în fișier separat. cu extensia * .sqlplan și deschideți-l într-un profiler pe un alt computer sau cu un mai avansat programe SQL. Sentry Plan Explorer.

12. Dacă credeți și mai mult, vom vedea același plan de interogare, dar deja în formă de text. Acest plan este afișat în TJ, PC și alte mijloace de control al performanței 1c. Pentru ao analiza, vă recomand să utilizați avansat editor de text Cu iluminare din spate, de exemplu Notepad ++.

13. Folosesc meniul "File-Save As", puteți salva întreaga urmă la diferite formate:
a) în formatul profilului în sine, adică. Cu extensia * .trc
b) în format XML
c) Puteți face un model de șablon de la urmărire. Consultați articolul următor.
d) Puteți salva TRACE ca tabel de bază de date. Mod convenabil dacă trebuie să găsim, de exemplu, majoritatea solicitare lentă În întreaga urmă sau solicitări selectate pentru orice parametru. Fișier - Save As - Table de urmărire - Selectați serverul DBMS și conectați-vă la acesta. Apoi, trebuie să selectați o bază de date pe serverul specificat și să specificați numele tabelului în care urmează să fie salvate următorul. Puteți alege deja tabelul existentSau scrieți un nume nou și apoi tabelul va fi creat automat în baza de date selectată.

Ar trebui să se țină cont de faptul că durata este stocată într-o masă în milioane de secunde de secundă și când rezultatul este derivat, este de dorit să se traducă o valoare la milisecunde. În același mod, coloana Rownumber este adăugată la masă, ceea ce arată numărul acestui șir în urmă.

14. Dacă de multe ori trebuie să utilizați un profiler pentru a analiza cererile, setarea filtrelor și evenimentelor necesare va fi rapid obosită și, pe lângă aceasta, va dura mult timp. Șabloanele trasite vin la salvare, unde specificăm filtrele de care avem nevoie și comanda coloanei și apoi selectați acest șablon atunci când creați o nouă urmă. Pentru a crea un șablon, utilizați meniul Fișier - Șabloane - Șablon nou

Pe primul marcaj, totul este simplu. Specificați tipul de server, numele șablonului și, dacă este necesar, puneți pavilionul să utilizeze acest șablon implicit. În cea de-a doua filă, efectuați alegerea evenimentelor și stabilirea filtrelor, așa cum sa arătat deja mai sus. De asemenea, recomand să setați ordinea coloanelor în urmărire, economisește timp la analizarea cererilor. De exemplu, este mai convenabil pentru mine să folosesc următoarea comandă.

Acum, atunci când creați o nouă urmă, puteți specifica doar șablonul dorit, apoi în cea de-a doua filă toate filtrele și evenimentele vor fi completate automat.

Desigur, nu toate modalitățile de a utiliza acest instrument minunat sunt afișate aici, dacă există un interes de audiență, atunci în viitor va fi posibilă completarea colecției de articole pe această temă.



Ți-a plăcut articolul? Împărtășește-l