Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

EurobankTekfen SQL Server DBA www.turgaysahtiyan.com Turgay Sahtiyan.

Benzer bir sunumlar


... konulu sunumlar: "EurobankTekfen SQL Server DBA www.turgaysahtiyan.com Turgay Sahtiyan."— Sunum transkripti:

1 EurobankTekfen SQL Server DBA Turgay Sahtiyan

2 Ajanda DMV-DMF Nedir? Ne Amaçla Kullanılır? DMV-DMF Farkı Nedir? Nasıl Bir Yetki Gereklidir? Tüm DMV – DMF Listesi Örnekler DMV’ler ile Başka Neler Yapılabilir? Soru - Cevap

3 DMV – DMF Nedir? SQL Server da Dynamic Management View(DMV) ve Dynamic Management Function’lar (DMF), sistemi monitor etmek, herhangi bir problemi teşhis etmek veya sistemi daha performanslı çalışması için tune etmek için kullanılan, sistem durumu hakkında bilgi dönen view ve function’lardır. İlk kez SQL Server 2005 ile gelmiştir.

4 Ne Amaçla Kullanılır? Şu an devam eden işler ve çalışan query’ler nedir? Genel olarak SQL Server’ın işi yapmak için beklediği noktalar nereler? Network IO’larında bekleme var mı? Disklerin response time’ları nasıl? Şu an diskte bekleyen herhangi bir IO işlemi var mı? Eksik index’lerimden dolayı mı performans sıkıntım var? Bu eksik index’ler nelerdir? Index’lerimin scan,seek yani kısaca kullanım oranları nelerdir? En çok CPU ya da IO tüketen sorgularım hangileri?

5 DMV – DMF Farkı Nedir? Dynamic Management View (DMV) View’ler gibi select çekilerek sorgulanabilirler. Örnek kullanımı; Select * from sys.dm_os_wait_stats Dynamic Management Function (DMF) Input parametresi alarak bu parametreye göre sonuç döndüren fonksiyonlardır. Örnek kullanımı; SELECT * FROM sys.dm_exec_requests CROSS APPLY sys.dm_exec_sql_text(sql_handle)

6 Nasıl Bir Yetki Gereklidir? Permission (yetkilendirme) açısından 2 tipe ayrılırlar Database seviyesindeki DMV-DMF’ler Örn. sys.dm_db_partition_stats Yetkilendirme şu şekilde yapılır. GRANT VIEW DATABASE STATE TO userName Server seviyesindeki DMV-DMF’ler Örn. sys.dm_os_sys_info Yetkilendirme şu şekilde yapılır. GRANT VIEW SERVER STATE TO userName

7 Tüm DMV – DMF Listesi

8 Örnekler DMW’ler ile Session(Process) Kontrolleri (sys.em_exec_requests) En Çok CPU ya da IO Tüketen Sorgular (sys.dm_exec_query_stats) Prosess Beklemelerinin Analizi (sys.dm_os_wait_stats) Disklerin IO Response Time’ları (sys.dm_io_virtual_file_stats) Şu an Diskte Bekleyen IO Var mı? (sys.dm_io_pending_io_requests) Index’lerin Fragmante Oranları (sys.dm_db_index_physical_stats) Index’lerin Kullanım İstatistikleri (sys.dm_db_index_usage_stats) Eksik Index’lerin Sorgulanması Sys.dm_db_partition_stats ile Tablo Bilgileri Sys.dm_os_sys_info ile Server Bilgileri Cache’lenen Sorgular (sys.dm_exec_cached_plans)

9 DMW’ler ile Session(Process) Kontrolleri Aktif Prosess’ler Neler? Şu an Hangi Query’ler Çalışmakta? Bu Prossess’ler Hangi Login ile Hangi Makinadan Çalıştırılmış? Bu Prosess’lerin Tahmini Bitiş Süreleri Kullanılacak DMV ve DMF’ler sys.dm_exec_requests sys.dm_exec_connections sys.dm_exec_sessions sys.dm_exec_sql_text sys.dm_exec_query_plan

10 DMW’ler ile Session(Process) Kontrolleri

11 DBName : Session’ın çalıştığı DB’yi gösterir. login_name : Session’ın hangi user name ile açıldığını gösterir. host_name : Session’ın hangi makinadan yapıldığını gösterir. text : Çalışmakta olan query’nin tamamını gösterir. statement_text : Çalışmakta olan query’nin şu anda çalışmakta olan kısmını gösterir. Örneğin binlerce satırlık bir query’iniz olduğunu düşünün. Ve şu anda bu query’nin 400.satırındaki update işlemi yapılmakta. Text kolonu bu query’nin tamamını, statement_text kolonu ise gerçekten şu anda işletilmekte olan update işlemini gösteriyor olacaktır. blocking_session_id : Eğer bu session bir başka session tarafından bloklandıysa buraya bloğu koyan session’ın ID’si gelir. status : Query’nin şu andaki durumunu gösterir. wait_type : Eğer query şu anda blok’lu durumdaysa bu blok’un tipini verir. wait_time : Eğer query şu anda blok’lu durumdaysa milisaniye cinsinden ne kadar zamandır blok’lu olduğunu verir. percent_complete : Backup,Restore gibi bazı işlemleri yapan session’ın şu anda işinin yüzde kaçında olduğunu gösterir. estimated_completion_time : Gene Backup,Restore gibi bazı işlemlerin tahmini olarak ne kadarlık daha işi kaldığını milisaniye cinsinden verir.

12 En Çok CPU Tüketen İlk 50 Sorgu

13 En Çok IO Tüketen İlk 50 Sorgu

14 Prosess Beklemelerinin Analizi

15 Disklerin IO Response Time’ları

16 Şu an Diskte Bekleyen IO Var mı?

17 Index’lerin Kullanım İstatistikleri

18 Index’lerin Fragmante Oranları

19 Kullanılmayan Index Raporu

20 Eksik Index’lerin Sorgulanması sys.dm_db_missing_index_group_stats - DMV sys.dm_db_missing_index_groups - DMV sys.dm_db_missing_index_details - DMV sys.dm_db_missing_index_columns - DMF

21 Eksik Index’lerin Sorgulanması

22 sys.dm_db_partition_stats ile Tablo Bilgileri

23 object_id : Index’in bağlı bulunduğu table’ın ID’si. sys.objects’e join edeceğiz. index_id : Index’in ID si. sys.indexes’e join edeceğiz. partition_number : Partition number’ı. AdventureWorks’te hiç partitioning kullanılmadığı için bu değer bütün index’ler için 1’dir. in_row_data_page_count : Data’yı tutmak için kullanılan page sayısı. Index eğer Heap ise bu değer heap level’daki data page’lerin sayısını ifade eder. Eğer Clustered yada NonClustered Index ise bu değer leaf level’daki data page’leri ifade eder. NonLeaf’leri içermez. used_page_count : NonLeaf ve Leaf level’lardaki page’lerin toplamını ifade eder. reserved_page_count : Toplam rezerve edilen page sayısını ifade eder. Table’ın toplam kapladığı alan bu page sayısı üzerinden hareket edilerek bulunur. row_count : Bahsi geçen partition’daki satır sayısını ifade eder. AdventureWorks’te partitioning kullanılmadığı için her index için table’da bulunan satır sayısını ifade eder.

24 sys.dm_db_partition_stats ile Tablo Bilgileri Table’ların Kayıt Sayıları Table’ların Boyutları

25 sys.dm_os_sys_info ile Server Bilgileri

26 SQL Server UpTime

27 Cache’lenen Sorgular

28 DMV’ler ile Başka Neler Yapılabilir? SQL Server Buffer Pool Analizi Index’lerin Operasyonel İstatistikleri Stored Procedure İstatistikleri Trigger İstatistikleri CPU Üzerindeki Beklemelerin Kontrolü Dependent Objelerin Kontrolü Transaction Kontrolleri Performance Counter’ların Analizi Lock’lanan Kaynakların Kontrolü Cursor’ların Analizi SQL Server İlişkili Beklemelerin Analizi

29 Soru - Cevap Turgay Sahtiyan EurobankTekfen SQL Server DBA


"EurobankTekfen SQL Server DBA www.turgaysahtiyan.com Turgay Sahtiyan." indir ppt

Benzer bir sunumlar


Google Reklamları