Know-how, prelegere, îmbunătățirea performanței interogării

În cursul precedent, ați învățat cum să extrageți informații sumare despre datele stocate în baza dvs. de date. SQL Server poate returna rezultatele, inclusiv informațiile sumare, rapid și eficient dacă datele sunt stocate corect în baza de date. Acest capitol explică diferitele modalități de stocare și preluare a datelor în SQL Server. și, de asemenea, spune despre ce factori ar trebui să fie luați în considerare la dezvoltarea bazei de date. pentru a obține performanța cea mai eficientă de la SQL Server.







Planuri pentru interogări

Când serverul SQL execută interogarea. în primul rând trebuie să determinați cel mai bun mod de a face acest lucru. Pentru a face acest lucru, trebuie să calculați cum și în ce ordine să accesați datele și să le conectați, cum și când să efectuați calcule și agregări etc. Subsistemul numit Optimizatorul de interogări este responsabil pentru acest lucru. Optimizatorul de interogări utilizează date statistice despre distribuirea de date, metadate. legate de obiectele din baza de date, informații index și alți factori pentru a calcula mai multe planuri de execuție posibile pentru interogare. Pentru fiecare dintre aceste planuri, optimizatorul de interogări își asumă costul bazat pe statisticile acelor date și selectează planul cu minimum de resurse pentru execuție. Desigur, SQL Server nu calculează toate planurile posibile pentru fiecare interogare, deoarece pentru unele interogări aceste calcule pot lua mai mult timp decât executarea celor mai puțin eficiente dintre toate planurile. Prin urmare, SQL Server utilizează algoritmi sofisticați pentru a găsi un plan de execuție cu un cost rezonabil, apropiat de minimul posibil. După ce planul de execuție este generat, acesta este stocat în memoria cache tampon (pe care SQL Server le alocă cea mai mare parte din memoria sa virtuală). Planul este apoi executat în modul în care instrumentul de optimizare a interogărilor spune motorul bazei de date (componenta motor bază de date).

Dacă Optimizatorul de interogări (Optimizatorul de interogări) poate genera un plan eficient pentru o anumită interogare, depinde de următoarele:







  • Indici. Ca și în cuprinsul cărții, indexul bazei de date vă permite să găsiți rapid anumite rânduri într-un tabel. Pot exista mai mult de un indice în tabel. Datorită prezenței indexurilor în tabel, SQL Server Query Optimizer poate optimiza accesul la date prin selectarea unui index adecvat pentru utilizare. Dacă nu există indici, optimizatorul de interogări are o singură opțiune, care constă în scanarea tuturor datelor disponibile în tabel în căutarea rândurilor necesare. Mai departe, în această lecție veți găsi informații despre cum funcționează indicii și cum să le dezvoltați și să le proiectați.
  • Statistici de distribuire a datelor: SQL Server stochează statistici despre distribuția datelor. Dacă această statistică lipsește sau este depășită, Optimizatorul de interogări nu va putea să calculeze un plan eficient de executare a interogărilor. În majoritatea cazurilor, statisticile sunt generate și actualizate automat. Mai târziu, în această lecție, veți afla cum sunt generate statisticile și cum pot fi gestionate statisticile.

După cum puteți vedea, generarea unui plan de executare a interogării este o funcție. important pentru performanța serverului SQL. Deoarece eficiența planului de executare a interogării determină dacă timpul de execuție va fi măsurat în milisecunde, secunde sau chiar minute. Planurile de executare a interogărilor care au arătat o viteză redusă de execuție pot fi analizate pentru a determina dacă există un index. dacă datele statistice sunt depășite sau doar SQL Server nu a ales cel mai eficient plan (acest lucru nu se întâmplă foarte des).

Ne familiarizăm cu planurile de executare a interogărilor

  • Pentru a afișa planul de execuție pentru această interogare, apăsați comanda rapidă de la tastatură (Ctrl + L) sau selectați comanda Afișare plan execuție estimată din meniul Interogare. Planul de execuție este prezentat în figura următoare.

    Când generați un plan de interogare prospectiv, interogarea nu este executată. Este optimizat numai de optimizatorul de interogări. Această caracteristică a Instrumentului de optimizare a interogărilor este un avantaj când trebuie să rezolvați întrebări care au cicluri lungi de lucru. deoarece pentru a vedea planul de executare a interogării, nu este nevoie să executați interogarea însăși. Reprezentarea grafică a planului de executare a interogării este citită de la dreapta la stânga și de sus în jos. Fiecare pictogramă din plan reprezintă un operator, iar datele schimbate între acești operatori sunt indicate de săgeți. Grosimea săgeților corespunde cu cantitatea de date transmise între operatori. Nu vom detalia detaliile și nu vom explica semnificația fiecărui operator; vom vorbi doar despre cele care sunt prezentate în acest plan de executare a interogărilor.







    Articole similare

    Trimiteți-le prietenilor: