Recent comments

İçerik Ara



Yasal Uyarı
Bu sitede sunulan tüm bilgi ve dökümanlar Turgay Sahtiyan tarafından yazılmaktadır. Yazıların kaynak göstermek şartıyla kullanılması serbesttir.

© Copyright 2009-2011
Takvim
<<  May 2012  >>
MoTuWeThFrSaSu
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Keywords

Microsoft 26.01.2012’de System Center Advisor’ın release edildiğini anons etti. Cloud-Based bir hizmet olan System Center Advisor ile Windows ve SQL Server’larınızı analiz ettirerek potansiyel konfigurasyon problemlerinin ve performans problemlerinin önüne geçebilirsiniz.

More...

Bugün sizlere Glenn Berry ve Brent Ozar tarafından yazılmış 2 ayrı health check script bloğundan bahsedeceğim. Bu scriptler ile instance ve database’lerinizi best practice’ler ışığında hızlı bir şekilde health check’ten geçirebilir ve alınması gereken aksiyonları belirleyebilirsiniz.

More...

Bugün sizlere Robert Pearl ve Glenn Berry tarafından yazılmış bir script paylaşacağım. Bu script ile son SQL Server restart’ından beri kullanılan CPU’nun veritabanlarına göre detaylandırılmış raporunu alacağız.

More...

Bu yazımda Plan Cache’de bulunan Plan’ları ve Memory’de bulunan clean data page’leri hangi komutlar ile temizleyebileceğimize bakıyor olacağız.

More...

SQL Server 2008 ile gelen Policy Management özelliğini gene SQL Server’ın bir diğer özelliği olan Central Management Servers ile birden fazla sunucuda aynı anda çalıştırabilmemiz mümkün. Bu makalemde bu işlemi nasıl yapabileceğimize bakıyor olacağız.

More...

SQL Server 2008 ile beraber gelen Policy Base Management özelliğinin ne gibi faydalar sağladığını şu makalede incelemiştik. Bu makalemde ise SQL Server 2008 kurulumu ile beraber default olarak gelen best-practice policy’lerini nasıl kullanabileceğimizi görüyor olacağız.

More...

Daha önceki makalelerimde (1|2) sys.dm_exec_query_stats DMV’si ile IO ve CPU açısından pahalı sorguların nasıl kontrol edilebileceğini görmüştük. Yapılan insert-update-delete işlemleri sys.dm_exec_query_stats DMV’sinde toplanmakta ve bu DMV kullanılarak IO ve CPU açısından maliyetli sorgular bulunabilmektedir. Fakat bu DMV ile DML hareketler toplanamaz. Örneğin bir SP’nin içerisinde bazı DML işlemler ve örneğin Index oluşturmak gibi bir DDL işlem var ise sys.dm_exec_query_stats DMV’si sadece DML işlemleri toplayacaktır. Oysaki sys.dm_exec_procedure_stats DMV’si ise prosedürün tamamımının çalışma bilgilerini tuttuğu için DDL işlemi de bu hesaplamanın içine katılır. Bu makalemde bu 2 DMV arasındaki farka bir örnek ile bakıyor olacağız.

More...

Bir önceki makalemde Estimated ve Actual Query Plan’ları nasıl görebileceğimiz üzerine konuşmuştuk. Bugünkü makalemde ise bu Query Plan’ları SQL Server Profiler ile otomatik olarak nasıl toplayabileceğimizi görüyor olacağız.

More...

SQL Server sorgu performans analizi yapılırken en çok kullanılan DMV’lerden biri olan sys.dm_exec_query_statsDMV’sine SQL Server 2011 Denali ile beraber 4 yeni kolon eklendi.

More...

SQL Server 2011 Denali ile gelen yeni DMV’lerden biri sys.dm_os_volume_stats DMV’si. Bu DMV ile data ve log file’larının bulunduğu sürücülerin toplam alan, boş alan gibi bilgilerinin öğrenilmesi mümkün.

More...

Her ne kadar arzu edilen durum, yazılım geliştiricilerin ve analistlerin production ortamında sorgu çalıştırmaması olsa da, bazı durumlarda kayıtların doğruluğunu ve işlemlerin sonuçlarını canlı ortamda görmek için bu kullanıcıların production ortamında işlem yapması gerekebilir.

Yapılan bu işlemler bazı durumlarda yanlış kod yazımından dolayı çok uzun sürüp gereksiz kaynak tüketimine neden olabilir, bu da sistemin performansına etkileyebilir.

Bugünkü yazımda bir SP vasıtasıyla, belirlediğimiz süreden daha uzun süredir çalışan session’ları otomatik olarak nasıl kill edebileceğimizi görüyor olacağız. Ayrıca ilgili session’ları kill etmeden önce çalıştırdıkları sorguları öğrenip, kill edilme işleminin detaylarını log tablosunda loglayacağız.

More...

Mart 2011’de yayınladığım SQL Server’da Index Kavramı başlıklı makalemden sonra bugün de performans iyileştirmenin bir diğer büyük adımı olan SQL Server’da İstatistis (Statistics) Kavramı üzerine yazılmış detaylı makalemi paylaşıyorum.

Bu makale, SQL Server’da istatistiklerin kullanım amacını,faydalarını ve güncel olmalarının önemini sorguladıktan sonra, istatistiklerinin içeriğinin incelenmesi ve istatistiklerin otomatik oluşturulma ve güncellenme parametrelerinin ve bu parametrelerin best practice’lerinin neler oldukları üzerinde duracaktır.

More...

Stored Procedure(SP) ilk çalıştırıldığı zaman istatistikler göz önüne alınarak Query Optimizer tarafından en optimum Query Plan oluşturulur ve daha sonra kullanılmak üzere Plan Cache’e konulur. Aynı SP farklı bir zamanda tekrar çalıştırıldığında Cache’deki plan’ın geçerliliği kontrol edilir ve eğer plan geçerli yani güncel ise tekrar Query Plan oluşturulmak için zaman harcanmayıp plan Cache’den çağırılır ve kullanılır.

Query Plan oluşturma işlemi bazı durumlarda çok fazla CPU kaynağı tükettiği için bu şekilde bir cache’lenme mekanizması kullanılır. Fakat bazı durumlarda cache’lenen plan güncelliğini yitirmiş olabilir. Örneğin SP içinde geçen bir tabloda plan cache’lendikten sonra çok fazla data değişimi olduysa bu durumda istatistikler güncelliğini yitirecek dolayısıyla da cache’lenen plan güncelliğini yitirecektir. Ya da SP’nin içinde geçen tablolarda index ekleme,silme gibi DDL (Data Definition Language) değişiklikleri yapılırsa yine cache’lenen plan güncelliğini yitirmiş olacaktır. Böyle bir durumda SP’nin yeniden derlenip yeni bir Query Plan’ın oluşturulması gerekmektedir. İşte bu duruma ReCompilation denilmektedir.

More...

Bugünkü makalemde, heap tablolarda karşımıza çıkan Forwarded Record konusu üzerine konuşuyor olacağız. Alt başlıklarımız şu şekilde;

  • Forwarded Record Nedir?
  • Forwarded Record Nasıl Oluşur?
  • Forwarded Record Neden Oluşur? SQL Server’ın Bu Davranışının Nedeni Nedir?
    • NonClustered Index İçeren Heap Tablolarda Forwarded Record
    • NonClustered Index İçermeyen Heap Tablolarda Forwarded Record
  • Forwarded Record’un Performansa Etkisi Nedir?
  • Clustered Index İçeren Tablolarda Neden Forwarded Record Oluşmaz?
  • Hangi Tablolarımda Forwarded Record Var?
  • Tablolarımda Bulunan Forwarded Record’lardan Dolayı Performans Sıkıntısı Yaşıyor muyum?
  • Forwarded Record Nasıl Düzeltilir?
  • Sonuç

More...

Geçenlerde SQL Server 2005 Performance Dashboard raporlarını incelerken ana ekranda olan bir rapor dikkatimi çekti. CPU utilization’ı görebildiğimiz bu rapor da dakika dakika CPU kullanımını görebilmekteyiz.

Hemen ilk aklıma gelen Performance Counter ile bu bilginin alındığıydı. Fakat daha sonra düşündüğümde bu raporu almadan herhangi bir performance counter toplamadığımdı. Bu durumda bu rapor bir şekilde geriye dönük olarak CPU bilgilerini getirebilmekte, çok büyük ihtimal de DMV üzerinden bu bilgiye erişmekte ki bu beni oldukça şaşırttı ve heyecanlandırdı.

More...

23 Mayıs Pazartesi günü yapacağım webcast’in duyurusunu yapmak istiyorum.

SQL Server 2008 Performance Data Collection ile Veritabanı Sunucularınızı İzleyin başlıklı webcast’im 23.05.2011 Pazartesi günü 21:00-22:00 saatleri arasında gerçekleşecek.

Aşağıdaki url’i kullanarak vereceğim bu webcast’e katılabilirsiniz.

https://www.livemeeting.com/cc/mvp/join?id=7Z3BS9&role=attend&pw=w%27%257%265Rnd

Ajandamız şu şekilde olacak;

  • Performance Data Collection (PDC) Nedir ?
  • Datawarehouse Kurulumu
  • Default Collection Set’lerin Kurulması
  • Default Collection Set’lerin Raporlanması
  • PDC’da Server Side Trace Kullanımı
  • Bloklanan Sorguların PDC ile Toplanıp Raporlanması
  • PDC ile Deadlock Monitoring
  • Troubleshoot
  • Soru – Cevap

Not:Katılım url’i webcast başlamadan yarım saat önce aktif hale gelecektir.

İyi Çalışmalar

Turgay Sahtiyan

Memory kullanımı SQL Server açısından monitor edilmesi gereken ilk noktalardan biridir. DBCC MEMORYSTATUS komutu ile anlık olarak memory durumunun bir görüntüsünü alıp memory kullanımını kontrol edebiliriz.

Aşağıdaki KB Article’da DBCC MEMORYSTATUS’un nasıl kullanılabileceği detaylı olarak anlatılmakta.

İncelemenizi tavsiye ederim.

http://support.microsoft.com/kb/907877/en-us

 

İyi Çalışmalar

Turgay Sahtiyan

SQL Server 2011 Denali ile beraber gelecek olan özelliklerden biri de Distributed Replay Utility’dir. Bu yapı ile database sunucular üzerinde yük testi yapılabilir. Daha önceleri bu işlemler için load runner gibi 3rd party tool’lar kullanılmaktaydı. Denali ile beraber gelecek olan bu yapı sayesinde bir SP’nin sisteme geçilmeden önce canlı testini yapabilir, ya da canlı yapı üzerinde topladığınız trace’leri yük testi yapmak için istediğin sayıda makinada paralel olarak çalıştırıp sonuçları analiz edebilirsiniz.

More...

SQL Server Profiler üzerinden aldığımız trace’i T-SQL komutları ile sorgulayabilmek, istediğimiz aramaları yapmak için büyük avantaj sağlamakta. Trace sonuçlarını bir tabloya kaydederek bu sorgulamayı yapmamız mümkün. Ya da bugün anlatacağım diğer bir yöntem olan fn_trace_gettable fonksiyonu ile trace dosyasını tabloymuş gibi sorgulayabiliriz.

More...

SQL Server 2008 ile beraber Database Mirroring’e Auto Page Repair özelliği eklendi. Bu özellik ile beraber partner’ler (Mirroring yapılan sunucular birbirinin partner’idir) bozuk(corrupted) olan data page’leri birbirlerinden otomatik olarak recover etmeye çalışmaktadır. Herhangi bir page’i okuyamayan partner sunucu diğer sunucudan bu page’in düzgün olan halini istemekte, ve bu istek başarıyla sonuçlanırsa düzgün olan page corrupted yani bozuk olan page ile replace edilmektedir.

More...