İndi paylaş:
Mündəricat gizlətmək
8. Praktik istifadə halları və nümunələri

1. Giriş

1.1 Nədir SQL Server Genişləndirilmiş Tədbirlər?

SQL Server Genişləndirilmiş Hadisələr inzibatçılara və tərtibatçılara ətraflı server fəaliyyəti məlumatlarını toplamaq və təhlil etmək imkanı verən yüngül performans monitorinq sistemidir. Bu sistemə inteqrasiya olunub SQL Server Database Engine və həm normal əməliyyatlar, həm də problemlərin aradan qaldırılması ssenariləri haqqında hərtərəfli məlumat verir.

1.2 Nəyə görə Monitorinq üçün Genişləndirilmiş Hadisələrdən istifadə edilməlidir?

SQL Server Genişləndirilmiş Hadisələr verilənlər bazası monitorinqi və problemlərin aradan qaldırılması üçün bir neçə cəlbedici üstünlüklər təklif edir:

  • Yüngül arxitektura ilə minimal performans təsiri
  • Məlumatların toplanması və hadisələrin süzülməsinə nəzarət
  • Xüsusi monitorinq ehtiyaclarına uyğunlaşdırıla bilən məlumatların toplanması
  • Birdən çox paketdən hadisələri eyni vaxtda çəkmək imkanı
  • Müvafiq əməliyyatlara diqqət yetirmək üçün çevik filtrləmə imkanları
  • İstifadəçi təcrübəsini alçaltmadan istehsal sisteminin monitorinqinə dəstək
  • Kompleks performans metriklərinin izlənməsi
  • Problemlərin aradan qaldırılması üçün qabaqcıl diaqnostik imkanlar
  • Uyğunluq tələbləri üçün audit cığırının saxlanması
  • Real vaxt və tarixi məlumatların təhlili variantları

1.3 Genişləndirilmiş Tədbirlər vs SQL Server Profil

Isə SQL Server Profil ənənəvi monitorinq aləti olmuşdur, MS SQL Extended Events daha səmərəli alternativ təmin edir. Genişləndirilmiş Hadisələr daha az sistem resursları istehlak edir və istehsal mühitləri üçün daha yaxşı miqyaslanma təklif edir.

SQL Server Profiler artıq köhnəlib və Microsoft bütün monitorinq fəaliyyətləri üçün Genişləndirilmiş Hadisələrə keçməyi tövsiyə edir.

2. Genişləndirilmiş Hadisələr Arxitekturasını Anlamaq

2.1 Genişləndirilmiş Hadisələr Mühərriki Komponentləri

Genişləndirilmiş Hadisələr mühərriki hadisə məlumatlarını tutmaq, emal etmək və saxlamaq üçün birlikdə işləyən bir neçə əsas komponentdən ibarətdir. Bu komponentləri başa düşmək sizə effektiv monitorinq həlləri hazırlamağa kömək edir.

  • Dispetçer: Dispetçer komponenti hadisə mənbələrindən Genişləndirilmiş Hadisələr mühərrikinə hadisə axınını əlaqələndirir. Hadisə baş verdikdə, dispetçer bildirişi alır və onu həmin xüsusi hadisə növünə abunə olan aktiv sessiyalara yönləndirir.
  • Buffer: Buferlər, hədəflərə yazmadan əvvəl hadisə məlumatlarını müvəqqəti olaraq yaddaşda saxlayır. Buferləşdirmə mexanizmi giriş/çıxış əməliyyatlarını azaltmaqla performansı artırır. Bufer ölçüsü və idarəetmə parametrləri yaddaş istifadəsini məlumatların tutulması tələbləri ilə balanslaşdırmaq üçün konfiqurasiya edilə bilər.
  • Session: Sessiya hadisə monitorinqinin əhatə dairəsini müəyyən edir. O, hansı hadisələri qeydə almağı, hansı hərəkətləri yerinə yetirməyi, hansı predikatların tətbiq olunacağını və nəticələrin harada saxlanacağını göstərir. Sessiyalar müstəqil olaraq yaradıla, dəyişdirilə, başlaya və dayandırıla bilər.
  • Hədəf Nümunəsi: Hədəf instansiyaları, qeydə alınan hadisə məlumatları üçün saxlama yerlərini təmsil edir. Hər bir sessiya fayllar, halqa buferləri və ya sayğaclar kimi bir və ya birdən çox hədəfə yaza bilər. Hədəflər hadisə məlumatlarını sonrakı təhlil üçün emal edir və saxlayır.

2.2 Hadisə Paketləri

SQL Server Genişləndirilmiş Hadisələr funksionallığı paketlərə təşkil edir. Hər paket əlaqəli hadisələri, hərəkətləri, növləri, predikatları və hədəfləri ehtiva edir. Ümumi paketlərə sqlserver, sqlos və package0 daxildir.

  • Sqlserver paketi sorğular və əməliyyatlar kimi verilənlər bazası üçün xüsusi hadisələri təmin edir.
  • Sqlos paketi əməliyyat sistemi hadisələrini ehtiva edir.
  • Package0 bütün paketlərdə istifadə olunan ümumi təyinatlı funksionallıq təklif edir.

2.3 Hadisə növləri və sahələri

Hadisələr daxildəki hadisələri təmsil edir SQL Server nəzarət etmək istədiyiniz. Hər bir hadisə növü müvafiq məlumatları tutan əvvəlcədən təyin edilmiş sahələrə malikdir. Məsələn, sql_statement_completed hadisəsinə müddət, CPU vaxtı, oxuma və yazma sahələri daxildir.

Hadisələr sinxron və ya asinxron ola bilər. Sinxron hadisələr əməliyyatın özü zamanı, asinxron hadisələr isə tamamlandıqdan sonra alovlanır. Hadisənin xüsusiyyətlərini anlamaq sizə monitorinq ehtiyaclarınız üçün uyğun hadisələri seçməyə kömək edir.

2.4 Səhm

Əməliyyatlar qeydə alınan hadisələrə əlavə məlumat əlavə edir. Hadisə işə düşəndə, əlaqəli əməliyyatlar SQL mətni, sessiya ID-si və ya çağırış yığını məlumatları kimi əlavə kontekst toplamaq üçün icra olunur.

Ümumi hərəkətlərə sorğu ifadələrini əldə etmək üçün sql_text, verilənlər bazasını müəyyən etmək üçün database_name və başlanğıc serveri izləmək üçün client_hostname daxildir. Hərəkətlər problemlərin aradan qaldırılması və təhlili üçün vacib kontekst təmin edir.

2.5 Hədəflər

Hədəflər hadisə məlumatlarının necə və harada saxlanıldığını müəyyən edir. SQL Server Genişləndirilmiş Tədbirlər aşağıdakılar da daxil olmaqla birdən çox hədəf növünü dəstəkləyir:

  • ətraflı təhlil üçün davamlı yaddaş təmin edən disk yaddaşı üçün event_file
  • ring_buffer yaddaşa əsaslanan saxlama üçün minimal yüklə son hadisələrə sürətli çıxış təklif edir
  • sadə hesablama üçün hadisə_sayağı
  • qruplaşdırmaq üçün histoqram
  • əlaqəli hadisələri əlaqələndirmək üçün cüt_üçünmə

2.6 Predikatlar (Filtrlər)

Müəyyən edilmiş şərtlər əsasında süzgəc hadisələrini predikasiya edir, tutulan məlumatların həcmini azaldır. Siz verilənlər bazası adı, proqram adı, sessiya identifikatoru, müddət hədləri və ya hər hansı hadisə sahəsinin dəyərinə görə süzgəcdən keçirə bilərsiniz.

Effektiv predikat istifadəsi yalnız müvafiq hadisələri qeyd etməklə performans təsirini minimuma endirir. Mürəkkəb predikatlar dəqiq filtrləmə meyarları yaratmaq üçün məntiqi operatorlardan istifadə edərək çoxsaylı şərtləri birləşdirir.

3. Genişləndirilmiş Tədbir Sessiyası Vəziyyətləri və Həyat Dövrü

3.1 Sessiya Vəziyyətləri: YARAT, DƏYİŞTİR və BAŞLA

Genişləndirilmiş Tədbir sessiyaları fərqli dövlətlər vasitəsilə irəliləyir:

  • CREATE EVENT SESSION operatoru yeni bir sessiya təyin edir, lakin onu başlatmır. Sessiya açıq şəkildə aktivləşdirilənə qədər dayandırılmış vəziyyətdə mövcuddur.
  • ALTER EVENT SESSION ifadəsi sessiyanın konfiqurasiyasını dəyişdirir və ya dayandırılmış və başlamış arasındakı vəziyyətini dəyişir.
  • DROP EVENT SESSION bəyanatı sessiya tərifini tamamilə serverdən silir.

3.2 Sessiyanın məzmunu və xüsusiyyətləri

Hər sessiya hadisələr, hərəkətlər, hədəflər və predikatlardan ibarət toplu ehtiva edir. Sessiyaların əhatə dairəsini və davranışını müəyyən edən gizli sərhədləri var. Konfiqurasiya seçimləri yaddaş ayrılmasını, hadisənin saxlanmasını və göndərmə gecikməsini idarə edir.

Sessiya xüsusiyyətlərinə onların server yenidən başlatdıqda davam edib-etməməsi, maksimum yaddaş ayrılması və yaddaş təzyiqini necə idarə etmələri daxildir. Bu parametrlər sessiya davranışına və resurs istehlakına əhəmiyyətli dərəcədə təsir göstərir.

3.3 Sessiya sərhədləri və paketləri

Sessiya sərhədləri hadisələr, hədəflər və paketlər arasındakı əlaqələri müəyyən edir. Bir paketdən gələn hadisələr digər paketdən hərəkətləri tetikleyebilir və məlumat toplama strategiyalarında rahatlıq təmin edir.

Paket əlaqələri bir seansda bir neçə mənbədən olan hadisələri birləşdirməyə imkan verir. Bu imkan müxtəlif əhatəli hərtərəfli monitorinq ssenarilərinə imkan verir SQL Server alt sistemlər.

4. SSMS-dən istifadə edərək Genişləndirilmiş Tədbir Sessiyalarının yaradılması

4.1 İlkin şərtlər və quraşdırma

Yaratmadan əvvəl SQL Server Genişləndirilmiş Tədbirlər sessiyaları, müvafiq icazələrə malik olduğunuzdan əmin olun. Server əhatəli sessiyalar üçün HƏR TƏDBİR SESSİYASINI DƏYİŞTİRİLMƏYƏ və ya verilənlər bazası əhatəli sessiyalar üçün verilənlər bazasında NƏZARƏT icazəsinə ehtiyacınız var.

Bunu təsdiqləyin SQL Server İdarəetmə Studiyası quraşdırılıb və hədəf instansiyanıza qoşulub. Monitorinq tələbləri ilə tanış olun və hansı hadisələrin və hədəflərin ehtiyaclarınıza ən uyğun olduğunu müəyyən edin.

4.2 Obyekt Explorer-də Genişləndirilmiş Hadisələrə giriş

SSMS-də Genişləndirilmiş Hadisələr interfeysinə daxil olmaq üçün bu addımları yerinə yetirin:

  1. açıq SQL Server Management Studio və qoşulun SQL Server Məsələn.
  2. Obyekt Explorer-də genişləndirin idarə -> Genişləndirilmiş Tədbirlər.
  3. Genişləndirilmiş Hadisələr node ehtiva edir SessionsPaketlər monitorinq konfiqurasiyalarınızı idarə etmək üçün qovluqlar.

Genişləndirilmiş Hadisələr interfeysinə daxil olun SQL Server İdarəetmə studiyası.

4.3 Yeni Sessiya yaradın

Yeni sessiya yaratmaq üçün:

    1. Sağ üzərində basın Sessions altındakı qovluq Genişləndirilmiş Tədbirlər.
    2. seçmək Yeni Sessiya konfiqurasiya dialoqunu açmaq üçün. Aşağıdakı məzmun yeni sessiya yaratmaq üçün bu üsuldan istifadə edəcək.

Genişləndirilmiş Tədbirlərin Yeni Sessiyasını yaradın SQL Server İdarəetmə studiyası.

Qeyd: Yeni Sessiya Sihirbazı daha bələdçi təcrübə üçün də mövcuddur.

4.3.1 Ümumi Səhifə Konfiqurasiyası

Haqqında Ümumi səhifə, əsas sessiya xüsusiyyətlərini konfiqurasiya edin:

  1. Seans adını daxil edin Sessiyanın adı sahə. Monitorinqin məqsədini göstərən təsviri adlardan istifadə edin.
  2. İstəyə görə seçin Hadisə sessiyasını server başlanğıcında başlayın seansın avtomatik aktivləşdirilməsini aktivləşdirmək üçün.
  3. Defolt sessiya şablonu belədir Boş. Əvvəlcədən təyin edilmiş konfiqurasiyadan istifadə edirsinizsə, digər şablonlardan istifadə edə bilərsiniz.

Genişləndirilmiş Tədbirlər sessiyasının ümumi səhifəsi SQL Server İdarəetmə studiyası.

4.3.2 Hadisələr Səhifəsinin Quraşdırılması

The Hadisələr səhifə sizə hansı hadisələrin izlənəcəyini seçməyə imkan verir:

  1. Seçin Hadisələr soldan səhifə Bir səhifə seçin panel.
  2. Ci Tədbir kitabxanası, mövcud hadisələrə göz atın və ya axtarış funksiyasından istifadə edin.
  3. Müvafiq hadisələri tapmaq üçün “sql_statement_completed” kimi açar sözləri yazaraq hadisələri süzün.
  4. İstədiyiniz hadisəni seçin, məsələn, sql_statement_completed.
  5. Tədbiri hərəkət etmək üçün sağ ox düyməsini basın Seçilmiş hadisələr siyahı.

Genişləndirilmiş Tədbirlər sessiyasının hadisələr səhifəsi SQL Server İdarəetmə studiyası.

4.3.3 Məlumat Saxlama Konfiqurasiyası

The Data Storage səhifə hadisə məlumatlarının harada saxlandığını müəyyənləşdirir:

  1. Seçin Data Storage soldan səhifə Bir səhifə seçin panel.
  2. Ci Hədəflər sahəsində, açılan menyudan hədəf növü seçin.

Genişləndirilmiş Tədbirlər sessiyasının məlumat saxlama səhifəsi SQL Server İdarəetmə studiyası.

(1) hadisə_faylı Hədəf

event_file hədəfi məlumatları .xel uzantısı ilə disk fayllarına saxlayır:

  1. seçmək hadisə_fayl hədəf növü açılan menyusundan.
  2. Fayl yolunu göstərin, məsələn, C:\temp\YourSession_Target.xel.
  3. Maksimum fayl ölçüsünü və fayl sayını təyin edərək disk yerini idarə etmək üçün rollover seçimlərini konfiqurasiya edin.
  4. Hədəf, sessiya dayanana və ya yaddaş limitlərinə çatana qədər hadisələri davamlı olaraq yazır.

SSMS-də sessiya hədəfini event_file olaraq təyin edin

(2) ring_buffer Hədəf

ring_buffer hədəfi hadisələri disk giriş/çıxışı olmadan sürətli giriş üçün yaddaşda saxlayır:

  1. seçmək ring_bufer hədəf növü kimi.
  2. Bufer üçün maksimum yaddaş ayrılmasını konfiqurasiya edin.
  3. Anlayın ki, bufer dolduqda köhnə hadisələr silinir və bu, son fəaliyyətin monitorinqi üçün uyğundur.

Genişləndirilmiş Hadisələr sessiyası üçün hədəfi ring_buffer olaraq təyin edin SQL Server İdarəetmə studiyası.

(3) hadisə_sayğacı Hədəfi

event_counter hədəfi, ətraflı məlumatları saxlamadan sadəcə hadisə baş verən hadisələri sayır. Bu, yalnız tezlik məlumatlarına ehtiyacınız olduqda minimal xərc təmin edir.

Genişləndirilmiş Hadisələr sessiyası üçün hədəfi event_counter olaraq təyin edin SQL Server İdarəetmə studiyası.

(4) histoqram Hədəf

Histoqram hadisələri müəyyən bir sahə dəyəri ilə qruplaşdırır və paylanma statistikası yaradır. Bu, ümumi nümunələri və ya yüksək tezlikli dəyərləri müəyyən etmək üçün faydalıdır.

Genişləndirilmiş Hadisələr sessiyası üçün hədəfi histoqrama təyin edin SQL Server İdarəetmə studiyası.

(5) cütlük_uyğunluğu Hədəf

Cütlük uyğunlaşdırma hədəfi, kilidin əldə edilməsi və buraxılması kimi əlaqəli hadisələri əlaqələndirir. Bu, qoşalaşmış əməliyyatların və onların zamanlama əlaqələrinin təhlilinə imkan verir.

SSMS-də sessiya hədəfini pair_matching olaraq təyin edin

4.3.4 Ətraflı Ayarlar

The Qabaqcıl səhifə sessiya səviyyəli konfiqurasiya seçimlərini təqdim edir:

  1. Seçin Qabaqcıl soldan səhifə Bir səhifə seçin panel.
  2. Set Hadisə saxlama rejimi hadisələrin yaddaş təzyiqi altında necə idarə olunduğuna nəzarət etmək.
  3. Set Maksimum göndərilmə gecikməsi real vaxt emalını sistem performansı ilə balanslaşdırmaq.
  4. Set Maksimum yaddaş ölçüsüMaksimum tədbir ölçüsü monitorinq tələbləriniz əsasında.
  5. seçmək Yaddaş bölmə rejimi tək və ya çox CPU mühitləri üçün optimallaşdırmaq.

Sessiyanın təkmil səhifəsi SQL Server İdarəetmə studiyası.

4.4 Hadisə Filtrlərinin Konfiqurasiyası (Predikatlar)

Predikatlar hadisələri xüsusi meyarlar əsasında süzərək məlumat həcmini azaldır. Filtrləri konfiqurasiya etmək üçün:

  1. Haqqında Hadisələr səhifədə, “sql_statement_completed” kimi filtrləmək istədiyiniz hadisəni seçin.
  2. Basın Set hadisə konfiqurasiyası dialoqunu açmaq üçün.
    Genişləndirilmiş Tədbirlər sessiyasının hadisəsini konfiqurasiya edin SQL Server İdarəetmə studiyası.
  3. Seçin Filtr (Predikat) nişanı.
  4. Ci Sahə açılan menyuda müddət kimi filtrasiya ediləcək sahəni seçin.
  5. Bir seçin Operator, məsələn, “>”.
  6. Filtri daxil edin Dəyər, məsələn, 1000000 (1 saniyə).
  7. Lazım gələrsə, daha çox şərtlər əlavə edin.

Hadisə üçün filtrləri (predikatları) konfiqurasiya edin.

4.5 Fəaliyyətlərin və Hadisə Sahələrinin Seçilməsi

Hər bir hadisə üçün siz toplanacaq məlumatları seçə bilərsiniz:

  1. Haqqında Hadisələr səhifədə, “sql_statement_completed” kimi məlumatları seçmək istədiyiniz hadisəni seçin.
  2. Basın Set hadisə konfiqurasiyası dialoqunu açmaq üçün.
  3. Seçin Qlobal Sahələr (Fəaliyyətlər) nişanı.
  4. Verilənlər bazası_adı və ya müştəri_tətbiqi_adı kimi əlavə məlumat əlavə etmək üçün əməliyyatlar seçin.
    Tədbirin hərəkətlərini konfiqurasiya edin.
  5. Xəbərdarlıq edin Hadisə Sahələri hansı sahələrin avtomatik tutulduğunu görmək üçün bölmə.
  6. Məlumat həcmini azaltmaq üçün lazımsız sahələri silin.
    Tədbirin sahələrini konfiqurasiya edin.

4.6 Sessiyaların Başlanması və İdarə Edilməsi

Sessiyanızı konfiqurasiya etdikdən sonra onu başlada və işini izləyə bilərsiniz:

  1. Basın OK sessiya yaratmaq üçün.
  2. Obyekt Explorer-də genişləndirin Sessions yeni sessiyanıza baxmaq üçün qovluğu seçin.
  3. Sessiya adını sağ vurun və seçin Sessiyaya başlayın hadisələri çəkməyə başlamaq.
    Genişləndirilmiş Tədbirlər sessiyasına başlayın SQL Server İdarəetmə studiyası.
  4. Canlı dataya baxmaq üçün seansa sağ klikləyin və seçin Canlı Məlumatlara baxın.
    Genişləndirilmiş Tədbirlər sessiyasının canlı datasına baxın SQL Server İdarəetmə studiyası.
  5. Sağ klikləyib seçərək sessiyanı dayandırın Sessiyanı dayandırın.

5. T-SQL-dən istifadə edərək Genişləndirilmiş Tədbir Sessiyalarının yaradılması

5.1 TƏDBİR SESSİYASI YARADIN Sintaksis

T-SQL ilə Genişləndirilmiş Tədbir sessiyalarının yaradılması dəqiq nəzarəti təmin edir və avtomatlaşdırılmış yerləşdirmə üçün skript yaratmağa imkan verir. CREATE EVENT SESSION bəyanatı xüsusi sintaksis strukturunu izləyir.

Əsas sintaksis sessiya adını, hər bir hadisə üçün ADD EVENT bəndlərini, saxlama təyinat yerləri üçün ADD TARGET bəndlərini və sessiya konfiqurasiyası üçün isteğe bağlı WITH bəndlərini əhatə edir.

5.2 Əsas Tədbir Sessiyasının yaradılması

Əsas sessiya müəyyən hadisələri izləyir və nəticələri hədəfə yazır. Əsas komponentlərin necə qurulacağı aşağıda verilmişdir.

5.2.1 Sessiya adının və seçimlərinin müəyyən edilməsi

Təsviri adla sessiya yaratmaqla başlayın:

CREATE EVENT SESSION [SampleSession] ON SERVER

ON SERVER bəndi verilənlər bazası dəyişikliklərində davam edən server əhatəli sessiya yaradır. Azure SQL Database üçün verilənlər bazası əhatəli sessiyalar üçün ON DATABASE istifadə edin.

5.2.2 HADİSƏ ADD ilə hadisələrin əlavə edilməsi

ADD EVENT bəndindən istifadə edərək çəkmək üçün hadisələr əlavə edin:

CREATE EVENT SESSION [SampleSession] ON SERVER
ADD EVENT sqlserver.sql_statement_completed

Bu, bütün tamamlanmış SQL ifadələrini çəkir. Siz əlavə TƏDBİR bəndləri daxil etməklə çoxlu hadisələr əlavə edə bilərsiniz.

5.2.3 Hadisə Hərəkətlərinin Konfiqurasiyası

Fəaliyyətlər hər bir hadisə üçün əlavə kontekst toplayır. Tədbir adından sonra mötərizə içərisində hərəkətlər əlavə edin:

CREATE EVENT SESSION [SampleSession] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(sqlserver.sql_text, sqlserver.database_name, sqlserver.username)
)

Bu nümunə hər tamamlanmış bəyanat üçün SQL mətnini, verilənlər bazası adını və istifadəçi adını çəkir.

5.2.4 Hadisə Predikatlarının Tənzimlənməsi (WHERE bəndi)

Məlumat həcmini azaltmaq üçün filtr hadisələrini təxmin edir. Hadisə tərifində WHERE bəndindən istifadə edin:

CREATE EVENT SESSION [SampleSession] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(sqlserver.sql_text)
    WHERE ([package0].[greater_than_uint64]([duration],(5000000)))
)

Bu, müddəti 5 saniyədən (5,000,000 mikrosaniyə) çox olan ifadələri filtrləyir.

5.3 Tədbir Hədəflərinin Əlavə Edilməsi

Hədəflər hadisə məlumatlarının harada saxlanıldığını və necə işləndiyini müəyyən edir.

5.3.1 HƏDƏF ƏLAVƏ EDİN Sintaksis

Bütün hadisələr təyin edildikdən sonra ADD TARGET bəndindən istifadə edərək hədəflər əlavə edin:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\SampleSession.xel'
)

package0 prefiksi hədəfin əsas paketdən gəldiyini göstərir.

5.3.2 Hədəf Parametrlərinin Konfiqurasiyası

Hər bir hədəf növü müəyyən parametrləri qəbul edir. Hadisə_faylı üçün filename, max_file_size və max_rollover_files parametrlərini konfiqurasiya edin:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\SampleSession.xel',
        max_file_size=(50),
        max_rollover_files=(5)
)

Bu konfiqurasiya hər biri 50 MB-a qədər fayl yaradır və rollover vasitəsilə 5-ə qədər fayl saxlayır.

5.4 Sessiya Seçimləri və Parametrləri

WITH bəndi davranış və resurs istifadəsinə nəzarət edən sessiya səviyyəli seçimləri konfiqurasiya edir.

5.4.1 MAX_MEMORY və EVENT_RETENTION_MODE

Yaddaşın ayrılmasına və təzyiq altında hadisələrin idarə edilməsinə nəzarət edin:

WITH (
    MAX_MEMORY=4096 KB,
    EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS
)

EVENT_RETENTION_MODE seçimlərinə minimal yaddaş istifadəsi üçün ALLOW_SINGLE_EVENT_LOSS, orta xərc üçün ALLOW_MULTIPLE_EVENT_LOSS və potensial performans təsiri bahasına tam məlumatların saxlanması üçün NO_EVENT_LOSS daxildir.

5.4.2 MAX_DISPATCH_LATENCY

Hadisələrin hədəflərə yazılmazdan əvvəl buferlərdə qala biləcəyi maksimum vaxtı təyin edin:

WITH (
    MAX_DISPATCH_LATENCY=30 SECONDS
)

Daha aşağı dəyərlər, artan giriş/çıxış əməliyyatları bahasına daha çox real vaxt məlumatı təmin edir.

5.4.3 MEMORY_PARTITION_MODE

Aparat konfiqurasiyanız üçün yaddaş bölməsini optimallaşdırın:

WITH (
    MEMORY_PARTITION_MODE=PER_CPU
)

Seçimlərə tək bölmə üçün NONE, NUMA sistemləri üçün PER_NODE və çox CPU sistemlərində maksimum paralellik üçün PER_CPU daxildir.

5.5 Sessiyaların Başlanması, Dayandırılması və Dəyişdirilməsi

ALTER EVENT SESSION ifadələri vasitəsilə sessiya vəziyyətini və konfiqurasiyanı idarə edin.

5.5.1 Başlat/Stop üçün DƏYİŞDİRİCİ HADİSƏ SESSİYASI

Yaratdıqdan sonra bir sessiyaya başlayın:

ALTER EVENT SESSION [SampleSession] ON SERVER STATE = START;

Çalışan sessiyanı dayandırın:

ALTER EVENT SESSION [SampleSession] ON SERVER STATE = STOP;

5.5.2 Mövcud sessiyaların dəyişdirilməsi

Dayanarkən sessiya konfiqurasiyasını dəyişdirin. Tədbirlər əlavə edin:

ALTER EVENT SESSION [SampleSession] ON SERVER
ADD EVENT sqlserver.sql_batch_completed;

Hadisələri silin:

ALTER EVENT SESSION [SampleSession] ON SERVER
DROP EVENT sqlserver.sql_statement_completed;

5.5.3 Tədbir sessiyalarının dayandırılması

DROP EVENT SESSION ilə sessiyanı tamamilə silin:

DROP EVENT SESSION [SampleSession] ON SERVER;

Düşmədən əvvəl sessiya dayandırılmalıdır.

6. Tədbir Hədəfləri ilə Ətraflı İşləmək

6.1 hadisə_faylı Hədəf Konfiqurasiyası

event_file hədəfi, çevik konfiqurasiya seçimləri ilə hadisə məlumatları üçün daimi yaddaş təmin edir.

6.1.1 Fayl yolu və adlandırma konvensiyaları

Hadisə faylları üçün tam yolu və fayl adını göstərin:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\MySession.xel'
)

Genişləndirilmiş Hadisə jurnalı faylları üçün .xel uzantısından istifadə edin. təmin etmək SQL Server xidmət hesabının göstərilən kataloqa yazma icazəsi var.

6.1.2 Faylın dəyişdirilməsi və ölçüsünün idarə edilməsi

Disk yerini idarə etmək üçün avtomatik fayl dəyişdirilməsini konfiqurasiya edin:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\MySession.xel',
        max_file_size=(50),
        max_rollover_files=(10)
)

Fayl 50 MB-a çatdıqda, SQL Server Genişləndirilmiş Hadisələr artan şəkilçi ilə yeni fayl yaradır. 10 fayla çatdıqdan sonra ən köhnə faylın üzərinə yazılır.

6.1.3 Hadisə faylı məlumatlarının oxunması

sys.fn_xe_file_target_read_file funksiyasından istifadə edərək hadisə faylı məlumatlarını sorğulayın:

SELECT
    event_data,
    file_name,
    file_offset
FROM sys.fn_xe_file_target_read_file(
    'C:\XEvents\MySession*.xel',
    NULL, NULL, NULL
);

Wildcard nümunəsi sessiya ilə əlaqəli bütün faylları oxuyur.

6.2 ring_buffer Hədəf İstifadəsi

ring_buffer hədəfi, son fəaliyyətə tez daxil olmaq üçün hadisələri yaddaşda saxlayır.

6.2.1 Yaddaşa əsaslanan hadisələrin saxlanması

Yaddaş əsaslı saxlama üçün ring_buffer konfiqurasiya edin:

ADD TARGET package0.ring_buffer

Tədbirlər yalnız sessiya aktiv olduqda əlçatan qalır və SQL Server işləyir. Sessiya dayandıqda və ya server yenidən başladıqda məlumatlar itir.

6.2.2 Bufer ölçüsü və konfiqurasiyası

Halqa buferi üçün yaddaşın ayrılmasına nəzarət edin:

ADD TARGET package0.ring_buffer(
    SET max_memory=(4096)
)

Yaddaşı KB ilə təyin edin. Bufer dolduqda, FIFO yanaşmasından istifadə edərək köhnə hadisələr silinir.

6.2.3 Ring bufer verilənlərinin sorğulanması

DMV-lər vasitəsilə ring bufer məlumatlarına daxil olun:

SELECT
    CAST(target_data AS XML) AS TargetData
FROM sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
    ON s.address = t.event_session_address
WHERE s.name = 'YourSessionName'
    AND t.target_name = 'ring_buffer';

target_data XML formatlı hadisə məlumatlarını ehtiva edir.

6.3 hadisə_sayğacı Hədəf

event_counter hədəfi ətraflı məlumat saxlamadan sadə sayma təmin edir:

ADD TARGET package0.event_counter

Bu hədəf, yalnız sayların vacib olduğu yüksək həcmli monitorinq üçün faydalı olan minimal xərclə hadisə tezliyini izləyir.

6.4 histoqram Hədəf

Histoqram hədəf hadisələri sahə dəyərlərinə görə qruplaşdırır:

ADD TARGET package0.histogram(
    SET filtering_event_name=N'sqlserver.sql_statement_completed',
        source_type=0,
        source=N'database_name'
)

Bu konfiqurasiya verilənlər bazası arasında hadisələrin paylanmasını göstərən histoqram yaradır.

6.5 cütlük uyğunluğu Hədəf

pair_matching hədəfi, kilid əldə etmələri və buraxılışlar kimi əlaqəli hadisələri əlaqələndirir:

ADD TARGET package0.pair_matching(
    SET begin_event=N'sqlserver.lock_acquired',
        end_event=N'sqlserver.lock_released',
        begin_matching_columns=N'resource_type',
        end_matching_columns=N'resource_type'
)

Bu, qoşalaşmış əməliyyatların və onların müddətlərinin təhlilinə imkan verir.

7. Genişləndirilmiş Hadisələr Məlumatlarına Baxış və Təhlil

7.1 Canlı məlumatlara baxmaq üçün SSMS-dən istifadə

SQL Server Management Studio real vaxt rejimində Genişləndirilmiş Hadisələr məlumatlarına baxmaq üçün qrafik interfeys təqdim edir:

  1. Obyekt Explorer-də genişləndirin idarə -> Genişləndirilmiş Tədbirlər -> Sessions.
  2. Aktiv seansınızı sağ klikləyin.
  3. seçmək Canlı Məlumatlara baxın canlı məlumat görüntüləyicisini açmaq üçün.
    Genişləndirilmiş Tədbirlər sessiyasının canlı datasına baxın SQL Server İdarəetmə studiyası.
  4. Hadisələr baş verdikləri kimi şəbəkədə görünür.
  5. Təfərrüatlar panelində ətraflı sahə dəyərlərinə baxmaq üçün fərdi hadisələrə klikləyin.
    Tədbirin təfərrüatları daxil olmaqla, hadisələrin canlı məlumatlarına baxın.
  6. Xüsusi hadisə növlərinə və ya sahə dəyərlərinə diqqət yetirmək üçün alətlər paneli filtrlərindən istifadə edin.

7.2 Hadisə faylı məlumatlarının T-SQL ilə sorğulanması

T-SQL sorğuları ələ keçirilən hadisə məlumatlarının çevik təhlilini təmin edir.

7.2.1 sys.fn_xe_file_target_read_file funksiyası

Bu sistem funksiyasından istifadə edərək hadisə faylı məlumatlarını oxuyun:

SELECT
    object_name AS EventName,
    CAST(event_data AS XML) AS EventData,
    file_name,
    file_offset,
    timestamp_utc
FROM sys.fn_xe_file_target_read_file(
    'C:\XEvents\MySession*.xel',
    NULL, NULL, NULL
);

Funksiya XML formatlı təfərrüatlarla hər hadisə üçün bir sıra qaytarır.

7.2.2 XML hadisə məlumatlarının təhlili

XML hadisə məlumatından xüsusi dəyərlər çıxarın:

SELECT
    event_data.value('(event/@name)[1]', 'VARCHAR(50)') AS EventName,
    event_data.value('(event/@timestamp)[1]', 'DATETIME2') AS Timestamp,
    event_data.value('(event/data[@name="duration"]/value)[1]', 'BIGINT') AS Duration,
    event_data.value('(event/data[@name="statement"]/value)[1]', 'VARCHAR(MAX)') AS Statement
FROM (
    SELECT CAST(event_data AS XML) AS event_data
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\MySession*.xel',
        NULL, NULL, NULL
    )
) AS EventData;

XQuery ifadələri XML strukturundan fərdi sahə dəyərlərini çıxarır.

7.2.3 Hadisə məlumatlarının cədvəllərə çevrilməsi

Tədbir məlumatlarından strukturlaşdırılmış nəticə dəstləri yaradın:

WITH EventData AS (
    SELECT CAST(event_data AS XML) AS EventXML
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\MySession*.xel',
        NULL, NULL, NULL
    )
)
SELECT
    EventXML.value('(event/@name)[1]', 'VARCHAR(100)') AS EventName,
    EventXML.value('(event/data[@name="cpu_time"]/value)[1]', 'BIGINT') AS CPUTime,
    EventXML.value('(event/data[@name="physical_reads"]/value)[1]', 'BIGINT') AS PhysicalReads,
    EventXML.value('(event/action[@name="sql_text"]/value)[1]', 'VARCHAR(MAX)') AS SQLText,
    EventXML.value('(event/action[@name="database_name"]/value)[1]', 'VARCHAR(128)') AS DatabaseName
FROM EventData;

7.3 Ring bufer verilənlərinin sorğulanması

ring_buffer hədəflərindən məlumatları çıxarın:

SELECT
    n.value('(@name)[1]', 'VARCHAR(50)') AS EventName,
    n.value('(@timestamp)[1]', 'DATETIME2') AS Timestamp,
    n.value('(data[@name="duration"]/value)[1]', 'BIGINT') AS Duration,
    n.value('(action[@name="sql_text"]/value)[1]', 'VARCHAR(MAX)') AS SQLText
FROM (
    SELECT CAST(target_data AS XML) AS TargetData
    FROM sys.dm_xe_session_targets AS t
    JOIN sys.dm_xe_sessions AS s
        ON s.address = t.event_session_address
    WHERE s.name = 'YourSessionName'
        AND t.target_name = 'ring_buffer'
) AS Data
CROSS APPLY TargetData.nodes('//event') AS q(n);

7.4 Genişləndirilmiş Hadisələr üçün Sistem Baxışları

SQL Server Genişləndirilmiş Tədbir sessiyalarını idarə etmək və izləmək üçün bir neçə DMV və kataloq görünüşləri təqdim edir.

7.4.1 sys.server_event_sessions

Serverdə saxlanılan sessiya təriflərinə baxın:

SELECT
    name,
    event_retention_mode_desc,
    max_dispatch_latency,
    max_memory,
    max_event_size,
    memory_partition_mode_desc
FROM sys.server_event_sessions;

Bu kataloq görünüşü bütün müəyyən edilmiş sessiyalar üçün konfiqurasiya təfərrüatlarını göstərir.

7.4.2 sys.dm_xe_sessions

Hazırda aktiv seanslara baxın:

SELECT
    name,
    create_time,
    total_regular_buffers,
    regular_buffer_size,
    total_large_buffers,
    large_buffer_size
FROM sys.dm_xe_sessions;

Bu DMV aktiv Genişləndirilmiş Tədbir sessiyaları haqqında iş vaxtı məlumatını təmin edir.

7.4.3 sys.dm_xe_session_targets

Aktiv sessiyalarla əlaqəli hədəflərə baxın:

SELECT
    s.name AS SessionName,
    t.target_name,
    t.execution_count,
    t.execution_duration_ms
FROM sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
    ON s.address = t.event_session_address;

7.4.4 Digər Faydalı DMV-lər

Əlavə baxışlar hərtərəfli sessiya məlumatını təmin edir:

  • sys.dm_xe_session_events: Aktiv seanslardakı hadisələri siyahıya alır
  • sys.dm_xe_session_event_actions: Sessiya hadisələri üçün konfiqurasiya edilmiş hərəkətləri göstərir
  • sys.dm_xe_objects: Bütün mövcud hadisələri, hərəkətləri və hədəfləri kataloqlaşdırır
  • sys.dm_xe_object_columns: Hər bir hadisə növü üçün mövcud olan təfərrüatlar sahələri
  • sys.dm_xe_packages: Bütün Genişləndirilmiş Tədbir paketlərini sadalayır

8. Praktik istifadə halları və nümunələri

8.1 SQL bəyanatının icrasına nəzarət

SQL ifadəsinin icrasını izləmək sorğu nümunələri və performans xüsusiyyətləri haqqında məlumat verir.

8.1.1 sql_statement_completed Hadisələrinin izlənməsi

Tamamlanmış SQL ifadələrini izləmək üçün sessiya yaradın:

CREATE EVENT SESSION [QueryMonitoring] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(
        sqlserver.sql_text,
        sqlserver.database_name,
        sqlserver.client_hostname,
        sqlserver.username
    )
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\QueryMonitoring.xel',
        max_file_size=(100),
        max_rollover_files=(5)
)
WITH (
    MAX_MEMORY=4096 KB,
    EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY=30 SECONDS,
    STARTUP_STATE=OFF
);

ALTER EVENT SESSION [QueryMonitoring] ON SERVER STATE = START;

8.1.2 Verilənlər bazası və ya Tətbiq üzrə filtrasiya

Predikatlardan istifadə edərək xüsusi verilənlər bazası və ya proqramlara diqqət yetirin:

CREATE EVENT SESSION [AppSpecificMonitoring] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(sqlserver.sql_text, sqlserver.client_app_name)
    WHERE (
        [sqlserver].[database_name] = N'YourDatabase'
        AND [sqlserver].[client_app_name] LIKE N'YourApplication%'
    )
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\AppMonitoring.xel'
);

8.2 Çıxılmaz məlumatların tutulması

Deadlock təhlili ziddiyyətli əməliyyatlar haqqında ətraflı məlumat əldə etməyi tələb edir.

8.2.1 xml_deadlock_report Hadisəsi

Tam çıxılmaz qrafikləri çəkmək üçün sessiya yaradın:

CREATE EVENT SESSION [DeadlockMonitoring] ON SERVER
ADD EVENT sqlserver.xml_deadlock_report(
    ACTION(
        sqlserver.database_name,
        sqlserver.sql_text
    )
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\Deadlocks.xel'
)
WITH (STARTUP_STATE=ON);

ALTER EVENT SESSION [DeadlockMonitoring] ON SERVER STATE = START;

8.2.2 Deadlock Qrafiklərinin Təhlili

Ölən məlumatı çıxarın və təhlil edin:

SELECT
    EventXML.value('(event/@timestamp)[1]', 'DATETIME2') AS DeadlockTime,
    EventXML.query('.') AS DeadlockGraph
FROM (
    SELECT CAST(event_data AS XML) AS EventXML
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\Deadlocks*.xel',
        NULL, NULL, NULL
    )
) AS EventData
WHERE EventXML.value('(event/@name)[1]', 'VARCHAR(50)') = 'xml_deadlock_report';

Kilid qrafikində proseslər, resurslar və qurban seçimi haqqında təfərrüatlar var.

8.3 Sorğu Performansı Problemlərinin İzlənməsi

Müddət və resurs istehlakı metriklərindən istifadə edərək zəif icra edilən sorğuları müəyyən edin.

8.3.1 Uzun müddət davam edən sorğunun aşkarlanması

Müəyyən müddət hədlərini aşan sorğuları ələ keçirin:

CREATE EVENT SESSION [LongRunningQueries] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(
        sqlserver.sql_text,
        sqlserver.database_name,
        sqlserver.plan_handle
    )
    WHERE ([duration] > 5000000)  -- 5 seconds in microseconds
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\LongQueries.xel'
);

8.3.2 İcra planının təhlili

Performans təhlili üçün sorğu planlarını çəkin:

CREATE EVENT SESSION [QueryPlans] ON SERVER
ADD EVENT sqlserver.query_post_execution_showplan(
    ACTION(
        sqlserver.sql_text,
        sqlserver.database_name
    )
    WHERE ([duration] > 10000000)  -- 10 seconds
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\QueryPlans.xel',
    max_file_size=(200)
);

8.4 Giriş və Təhlükəsizlik Hadisələrinin Monitorinqi

Təhlükəsizlik auditi üçün autentifikasiya və icazə fəaliyyətlərini izləyin.

8.4.1 Giriş Uğur və Uğursuzluğun İzlənməsi

Həm uğurlu, həm də uğursuz giriş cəhdlərini izləyin:

CREATE EVENT SESSION [LoginMonitoring] ON SERVER
ADD EVENT sqlserver.login(
    ACTION(
        sqlserver.client_hostname,
        sqlserver.client_app_name
    )
),
ADD EVENT sqlserver.login_failed(
    ACTION(
        sqlserver.client_hostname
    )
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\Logins.xel'
)
WITH (STARTUP_STATE=ON);

8.4.2 İcazə Dəyişiklikləri

Təhlükəsizlik icazəsi dəyişikliklərini izləyin:

CREATE EVENT SESSION [SecurityChanges] ON SERVER
ADD EVENT sqlserver.server_principal_management_event,
ADD EVENT sqlserver.database_principal_management_event,
ADD EVENT sqlserver.database_permission_change_event
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\SecurityAudit.xel'
);

8.5 Verilənlər Bazası Səviyyəsində Monitorinq

Verilənlər bazası üçün xüsusi əməliyyatlara və vəziyyət dəyişikliklərinə nəzarət edin.

8.5.1 Hadisələrin ehtiyat nüsxəsi və bərpası

Yedəkləmə və bərpa əməliyyatlarını izləyin:

CREATE EVENT SESSION [BackupMonitoring] ON SERVER
ADD EVENT sqlserver.backup_restore_progress_trace,
ADD EVENT sqlserver.databases_backup_restore_event
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\BackupRestore.xel'
);

8.5.2 Verilənlər Bazasının Vəziyyətində Dəyişikliklər

Verilənlər bazası vəziyyəti keçidlərinə nəzarət edin:

CREATE EVENT SESSION [DatabaseStateChanges] ON SERVER
ADD EVENT sqlserver.database_started,
ADD EVENT sqlserver.database_stopped
ADD TARGET package0.ring_buffer;

8.6 Verilənlər Bazasında Korrupsiya və Dürüstlük Problemlərinin Aşkarlanması

SQL Server Genişləndirilmiş Hadisələr potensial verilənlər bazası pozuntusunu aşkar etmək üçün erkən xəbərdarlıq imkanlarını təmin edir, problemlər böyüməzdən əvvəl proaktiv müdaxiləyə imkan verir.

8.6.1 Korrupsiyanın aşkarlanması üçün əsas hadisələr

Bir neçə hadisə potensial korrupsiya və ya giriş/çıxış problemlərini göstərir.

8.6.1.1 error_reported Kritik Səhvlər üçün Hadisə

error_reported hadisəsi hamısını əhatə edir SQL Server səhvlər, o cümlədən korrupsiya ilə əlaqəli səhv nömrələri:

ADD EVENT sqlserver.error_reported(
    WHERE (
        [severity] >= (20)
        OR [error_number] IN (823, 824, 825, 832, 855, 856)
    )
)

Səhv 823 I/O xətalarını, 824 siqnalları məntiqi ardıcıllıq xətalarını və 825, hardware problemlərini göstərə bilən oxu-yenidən cəhd uğurlarını bildirir.

8.6.1.2 verilənlər bazası_şübhəli_məlumat_səhifəsi Hadisə

Bu hadisə nə vaxt alovlanır SQL Server şübhəli səhifə ilə qarşılaşır:

ADD EVENT sqlserver.database_suspect_data_page

Şübhəli səhifələr potensial korrupsiyanı göstərir və msdb.dbo.suspect_pages cədvəlində qeyd olunur.

8.6.1.3 errorlog_written Hadisə

Yazılan girişləri çəkin SQL Server səhv jurnalı:

ADD EVENT sqlserver.errorlog_written(
    WHERE ([severity] >= (16))
)

8.6.2 Korrupsiyaya qarşı monitorinq sessiyasının yaradılması

Korrupsiyanın aşkarlanması və monitorinqi üçün hərtərəfli sessiyanın yaradılması.

8.6.2.1 Korrupsiya Xəta Nömrələri üçün Filtrləmə (823, 824, 825)

Korrupsiya göstəricilərinə yönəlmiş hədəflənmiş bir sessiya yaradın:

CREATE EVENT SESSION [CorruptionDetection] ON SERVER
ADD EVENT sqlserver.error_reported(
    ACTION(
        sqlserver.database_name,
        sqlserver.sql_text
    )
    WHERE (
        [error_number] IN (823, 824, 825, 832, 855, 856)
        OR [severity] >= (20)
    )
),
ADD EVENT sqlserver.database_suspect_data_page(
    ACTION(
        sqlserver.database_name
    )
)
8.6.2.2 Müvafiq Ağırlıq Səviyyələrinin qurulması

Korrupsiyanı göstərə biləcək yüksək ciddi səhvləri daxil edin:

WHERE (
    [severity] >= (20)
    OR [error_number] IN (823, 824, 825)
)

Ciddilik dərəcəsi 20 və daha yuxarı sistem səviyyəsində olan və tez-tez korrupsiya ilə əlaqəli problemləri göstərir.

8.6.2.3 Xəbərdarlıqlar üçün Hadisə Fayl Hədəfinin Konfiqurasiyası

Təhlil və xəbərdarlıq üçün korrupsiya hadisələrini saxla:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\CorruptionMonitoring.xel',
        max_file_size=(50),
        max_rollover_files=(10)
)
WITH (
    STARTUP_STATE=ON,
    MAX_DISPATCH_LATENCY=5 SECONDS
);

ALTER EVENT SESSION [CorruptionDetection] ON SERVER STATE = START;

8.6.3 Korrupsiya hadisəsi məlumatlarının təhlili

Əldə edilmiş məlumatlardan korrupsiya ilə bağlı hadisələri çıxarın və şərh edin.

8.6.3.1 Şübhəli səhifələrin müəyyən edilməsi

database_suspect_data_page hadisələri üçün sorğu:

SELECT
    EventXML.value('(event/@timestamp)[1]', 'DATETIME2') AS EventTime,
    EventXML.value('(event/data[@name="database_id"]/value)[1]', 'INT') AS DatabaseID,
    EventXML.value('(event/data[@name="file_id"]/value)[1]', 'INT') AS FileID,
    EventXML.value('(event/data[@name="page_id"]/value)[1]', 'BIGINT') AS PageID,
    EventXML.value('(event/action[@name="database_name"]/value)[1]', 'VARCHAR(128)') AS DatabaseName
FROM (
    SELECT CAST(event_data AS XML) AS EventXML
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\CorruptionMonitoring*.xel',
        NULL, NULL, NULL
    )
) AS EventData
WHERE EventXML.value('(event/@name)[1]', 'VARCHAR(50)') = 'database_suspect_data_page';
8.6.3.2 Xəta təfərrüatlarının və kontekstinin çıxarılması

Korrupsiya nümunələri üçün error_reported hadisələrini təhlil edin:

SELECT
    EventXML.value('(event/@timestamp)[1]', 'DATETIME2') AS ErrorTime,
    EventXML.value('(event/data[@name="error_number"]/value)[1]', 'INT') AS ErrorNumber,
    EventXML.value('(event/data[@name="severity"]/value)[1]', 'INT') AS Severity,
    EventXML.value('(event/data[@name="message"]/value)[1]', 'VARCHAR(MAX)') AS ErrorMessage,
    EventXML.value('(event/action[@name="database_name"]/value)[1]', 'VARCHAR(128)') AS DatabaseName,
    EventXML.value('(event/action[@name="sql_text"]/value)[1]', 'VARCHAR(MAX)') AS SQLText
FROM (
    SELECT CAST(event_data AS XML) AS EventXML
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\CorruptionMonitoring*.xel',
        NULL, NULL, NULL
    )
) AS EventData
WHERE EventXML.value('(event/@name)[1]', 'VARCHAR(50)') = 'error_reported'
    AND EventXML.value('(event/data[@name="error_number"]/value)[1]', 'INT') IN (823, 824, 825);

8.6.4 DBCC CHECKDB ilə inteqrasiya

Bələdçilik etmək üçün Genişləndirilmiş Hadisələr məlumatından istifadə edin DBCC CHECKDB icra.

8.6.4.1 Hadisələrə əsasən DBCC CHECKDB-nin işə salınması

Korrupsiya hadisələri aşkar edildikdə, hərtərəfli yoxlama üçün DBCC CHECKDB-ni yerinə yetirin:

-- After detecting corruption events, run DBCC CHECKDB
DBCC CHECKDB ('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Genişləndirilmiş Hadisələr erkən xəbərdarlıq edir, DBCC CHECKDB isə hərtərəfli yoxlama aparır.

8.6.4.2 Korrupsiyaya Qarşı Mübarizə üzrə Avtomatlaşdırılmış İş Akışları

Hadisə faylına nəzarət etməklə avtomatlaşdırılmış cavabları həyata keçirin:

  1. Set SQL Server Korrupsiya monitorinqi hadisə faylını vaxtaşırı sorğulamaq üçün agent işi.
  2. Korrupsiya hadisələri aşkar edildikdə, təsirlənmiş verilənlər bazasında DBCC CHECKDB-ni icra edin.
  3. Hadisə təfərrüatları və DBCC CHECKDB nəticələri ilə DBA-lara e-poçt xəbərdarlıqları göndərin.
  4. Trend təhlili üçün tapıntıları mərkəzləşdirilmiş monitorinq cədvəlinə daxil edin.
8.6.4.3 Proaktiv monitorinqin performansla balanslaşdırılması

Genişləndirilmiş Hadisələr tez-tez DBCC CHECKDB icrası ilə müqayisədə aşağı yüklü korrupsiya aşkarlanmasını təklif edir:

  • Real vaxtda korrupsiyanın aşkarlanması üçün Genişləndirilmiş Hadisələri davamlı olaraq işə salın
  • DBCC CHECKDB-ni yalnız korrupsiya göstəriciləri göründükdə icra edin
  • Baxım pəncərələri zamanı müntəzəm DBCC CHECKDB-ni planlaşdırın
  • Hansı verilənlər bazalarının dərhal diqqət tələb etdiyini müəyyən etmək üçün Genişləndirilmiş Hadisələrdən istifadə edin

Bu yanaşma daimi bütövlük yoxlamalarının əhəmiyyətli resurs istehlakı olmadan proaktiv monitorinqi təmin edir.

8.6.4.4 Korrupsiyaya uğramış verilənlər bazasını təmir edin

Verilənlər bazasında pozuntular aşkar edilərsə, siz DBCC CHECKDB-dən istifadə edərək kiçik pozuntuları düzəldə bilərsiniz. Əgər uğursuz olarsa, üçüncü tərəfi sınaya bilərsiniz SQL verilənlər bazası bərpa aləti, bu, ümumiyyətlə ciddi şəkildə pozulmuş verilənlər bazalarında daha yüksək bərpa dərəcəsi təklif edir.

9. Server əhatəli və verilənlər bazası əhatəli genişlənmiş hadisələr

9.1 Server tərəfindən əhatə olunan Tədbir Sessiyaları

Server əhatəli sessiyalar bütünlükdə fəaliyyətə nəzarət edir SQL Server misal. Bu seanslar ON SERVER bəndi ilə yaradılır və əsas verilənlər bazasında saxlanılır.

CREATE EVENT SESSION [ServerWideMonitoring] ON SERVER
ADD EVENT sqlserver.sql_statement_completed
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\ServerWide.xel'
);

Server əhatəli sessiyalar bütün verilənlər bazalarından hadisələri ələ keçirir və misal səviyyəsində monitorinq üçün uyğundur.

9.2 Verilənlər Bazasının əhatəli Tədbir Sessiyaları (Azure SQL Database)

Verilənlər bazası əhatəli sessiyalar tək verilənlər bazası ilə məhdudlaşır və əsasən server səviyyəsində girişin məhdudlaşdırıldığı Azure SQL Database-də istifadə olunur:

CREATE EVENT SESSION [DatabaseSpecificMonitoring] ON DATABASE
ADD EVENT sqlserver.sql_statement_completed
ADD TARGET package0.event_file(
    SET filename=N'DatabaseMonitoring.xel'
);

Azure SQL Database-də hadisə faylları yerli fayl sistemlərində deyil, Azure Blob Storage-də saxlanılır.

9.3 Fərqlər və istifadə halları

Server əhatəli sessiyalar bütün verilənlər bazaları üzrə hərtərəfli monitorinqi təmin edir, lakin yüksək icazələr tələb edir. Verilənlər bazası əhatəli sessiyalar izolyasiya təklif edir və xüsusi proqramlar və ya kirayəçilər monitorinqi zamanı uyğundur.

Mərkəzləşdirilmiş monitorinq, verilənlər bazalarında performans problemlərinin aradan qaldırılması və təhlükəsizlik auditi üçün server əhatəli sessiyalardan istifadə edin. Azure SQL Verilənlər Bazasında, çox kirayəçi mühitlərində və ya monitorinq məsuliyyətlərini tətbiq qruplarına həvalə edərkən verilənlər bazası əhatəli sessiyalardan istifadə edin.

10. Azure SQL verilənlər bazasında genişləndirilmiş hadisələr

10.1 Azure-a Xüsusi Mülahizələr

Azure SQL Verilənlər Bazası Genişləndirilmiş Hadisələri yerli şirkətlərdən bəzi fərqlərlə həyata keçirir SQL Server. Sessiyalar defolt olaraq verilənlər bazası əhatə edir və hadisə faylı saxlama yerli fayl sistemlərindən daha çox Azure Blob Storage istifadə edir.

Azure Blob Yaddaşına identifikasiya hadisə faylı hədəfində konfiqurasiya edilmiş SAS tokenini tələb edir. Bağlantı sətirləri hadisə fayllarının saxlanıldığı saxlama hesabına və konteynerə istinad edir.

10.2 Azure-da Mövcud Hədəflər

Azure SQL Verilənlər Bazası bu Genişləndirilmiş Hadisə hədəflərini dəstəkləyir:

  • event_file: Azure Blob Storage-a yazır
  • ring_buffer: Yerli ilə eyni davranışa malik yaddaş əsaslı yaddaş
  • event_counter: Hadisələrin baş vermələrini hesablayır

event_file hədəfi Azure Blob Storage etimadnamələri ilə konfiqurasiya tələb edir:

ADD TARGET package0.event_file(
    SET filename=N'https://yourstorageaccount.blob.core.windows.net/container/EventFile.xel'
)

10.3 Verilənlər bazası əhatəli sessiyaların yaradılması

Azure SQL verilənlər bazasında sessiya yaradın:

CREATE EVENT SESSION [AzureMonitoring] ON DATABASE
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(sqlserver.sql_text, sqlserver.database_name)
)
ADD TARGET package0.ring_buffer
WITH (MAX_MEMORY=4096 KB);

ALTER EVENT SESSION [AzureMonitoring] ON DATABASE STATE = START;

Azure-da verilənlər bazası əhatəli sessiyalar yerli server əhatəli sessiyalarla eyni şəkildə davranır, lakin əhatə dairəsi cari verilənlər bazası ilə məhdudlaşır.

11. Ən Yaxşı Təcrübələr və Performansın Optimallaşdırılması

11.1 Performans Təsirinin minimuma endirilməsi

Genişləndirilmiş Hadisələr minimum yük üçün nəzərdə tutulmuşdur, lakin düzgün olmayan konfiqurasiya performansa təsir edə bilər. Bu təlimatlara əməl edin:

  • Hər şeyi ələ keçirmək əvəzinə hadisələri süzmək üçün xüsusi predikatlardan istifadə edin
  • Emal yükü əlavə edən lazımsız hərəkətləri toplamaqdan çəkinin
  • Məlumatların saxlanması ehtiyaclarına əsasən uyğun hədəfləri seçin
  • Ağlabatan bufer ölçülərini və göndərmə gecikmələrini təyin edin
  • DMV-lərdən istifadə edərək sessiya resursunun istehlakına nəzarət edin

11.2 Düzgün hadisələrin və filtrlərin seçilməsi

Monitorinq məqsədlərinizə birbaşa müraciət edən hadisələri seçin. Zəruri olmadıqda yüksək tezlikli hadisələrdən çəkinin və verilənlərin həcmini azaltmaq üçün həmişə predikatlar tətbiq edin.

Məsələn, bütün sql_statement_completed hadisələrini çəkmək əvəzinə, xüsusi verilənlər bazası və ya müddət hədləri üçün filtr edin:

WHERE (
    [sqlserver].[database_name] = N'ProductionDB'
    AND [duration] > 1000000
)

11.3 Hədəf Seçimi Təlimatları

Təhlil tələblərinizə əsasən hədəfləri seçin:

  • Ətraflı tarixi təhlil və uzunmüddətli saxlama üçün event_file istifadə edin
  • Minimum I/O təsiri ilə real vaxt monitorinqi üçün ring_buffer istifadə edin
  • Yalnız tezlik vacib olduqda event_counter istifadə edin
  • Paylanma təhlili üçün histoqramdan istifadə edin
  • Əlaqəli hadisə təhlili üçün pair_matching istifadə edin

11.4 Sessiya Konfiqurasiyası Tövsiyələri

Müvafiq resurs limitləri ilə sessiyaları konfiqurasiya edin:

  • Gözlənilən hadisə həcminə və server resurslarına əsasən MAX_MEMORY ayarlayın
  • Əksər ssenarilərdə minimum xərclər üçün ALLOW_SINGLE_EVENT_LOSS istifadə edin
  • Real vaxt ehtiyaclarını performansla balanslaşdırmaq üçün MAX_DISPATCH_LATENCY təyin edin
  • Çox prosessorlu sistemlərdə PER_CPU yaddaş bölməsindən istifadə edin
  • Davamlı monitorinq tələb olunmadığı təqdirdə STARTUP_STATE=ON funksiyasından istifadə etməyin

11.5 Hadisə faylının ölçüsünü və saxlanmasını idarə etmək

Sərhədsiz disk istifadəsinin qarşısını almaq üçün faylın dəyişdirilməsini konfiqurasiya edin:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\Session.xel',
        max_file_size=(100),
        max_rollover_files=(10)
)

Bu konfiqurasiya təxminən 1 GB hadisə məlumatını (10 fayl × 100 MB) saxlayır. Saxlama tələblərinizə və mövcud yaddaşa əsasən tənzimləyin.

12. Genişləndirilmiş hadisələrdə problemlərin aradan qaldırılması

12.1 Ümumi məsələlər və həll yolları

Genişləndirilmiş Hadisələrin ümumi problemlərinə məlumatların toplanmaması, performansın azalması, fayl hədəf problemləri və gözlənilməz sessiya davranışı daxildir.

12.2 Sessiya məlumatı tutmur

Sessiya gözlənilən hadisələri qeyd etmirsə:

  1. sys.dm_xe_sessions istifadə edərək sessiyanın başladığını yoxlayın.
  2. Bütün hadisələri filtrləmədiyinə əmin olmaq üçün predikatları yoxlayın.
  3. Filtrləri müvəqqəti olaraq silməklə hadisələrin işə düşdüyünü təsdiqləyin.
  4. Sessiya məlumatlarına baxmaq imkanına malik olduğunuzdan əmin olmaq üçün icazələri nəzərdən keçirin.
  5. Hədəf konfiqurasiyasının düzgün və yazıla bilən olduğunu yoxlayın.
SELECT name, create_time
FROM sys.dm_xe_sessions
WHERE name = 'YourSessionName';

12.3 Performansın azalması

Genişləndirilmiş Hadisələr performans problemlərinə səbəb olarsa:

  1. Tədbirin həcmini azaltmaq üçün predikatlar əlavə edin.
  2. Əlavə məlumat toplayan lazımsız hərəkətləri silin.
  3. Yazma tezliyini azaltmaq üçün MAX_DISPATCH_LATENCY artırın.
  4. EVENT_RETENTION_MODE rejimini ALLOW_SINGLE_EVENT_LOSS olaraq dəyişin.
  5. Yüksək tezlikli hadisələr üçün event_file əvəzinə ring_buffer istifadə etməyi düşünün.

12.4 Fayl Hədəf Problemləri

Fayl hədəf problemləri çox vaxt icazələr və ya disk sahəsi ilə əlaqəlidir:

  1. Doğrulayın SQL Server xidmət hesabının hədəf qovluğa yazma icazələri var.
  2. Kifayət qədər disk sahəsinin mövcud olduğundan əmin olun.
  3. Göstərilən yolun mövcud olduğunu və əlçatan olduğunu yoxlayın.
  4. Fayllar gözlənildiyi kimi yuvarlanmırsa, faylın dəyişdirilməsi konfiqurasiyasını nəzərdən keçirin.

12.5 Sistem Baxışları ilə sazlama

Genişləndirilmiş Hadisələrlə bağlı problemlərin diaqnostikası üçün DMV-lərdən istifadə edin:

-- Check session status
SELECT s.name, s.create_time, s.total_regular_buffers, s.total_large_buffers
FROM sys.dm_xe_sessions AS s;

-- View session targets and their status
SELECT
    s.name AS SessionName,
    t.target_name,
    t.execution_count,
    CAST(t.target_data AS XML) AS TargetData
FROM sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
    ON s.address = t.event_session_address;

-- Check for dropped events
SELECT s.name, s.dropped_event_count, s.dropped_buffer_count
FROM sys.dm_xe_sessions AS s;

13. Təkmil Mövzular

13.1 Fərdi Tədbir Paketlərinin yaradılması

Qabaqcıl istifadəçilər genişləndirmək üçün xüsusi hadisə paketləri yarada bilər SQL Server Genişləndirilmiş Hadisələr funksionallığı. Bunun üçün C++ dilinin inkişafı və onunla inteqrasiya tələb olunur SQL Server genişlənmə çərçivəsi.

Fərdi paketlər proqrama aid hadisələrin monitorinqinə və ya üçüncü tərəfin monitorinq sistemlərinin Genişləndirilmiş Hadisələr infrastrukturu ilə inteqrasiyasına imkan verir.

13.2 Tədbir Sessiyasının Şablonları

SSMS ümumi monitorinq ssenariləri üçün daxili şablonlar təqdim edir. Sehrbaz vasitəsilə yeni sessiyalar yaratarkən şablonlara daxil olun:

  1. Yeni Sessiya dialoq qutusunda üzərinə klikləyin şablon açılan.
  2. Sorğu Detallarının İzlənməsi və ya Sistem Sağlamlığı kimi mövcud şablonlardan seçin.
  3. Şablonu xüsusi tələblərinizə uyğunlaşdırmaq üçün dəyişdirin.

13.3 Monitorinq Həlləri ilə İnteqrasiya

Genişləndirilmiş Hadisələr məlumatları müəssisə monitorinq həllərini təmin edə bilər:

  • Mərkəzləşdirilmiş giriş sistemlərinə hadisə məlumatlarını ixrac edin
  • Hadisə fayllarını təhlil edin və məlumatları monitorinq verilənlər bazalarına yükləyin
  • BI alətlərindən istifadə edərək fərdi tablolar yaradın
  • Xüsusi hadisə nümunələri əsasında xəbərdarlıqları işə salın
  • Qohumluq SQL Server tətbiqi və infrastruktur göstəriciləri ilə hadisələr

13.4 Avtomatlaşdırma və Planlaşdırma

Genişləndirilmiş Hadisələrin idarə edilməsini avtomatlaşdırın SQL Server Agent:

  • Müəyyən vaxt pəncərələrində sessiyalara başlamaq/dayandırmaq üçün işlər yaradın
  • Hadisə faylının təhlilini və hesabatını planlaşdırın
  • Köhnə hadisə fayllarını arxivləşdirmək və ya silməklə məlumatların saxlanması siyasətini həyata keçirin
  • Performans problemləri və ya təhlükəsizlik hadisələri kimi aşkar edilmiş şərtlərə cavabı avtomatlaşdırın

14. miqrasiya SQL Server Profil

14.1 SQL Server Profiler Hadisələri Genişləndirilmiş Hadisə Xəritəçəkmə

Microsoft arasında xəritələşdirmə təmin edilir SQL Server Profil hadisələr və Genişləndirilmiş Tədbirlər. Ümumi xəritələrə aşağıdakılar daxildir:

  • SQL:BatchCompleted -> sql_batch_completed
  • SQL:BatchStarting -> sql_batch_starting
  • SQL:StmtCompleted -> sql_statement_completed
  • SQL:StmtStarting -> sql_statement_start
  • Deadlock Qrafik -> xml_deadlock_report
  • Girişi yoxlayın -> daxil olun
  • Audit Çıxış -> Çıxış

14.2 İz təriflərinin çevrilməsi

Mövcud olanı çevirin SQL Server Profiler ekvivalent hadisələri müəyyən etməklə və müvafiq predikatları konfiqurasiya etməklə Genişləndirilmiş Hadisələr seanslarını izləyir. SSMS ümumi çevrilmələr üçün yardım təmin edir.

İz filtrlərini nəzərdən keçirin və onları Genişləndirilmiş Hadisələr predikatlarına çevirin. Genişləndirilmiş Tədbirlərdəki hərəkətlər iz sütunlarını əvəz edir SQL Server Profiler.

14.3 Performansın müqayisəsi

Genişləndirilmiş Hadisələr daha yaxşı performans təmin edir SQL Server Profiler. Benchmark tədqiqatları göstərir ki, Genişləndirilmiş Hadisələr daha az CPU dövrü istehlak edir və əməliyyatın ötürülməsinə daha az təsir göstərir.

Genişləndirilmiş Hadisələr asinxron emaldan və optimallaşdırılmış yaddaş idarəetməsindən istifadə edir SQL Server Profiler, iz emalı tamamlanana qədər bloklayan sinxron hadisə tutmasına əsaslanır.

15. Nəticə

15.1 Əsas anlayışların xülasəsi

SQL Server Genişləndirilmiş Hadisələr monitorinq və problemlərin aradan qaldırılması üçün güclü, yüngül çərçivə təmin edir SQL ServerArxitektura, müvafiq server fəaliyyətini ələ keçirmək üçün birlikdə işləyən hadisələrdən, hərəkətlərdən, predikatlardan, hədəflərdən və sessiyalardan ibarətdir.

Sessiyalar SSMS və ya T-SQL istifadə edərək yaradıla bilər və bu da həm ad-hoc problemlərin aradan qaldırılması, həm də avtomatlaşdırılmış monitorinq üçün rahatlıq təklif edir. Birdən çox hədəf növü, ring_buffer ilə real vaxt monitorinqindən event_file ilə tarixi təhlilə qədər müxtəlif analiz yanaşmalarını dəstəkləyir.

Genişləndirilmiş Hadisələr ilə müqayisədə üstün performans təmin edir SQL Server Profiler daha əhatəli monitorinq imkanları təmin edərkən. Sistem verilənlər bazası administratorlarına və tərtibatçılarına problemlərin diaqnostikasını aparmaq, performansı optimallaşdırmaq, təhlükəsizliyi artırmaq və uyğunluğu təmin etmək imkanı verir.

15.2 Növbəti Addımlar və Əlavə Resurslar

Özünüzü inkişaf etdirməyə davam etmək üçün SQL Server XEvents təcrübəsi:

  • Təcrübəli təcrübə qazanmaq üçün test mühitlərində Genişləndirilmiş Tədbirləri həyata keçirin
  • Tam hadisə kataloqları və ətraflı sintaksis arayışı üçün Microsoft sənədlərini nəzərdən keçirin
  • qoşulmaq SQL Server başqalarının təcrübələrindən öyrənmək üçün icma forumları
  • Fərdi paketlər və monitorinq platformaları ilə inteqrasiya kimi qabaqcıl ssenariləri araşdırın
  • Ümumi monitorinq ssenariləri üçün sessiya şablonlarından ibarət kitabxana hazırlayın

16 Tez-tez verilən suallar bölməsi

S: Nədir SQL Server Genişləndirilmiş Tədbirlər?

A: SQL Server Genişləndirilmiş Hadisələr proqrama inteqrasiya edilmiş yüngül performans monitorinq sistemidir SQL Server Minimum yüklə server əməliyyatları haqqında ətraflı məlumat toplayan Database Engine.

S: Genişləndirilmiş Tədbirlər nə ilə fərqlənir? SQL Server Profiler?

A: Genişləndirilmiş Tədbirlər daha yaxşı performans, aşağı yük və daha çevik konfiqurasiya təmin edir SQL Server Profiler. SQL Server Profiler köhnəlib və Microsoft bütün monitorinq tapşırıqları üçün Genişləndirilmiş Hadisələrdən istifadə etməyi tövsiyə edir.

S: Genişləndirilmiş Hadisələr təsir edə bilər SQL Server performans?

Cavab: Müvafiq predikatlar və resurs limitləri ilə düzgün konfiqurasiya edildikdə, Genişləndirilmiş Hadisələr performansa minimal təsir göstərir. Filtrləmə olmadan zəif konfiqurasiya performansa təsir edə bilər.

S: Genişləndirilmiş Tədbir sessiyaları yaratmaq üçün hansı icazələr tələb olunur?

A: Server əhatəli sessiyalar üçün HƏR TƏDBİR SESSİYASINI DƏYİŞTİRMƏYƏ və ya verilənlər bazası əhatəli sessiyalar üçün verilənlər bazasında NƏZARƏT icazəsinə ehtiyacınız var.

S: Genişləndirilmiş Tədbirlər datasına necə baxa bilərəm?

A: İstifadə edin SQL Server Management Studio-nun canlı məlumat görüntüləyicisi, sys.fn_xe_file_target_read_file ilə sorğu hadisə faylları və ya DMV-lər vasitəsilə zəng bufer məlumatlarına sorğu.

S: Genişləndirilmiş Hadisələr verilənlər bazası pozuntusunu aşkar edə bilərmi?

Cavab: Bəli, Genişləndirilmiş Hadisələr korrupsiya ilə bağlı səhvləri (823, 824, 825) və şübhəli səhifə hadisələrini ələ keçirərək potensial korrupsiya problemləri üçün erkən xəbərdarlıq edə bilər.

S: Hadisələr, hərəkətlər və predikatlar arasında fərq nədir?

A: Hadisələr izləmək istədiyiniz hadisələrdir. Hərəkətlər qeydə alınan hadisələrə əlavə məlumat əlavə edir. Məlumat həcmini azaltmaq üçün hadisələri şərtlərə əsasən süzgəcdən keçirir.

S: Mən xüsusi proqramlardan və ya verilənlər bazalarından sorğulara necə nəzarət edə bilərəm?

A: verilənlər bazası_adı, müştəri_tətbiq_adı və ya digər müvafiq sahələrə görə filtrləmək üçün hadisə konfiqurasiyanızda predikatlardan istifadə edin.

S: Genişləndirilmiş Tədbirlər üçün hansı hədəflərdən istifadə etməliyəm?

A: Davamlı saxlama və tarixi təhlil üçün event_file, aşağı yüklə real vaxt monitorinqi üçün ring_buffer, sadə tezliklərin izlənilməsi üçün event_counter və paylama təhlili üçün histoqramdan istifadə edin.

S: Azure SQL verilənlər bazasında Genişləndirilmiş Tədbirlər mövcuddurmu?

Cavab: Bəli, Azure SQL Database Azure Blob Storage-də saxlanılan hadisə faylları ilə verilənlər bazası əhatəli Genişləndirilmiş Hadisələri dəstəkləyir.

S: Məlumat əldə etməyən Genişləndirilmiş Tədbirlər sessiyasında nasazlığı necə aradan qaldıra bilərəm?

A: Sessiyanın başlandığını təsdiqləyin, predikatların bütün hadisələri süzgəcdən keçirmədiyini yoxlayın, hədəf konfiqurasiyasını təsdiqləyin və sistem DMV-lərindən istifadə edərək icazələri nəzərdən keçirin.

S: Genişləndirilmiş Tədbirlərin idarə edilməsini avtomatlaşdıra bilərəmmi?

A: Bəli, istifadə edin SQL Server Sessiyalara başlamaq/dayandırmaq, hadisə fayllarını təhlil etmək, saxlama siyasətlərini tətbiq etmək və aşkar edilmiş şərtlərə cavab vermək üçün agent işləri.

References


Müəllif haqqında

Yuan Şenq sahəsində 10 ildən çox təcrübəsi olan baş verilənlər bazası administratorudur (DBA). SQL Server mühitlər və müəssisə verilənlər bazası idarə edilməsi. O, maliyyə xidmətləri, səhiyyə və istehsal təşkilatlarında yüzlərlə verilənlər bazası bərpa ssenarisini uğurla həll edib.

Yuan ixtisaslaşır SQL Server verilənlər bazasının bərpası, yüksək mövcudluq həllərivə performans optimallaşdırması. Onun geniş praktik təcrübəsi çoxterabaytlıq verilənlər bazalarının idarə edilməsini, tətbiqini əhatə edir. Həmişə Mövcud Qruplarvə vacib biznes sistemləri üçün avtomatlaşdırılmış ehtiyat nüsxələmə və bərpa strategiyalarının hazırlanması.

Texniki təcrübəsi və praktik yanaşması sayəsində Yuan verilənlər bazası administratorlarına və İT mütəxəssislərinə mürəkkəb problemləri həll etməyə kömək edən hərtərəfli bələdçilərin yaradılmasına diqqət yetirir. SQL Server problemlərini səmərəli həll edir. O, ən son xəbərlərdən xəbərdardır SQL Server relizlər və Microsoft-un inkişaf edən verilənlər bazası texnologiyaları, onun tövsiyələrinin real dünyanın ən yaxşı təcrübələrini əks etdirməsini təmin etmək üçün bərpa ssenarilərini müntəzəm olaraq sınaqdan keçirir.

haqqında suallarınız var SQL Server bərpası və ya əlavə verilənlər bazası problemlərinin aradan qaldırılması üçün təlimat lazımdır? Yuan salamlayır rəy və təkliflər bu texniki resursların təkmilləşdirilməsi üçün.

İndi paylaş: