Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 2617|Válasz: 2

[Tippek] Az SQL Server kiterjesztett eseményeket használ a holthelyzeti problémák nyomon követésére

[Linket másol]
Közzétéve 2024. 03. 02. 19:13:04 | | | |
Követelmények: Számos oka van annak, hogy az SQL Server adatbázis holtpontot okoz, a gyártás során mindenki szembesülhet holthelyzetgel, és a konkrét ok nem feltétlenül csak az alkalmazási holthelyzetek rendellenes adatai alapján azonosítható, ezért szükséges bővítmény eseményeit használni az SQL Serverben a holthelyzetek nyomon követésére és a holtpont feljegyezésére.

Kibővített esemény áttekintés

Az Extended Events egy könnyű teljesítményfigyelő funkció, amely lehetővé teszi a felhasználók számára, hogy összegyűjtsék a szükséges adatokat a problémák megfigyeléséhez és megoldásához. Ez a funkció lehetővé teszi, hogy az adatmotor belső működésének részleteit megtekintse teljesítményfigyelés és problémamegoldás céljából.

Az Extended Events (XEvents) architektúrával a felhasználók annyi vagy minimális adatot használhatnak, amennyi szükségük van az SQL Server, Azure SQL Database és Azure SQL Managed Instance teljesítményének monitorozásához, azonosításához vagy hibaelhárításához. A kiterjesztett események nagyon konfigurálhatók, könnyűek és jól skálázhatók.

Utalás:
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.


A holtpontok okai

A holtpontokat versengő egyidejű zárolások okozzák egy adatbázisban, általában többlépéses tranzakciókban. Minden felhasználói ülés egy vagy több feladatot futtathat a nevében, ahol minden feladat különböző erőforrásokat behozhat vagy várhat, hogy beszerezze a különböző erőforrásokat. A következő típusú erőforrások blokkolást okozhatnak, és végül holtpontot okozhatnak.

  • Zárak: Az olyan zárak, amelyek erőforrásokat, például objektumokat, oldalakat, sorokat, metaadatokat és alkalmazásokat akarnak betölteni, holtpontot okozhatnak. Például a T1 tranzakciónak van egy közös zára (S zár) az r1-es sorban, és vár, hogy exkluzív zárat (X zárat) kapjon az r2-es sorban. A T2 tranzakció megosztott zárolással (S zárat) rendelkezik az r2-es sorban, és vár, hogy exkluzív zárat (X zárat) kapjon az r1-es sorban. Ez egy zár hurkot eredményez, ahol mind az 1-es, mind a T2 egymásra vár, hogy felszabadítsák a zárt erőforrást.
  • Munkafonalok: A feladatok sorban állnak rendelkezésre álló munkafonalokhoz, holtpontot okozhatnak. Ha egy sorba helyezett feladatnak van egy erőforrása, amely blokkolja az összes munkatársi szálat, az holtpontot eredményez. Például, miután az S1 ülésszak indít egy tranzakciót, és megszerez egy közös zárat (S-lock) az r1-es vonalhoz, az alvás állapotába lép. Egy aktív munkamenet, amely minden elérhető munkaszálon fut, megpróbál exkluzív zárolást (X-lock) szerezni az r1-es sorhoz. Mivel az S1 session nem tud munka szálat kapni, nem tudja felajánlani a tranzakciót és feloldani a zárolást az r1-es vonalon. Ez holtponthoz vezet.
  • Memória: Zsákutat okozhat, amikor egy párhuzamos kérés vár a memória megszerzésére, és a jelenleg elérhető memória nem elég az igényeihez. Például két párhuzamos lekérdezést (Q1 és Q2) felhasználó által definiált függvényként hajtanak végre, amelyek 10 MB és 20 MB memóriát szereznek. Ha minden lekérdezéshez 30 MB szükséges, és a rendelkezésre álló memória összesen 20 MB, az 1. és a 2. kérdésnek várniuk kell egymásra, hogy felszabadítsák a memóriát, ami holtponthoz vezet.
  • Párhuzamos lekérdezés és végrehajtással kapcsolatos erőforrások: A feldolgozó koordinátorok, generátorok vagy fogyasztói szálak, amelyek általában kapcsolt portokhoz kapcsolódnak, blokkolhatják egymást, ha legalább egy folyamatot tartalmaznak, amely nem része párhuzamos lekérdezésnek, ami holtponthoz vezet. Ezen felül, amikor egy párhuzamos lekérdezés megkezdi a végrehajtást, az SQL Server a jelenlegi munkaterhelés alapján határozza meg a párhuzamosság vagy a munkaszálak számát. Zsákutat okozhat, ha váratlan változás történik a rendszer munkaterhelésében, például amikor egy új lekérdezés indul a szerveren, vagy amikor a rendszer elfogynak a munkaszálakból.
  • Többfunkciós Eredményhalmaz (MARS) erőforrások: Ezek az erőforrások a MARS alatt több tevékenységi kérés keresztvégrehajtásának vezérlésére szolgálnak.


Utalás:
A hiperlink bejelentkezés látható.

Holthelyzet kiterjesztett eseménynaplózás

Hozz létre egy kiterjesztési eseményt a holtzár információinak rögzítésére a következő parancskal:


Indítsunk holthelyzeti eseményülést

Állítsd meg az esemény ülését

Törlesztse egy eseményülést

Lekérdezés esemény ülés adatait


Teszthelyzetek

Hozzon létre egy új Tab1 táblázatot teszteléshez, hozzon létre két új végrehajtási ablakot, és hajtsa végre a következő parancsokat:

A holtpont a következőképpen következik be:

Egy tranzakció (68-as folyamat azonosítója) egy másik folyamattal holtpontba kerül egy lezárt erőforráson, és holtpontnak választották. Kérem, hajtsa végre újra a tranzakciót.
A tranzakció (Process ID 68) egy másik folyamattal zárt erőforrásokon holtpontba került, és őt választották holtpontnak áldozatként. Futtasd újra a tranzakciót.


Tekintse meg az esemény szekció adatait az alábbi ábrán látható módon:



A részletes XML adatok a következők:


(Vége)





Előző:.NET/C# teljesítményoptimalizálás PLINQ párhuzamos lekérdezéssel
Következő:A kód végrehajtása Visual Studio-ban a C# Interaktív ablak használatával
 Háziúr| Közzétéve 2024. 03. 02. 19:14:35 |
Hosszabbítsuk ki az eseményfájl alapértelmezett útját:

C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\deadlock_monitor_0_133538477770860000.xel
 Háziúr| Közzétéve 2024. 03. 02. 19:16:54 |
Hozz létre egy új tab1 táblát az SQL szkript teszteléséhez

Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com