SQL Server DMV ve DMF – 1

Bu başlık altında SQL Server Performans tuning, monitoring, optimizasyon ve teşhis için kullanılan DMO (Dynamic Management Objects) olarak adlandırılan DMV (Dynamic Management Views) ve DMF’ler (Dynamic Management Functions) için serinin ilkine bakacağız. SQL Server 2005 öncesinde bunları kendi içinde tablolar ile yapmaktaydı 2005 ve sonrasında bunları DMV ve DMF ile sunmaya başladı. Özellikle sistemde bir sorunla karşılaştığımızda bunu adreslemek istediğimizde ve çözüm için bize hint verebilecek en önemli yapı taşları DMV ve DMF’lerdir. Bu iki yapı doğru okunabilirse ve sorunu adreslemek ve çözmek için bizi iyi bir rehber olacaktır. Dynamic Management View (DMV): Table gibi objectlerdir ve view olarak adlandırılırlar. Select komutu ile bu viewları okuyabiliriz. Dynamic Management Function (DMF): Input parametresi alarak verilen bu parametreye göre sonucu bize döndürecektir. Kullanımı esnasında CROSS APPLY ile function kullanımı sağlanmaktadır. SQL Server’da, Server ve Database kapsamında 2 tür DMV ve DMF vardır. Server kapsamında olanlar, server’a ilişkin bilgileri verir ve bu objelerin […]

SQL Server DMV ve DMF – 1

Bu başlık altında SQL Server Performans tuning, monitoring, optimizasyon ve teşhis için kullanılan DMO (Dynamic Management Objects) olarak adlandırılan DMV (Dynamic Management Views) ve DMF’ler (Dynamic Management Functions) için serinin ilkine bakacağız. SQL Server 2005 öncesinde bunları kendi içinde tablolar ile yapmaktaydı 2005 ve sonrasında bunları DMV ve DMF ile sunmaya başladı.

Özellikle sistemde bir sorunla karşılaştığımızda bunu adreslemek istediğimizde ve çözüm için bize hint verebilecek en önemli yapı taşları DMV ve DMF’lerdir. Bu iki yapı doğru okunabilirse ve sorunu adreslemek ve çözmek için bizi iyi bir rehber olacaktır.

Dynamic Management View (DMV): Table gibi objectlerdir ve view olarak adlandırılırlar. Select komutu ile bu viewları okuyabiliriz.

Dynamic Management Function (DMF): Input parametresi alarak verilen bu parametreye göre sonucu bize döndürecektir. Kullanımı esnasında CROSS APPLY ile function kullanımı sağlanmaktadır.

SQL Server’da, Server ve Database kapsamında 2 tür DMV ve DMF vardır.

  • Server kapsamında olanlar, server’a ilişkin bilgileri verir ve bu objelerin kullanılabilmesi için VIEW SERVER STATE yetkisine ihtiyaç vardır.

 

Örnek yetkilendirme:

GRANT VIEW SERVER STATE TO Login

 

  • Database kapsamında olanlar ise database seviyesindeki bilgileri bize verirler. Bu objeleri kullanabilmek için ise VIEW DATABASE STATE yetkisine ihtiyaç vardır.

 

Örnek yetkilendirme:

GRANT VIEW DATABASE STATE TO User

 

Tüm DMV ve DMF’lerin neler olduğunu öğrenmek isterseniz aşağıdaki komut yardımı ile erişebilirsiniz.

 

SELECT name, type, type_desc

FROM sys.system_objects

WHERE name LIKE 'dm[_]%'

ORDER BY name

Bu sonuç bize güncel olarak 324 sonuç getirdi. İlerleyen dönemlerde yeni gelecek özelliklere göre artma ve azalma gösterecektir.

DMV ve DMF’lerin, hangi kolonlara sahip olduğunu ve data tiplerinin neler olduğunu ve size bilgilerini öğrenmek istersek aşağıdaki komut yardımı ile bunları öğrenebiliriz.

 

SELECT so.name AS [DMV/DMF], sc.name AS [Column],

t.name AS [Data Type], sc.column_id [Column Ordinal],

sc.max_length, sc.PRECISION, sc.scale

FROM sys.system_objects so

INNER JOIN sys.system_columns sc ON so.OBJECT_ID = sc.OBJECT_ID

INNER JOIN sys.types t ON sc.user_type_id = t.user_type_id

WHERE so.name LIKE 'dm_%'

ORDER BY so.name, sc.column_id

 

Tüm bu objelerin hepsi SQL Server’da kategorilere ayrılmıştır ve istediğimiz feature ile ilgili aramalarımızı kolaylaştırmak için belirli kelimeler ile bize sunmuştur.

  • dm_broker_* – Service Broker
  • dm_clr_* – Common Language Runtime (CLR)
  • dm_db_* – Database
  • dm_db_index_* – Indexes
  • dm_db_mirroring_* – Database mirroring
  • dm_exec_* – Execution (SQL Server Query)
  • dm_fts_* – Full-Text Search
  • dm_io_* – I/O
  • dm_os_* – SQL Operating System (SQLOS)
  • dm_qn_* – Query Notification
  • dm_repl_* – Replication
  • dm_tran_* – Transactions
  • dm_xtp_* – Memory Optimized Table
  • dm_hadr_* – High Availability Disaster Recovery (AlwaysON-FCI)

Bu yazımızda DMV ve DMF’lerin neler olduğu, genel olarak ne için kullanıldığını öğrenmiş olduk. Bir sonraki yazımızda spesifik DMV ve DMF’lere odaklanarak devam edeceğiz.

 

Benzer Yazılar

SQL SERVER FULL-TEXT SEARCH

SQL Server 1 hafta önce

Bu makalede Sql Server ’da metin tabanlı veriler üzerinde etkili arama performansı sağlayan Full-Text Search ’ten bahsedeceğim. Full-Text Search işlemlerini yapabilmesi için Full-Text index kolona sahip olmamız gerekmektedir. Full-Text indexler, metin içeriği barındıran ve belirli veri türlerine sahip kolonlarda oluşturulabilir. Bu veri türleri “Char, Varchar, NChar, NVarchar, Text, NText, XML, Varbinary, Image ” yer alır. Full-Text index oluşturulabilmesi için ilgili tabloda tek kolonlu bir unique bir index bulunması zorunlu bir koşuldur. Bu kısım biraz daha detaylandıralım, örnek olarak mevcut ortamda bulunan tablonuzda “Id” ve “Tarih” kolonları ile partition yapınız var bu yapıda mevcut partition index unique durumda bulunuyor ama yine de full-text index oluşturamıyorsunuz çünkü tek kolonlu bir unique index gerekmektedir. Benim test ettiğim yöntemlerden birisi de “Id” ve “Tarih” kolonları ile computed column oluşturarak bu kolona unique index oluşturmaya çalışmak oldu bu yöntem ile görece unique bir kolon oluşturarak bu kolona index oluşturulabilir ancak bu computed column oluştururken tablonuza […]

Failover Cluster Yapısına Quorum Disk Witness Ekleme

SQL Server 3 hafta önce

Bu makalede mevcut Failover Cluster yapısı kurulu olan bir sistemde Quorum Disk Witness ekleme işlemini ele alacağız. Quorum disk kurulumuna geçmeden önce Quorum yapısını ne olduğundan bahsedeyim. Mevcut clusterımızın ayakta kalması için cluster database dosyalarının tutulduğu kısımdır. Bu yapının çalışabilmesi için cluster yapımızda bulunan toplam sunucuların yarısından bir fazla ile sunucu oy hakkına sahip olur ve lider olarak ayağa kalkması sağlanır. Bu yapımız olmasa da olur aslında bir sıkıntı yaşamayız. Sorun şurada karşımıza çıkar iki sunucu aynı anda down oldu ve iki sunucu aynı milisaniye zamanında ayağa kalkmaya çalışırsa mevcut sistemimizin çalışmamasına sebep olur. Bu riskin önüne geçmek için Quorum yapısı oluşturulur. Bu yapılandırmayı yapmasak ta mevcut bir sunucu down olduğunda diğer sunucu up olmaktadır. Genellikle çift yapılı node durumların oluşturulur. İki farklı quorum modeli bulunmaktadır. Bunlar Disk Witness yapısı diğeri ise File Shared Witness yapısıdır. Herhangi bir failover cluster yapısı oluşturduğumuzda cluster’daki sunucularımın göreceği ortak bir iSCSI disk yapılandırılması […]

SQL Server DMV ve DMF – 4

SQL Server 4 hafta önce

Bu yazımızda DMV ve DMF serisinin 3.’süne bakıyor olacağız. Konuya İlişkin daha detaylı bilgiye sahip olmak isterseniz ya da önceki serileri okumak isterseniz. SQL Server DMV ve DMF – I ve SQL Server DMV – II makalelerine göz gezdirilebilirsiniz. Bu yazımızda SQL Server üzerinde yoğun olarak kullandığımız ve SQL Operating system ile ilişkili bilgilere erişmek istediğimizde ihtiyacımız olan DMV ve DMF’lere göz gezdireceğiz. Bildiğiniz gibi DMV ve DMF’ler problem teşhisinde kullanıldığı gibi monitoring etmek içinde çokça kullanılmaktadır. Özellikle Operating system ile ilgili kullanmak istediğimizd sys.dm_os ile başlayanları kullanabiliriz. Peki biz hangi DMV’leri ne için ve nasıl okuyoruz? SQL Server’ın üzerinde koştuğu Windows’un bilgilerine ulaşmak için; SELECT * FROM sys.dm_os_windows_info; Görsel – 1   Windows_sku: Stock Keeping Unit Stock Keeping Unit değeri Windows_release sonucunun hexadecimal çıktısıdır. Görsel – 2 48 = 0x30 olduğunu biliyoruz. Bu değeri hesaplamak için Hexadecimal değeri Binary değere convert ederek elde edebilirsiniz.   SQL Server ve üzerinde […]

2 Yorum

Yorum Yaz

Rastgele