SQL Server Trace Flag(Startup Parameters) Nedir? Ne için kullanılır ? Yaygın olarak kullanılan Trace Flaglar Nelerdir?

Bu makalede, SQL Server Trace Flag ne olduğunu, nasıl kullanıldığını ve bazı yaygın senaryolarda nasıl faydalı olabileceğini inceleyeceğiz. Trace Flag Nedir ? SQL Server’ın davranışını değiştiren ve çeşitli senaryolarda performansı artıran veya hata ayıklama sürecini kolaylaştıran özel ayarlar olarak tanımlanabilir. Kullanım amaçları genel anlamda kriz anında ihtiyaçlara göre Trace Flags’ler eklenip problemi çözmeye yönelik işlemler yapılabilir. SQL Server Trace Flag seçerken dikkatli olmak önemlidir. Yanlış bir Trace flag etkinleştirilmesi, beklenmedik davranış değişikliklerine veya performans sorunlarına neden olabilir. Bu nedenle, her Trace Flag etkilerini ve kullanım senaryolarını bilmek önemlidir. Trace Flag etkinleştirildikten sonra sistem üzerindeki etkilerini izlemek ve değerlendirmek de önemlidir. Trace Flag nasıl aktif edebiliriz. Bağzı Trace Flag’ ler Service Restart edildikten sonra devreye girecektir. Aktif etmek için; SQL Server Configuration Manager/ SQL Server Services/ SQL Server (InstanceName)   Instance’a sağ tıklayıp Properties diyoruz ve Startup Parameters kısmına geliyoruz burada 3 tane System tarafından Default olarak gelen Trace Flag’ler bulunmaktadır. […]

SQL Server Trace Flag(Startup Parameters) Nedir? Ne için kullanılır ? Yaygın olarak kullanılan Trace Flaglar Nelerdir?

Bu makalede, SQL Server Trace Flag ne olduğunu, nasıl kullanıldığını ve bazı yaygın senaryolarda nasıl faydalı olabileceğini inceleyeceğiz.

Trace Flag Nedir ?

SQL Server’ın davranışını değiştiren ve çeşitli senaryolarda performansı artıran veya hata ayıklama sürecini kolaylaştıran özel ayarlar olarak tanımlanabilir. Kullanım amaçları genel anlamda kriz anında ihtiyaçlara göre Trace Flags’ler eklenip problemi çözmeye yönelik işlemler yapılabilir.

SQL Server Trace Flag seçerken dikkatli olmak önemlidir. Yanlış bir Trace flag etkinleştirilmesi, beklenmedik davranış değişikliklerine veya performans sorunlarına neden olabilir. Bu nedenle, her Trace Flag etkilerini ve kullanım senaryolarını bilmek önemlidir. Trace Flag etkinleştirildikten sonra sistem üzerindeki etkilerini izlemek ve değerlendirmek de önemlidir.

Trace Flag nasıl aktif edebiliriz. Bağzı Trace Flag’ ler Service Restart edildikten sonra devreye girecektir.

Aktif etmek için;

SQL Server Configuration Manager/ SQL Server Services/ SQL Server (InstanceName)

 

Instance’a sağ tıklayıp Properties diyoruz ve Startup Parameters kısmına geliyoruz burada 3 tane System tarafından Default olarak gelen Trace Flag’ler bulunmaktadır.

Bunlar;

-d (Master veritabanı dosyasının yolunu/ master.mdf) SQL Server’ın sistem yapılandırma bilgilerini içerir ve sunucunun başlatılmasında kritik bir rolü vardır.

-e (hata günlük dosyasının yolu/ ERRORLOG) Hata günlüğü dosyası, SQL Server başlatma,durdurma, hatamesajları ve önemli olaylar hakkında bilgi içerir.

-I (master veritabanı işlem günlüğü dosyasının yolu/mastlog.ldf) Master veritabanın işlem günlüklerini saklar ve veri tabanı kurtarma işlemlerinde kullanılır.

 

Trace flag eklerken Specify a startup parameter kısmına aşağıdaki gibi başına –T…. yazılıp Add butonuna tıklanılır.

Existing Parameters kısmında TRACE FLAG eklenmiş olacaktır.

 

Şimdi sizlerle problem anında kullanılan Trace Flagler örneğini paylaşacağım.

Problem 1-) Beklenmedik bir şekilde yüksek CPU kullanımı yaşandığında, SQL Server’ın CPU kullanımını optimize etmek için hızlı bir çözüm bulmanız gerektiğinde Trace Flag 8048 aktif etmeniz fayda sağlayacaktır.

-T8048 yüksek CPU kullanımı yaşandığında, SQL Server’ın CPU kullanımını optimize etmek için hızlı bir çözüm sağlayabilir.

Problem 2-) Bir veritabanı sunucusunda aşırı miktarda disk I/O (Input/Output) aktivitesi meydana geliyor ve bu durum, diğer işlemlerin performansını olumsuz etkiliyor.

-T 830 (Page Free Space ) kullanarak, veritabanı sunucusundaki aşırı disk I/O aktivitesini azaltabiliriz.

Problem 3-) SQL Server kapandığında veya çöktü

-T 3608 Bu trace flag, SQL Server hizmeti başlatılırken, veritabanı sistem veritabanını açmadan önce başlatmayı engeller. Böylece, SQL Server çöktüğünde, hizmeti yeniden başlattığınızda kullanıcı veritabanları açılmaz ve, kurtarma işlemlerinin daha kolay yapılmasını olanak sağlar.

Kriz durumlarında trace flag’lerin kullanılması, sorunun geçici olarak giderilmesine yardımcı olabilirken, uzun vadeli çözümler için dikkatli bir planlama ve analiz gereklidir.

Trace Flag’ler sadece kriz anında değil başka durum ve  sebeplerden dolayı kullanılabilir. Bunlardan tabiki en başta geleni SQL Server Sürümleridir.

Örnek vermek gerekir ise;

 

2017 SQL Server Sürümünde

-T 1117 TempDB’ Performansını optimize etmek için manuel olarak etkinleştirilir.

-T 2371 Otomatik İstatistik güncelleme eşiklerini dinamik olarak ayarlar.

2019 SQL Server Sürümün ‘de  bu Trace Flaglar varsayılan olarak  etkin hale getirilmiştir.

 

Yaygın olarak kullanılan Trace Flag’lerin bazıları:

 

T 176  –  Online On Partition Table: Partition işleminde bölümlemeye olanak sağlar Wide Pages(Geniş sayfaların) kullanımını devre dışı bırakır. Performansa etki eder.

T 1117 – Otomatik Büyüyen Dosyalar: Bir veritabanının dosyalarının(ndf) eşit şekilde büyütülmesini sağlar. Örneğin, bir veritabanının bir dosyası dolup diğerleri boş kalıyorsa, bu bayrak etkinleştirildiğinde tüm dosyalar eşit şekilde büyütülür.

T 1118 – Tek Dosya Grubu Ataması: Tempdb’ye paralel veri dosyası oluştururken tek dosya grubu atamasını zorlar. Bu, tempdb performansını artırabilir.

T 2371 – İndex Rebuild Statistikleri: İndex yeniden oluşturması sırasında, önceki index’in istatistiklerinin korunmasını sağlar. Bu, bir index’i yeniden oluştururken performans sorunlarını azaltabilir.

T 4199 – Sorgu Optimizasyonu Düzeltmeleri: Sorgu optimizerindeki düzeltmeleri etkinleştirir ve genellikle performansı artırır.

T 3226 – Backup Log Yok Sayılması: Bu bayrak, yedekleme işlemi sırasında, log yedekleme işlemlerinin LDF yazılmasını önler. Bu, yedekleme işlemleri sırasında LDF(Log data file)’ in gereksiz şekilde büyümesini önleyebilir.

T 1448 – Replicasyon Log Reader: Subscription yapılan sunucu ile alınan logların her zaman Synchronization durumdan Synchronized eşit olmasını sağlar.

T 174 – Sogu Planlarının Depolanma Sayısı: SQL Server ‘da oluşan planların sayısı default değeri 160.000 tutar ve gelen yeni bir sorgu planı için en eski olanı siler bu Trace Flag bu sayıyı 4 katına 650.000 değerine çıkarır.

T 902 – Sorgu Optimizasyonları: 2014 ve sonraki sürümlerde sorgu optimizisyonu değiştirilmiştir. Bağzı durumlarda performans sorunlarına neden olmaktadır. Bu sebepten dolayı eski sürüm ile uyumlu hale getirmeye yarar.

T 7745 – SQL Server Kapandığında Sorguları Diske yazma: SQL Server kapandığında çalışan sorguların veri kaybı olmaması için sorguların diske yazılmasını sağlar.

T 7752 – Veri tabanı ayağa kalkmasının tamamlanmasını beklememek:  Veri tabanını yükleme esnasında tamamamen yüklenmesini beklememek için kullanılan Trace Flagdır.

T 1222 – SQL Server ‘da Deadlock’ların Hakkında bilgi: Sisteminizde yaşanılan Deadlock hakkında XML Formatında Transaction log’a yazar. Deadlock’ ları engellemez.

 

Bu makalede, SQL Server Trace Flagların ne olduğunu, nasıl kullanıldığını ve yaygın senaryolarda nasıl faydalı olabileceğini inceledik. Trace Flag seçimi ve uygulanması, SQL Server yönetiminde önemli bir beceri ve anlayış gerektirir. Ancak doğru şekilde kullanıldığında, bu Trace Flagler performansı artırma ve hata ayıklama süreçlerini iyileştirme potansiyeli büyüktür.

 

Benzer Yazılar

SQL SERVER RESOURCE GOVERNOR

SQL Server 5 gün önce

Bu makalede Sql Server ’da kaynak kullanımımız için farklı seçenekler ve değerlendirme fırsatları sunan Resource Governor yakından kullanım örneklerini göreceğiz. Günümüzde sistemlerimizin verimli kaynak kullanımı ve buna yönelik olarak çalışmalar oldukça önemli bir durumdadır. Bu kapsamda Veri tabanı sistemlerimizin kurulu olduğu sunucu kaynaklarımızdan maksimum faydayı ve verimi almaya çalışmaktayız. Bu kapsamda SQL Server veri tabanlarımızda kaynak (CPU, bellek, disk ve I/O) kullanımını yönetmek ve optimize etmek için kullanılan güçlü bir araç olan Resource Governor bizlere 2008 ve sonraki sürümlerde sunmaktadır. Bu sayede kritik iş yüklerinizin ihtiyaç duyduğu kaynaklara erişmesini sağlayabilir ve performansınızı optimize ederek veri tabanlarına gelebilecek aşırı yükü önlemiş olabilirsiniz. Biraz çalışma prensibinden bahsedelim, Resource Governor veri tabanı nesne ve sorgularında bir öncelik atayarak çalışır. Bunu şu şekilde örneklendirebiliriz sunucuya gelen uygulama sorguları var bunu servis kullanıcısı ile, raporlama sorguları var bunu raporlama kullanıcısı ile ve ilgili uygulamanın loglarının sorgulamasını yapan log kullanıcısı bulunmaktadır bu yapıda en öncelikli sorgularımız […]

SQL Server AlwaysON “Not Synchronizing / Suspect”

SQL Server 2 hafta önce

“Not Synchronizing / Suspect” SQL Serer AlwaysOn mimarisinde bulunan sunucuların veri tabanlarında bu sorunun meydana gelmesinde birçok neden vardır. Bunlar; Ağ Sorunları: AlwaysOn mimarisinde, ana sunucu ve ikincil sunucular arasında veri senkronizasyonu için gerekli olan ağ bağlantısı sorunları. Disk Sorunları: Veri tabanı dosyalarının tutulduğu disklerde disk doluluğu, disk arızası gibi disk sorunlarının meydana gelebilir. Log Dosyası Sorunları: Veri tabanlarının log dosyalarının bozulması veya dolması durumu. Bekleyen İşlemler: Veri tabanında bekleyen bir işlem (örneğin, büyük bir sorgu veya bir yedekleme işlemi) diğer işlemleri engellemesi durumunda. Veri tabanı Bozulması: Veri tabanı dosyalarında veya yapılarında bozulma meydana gelmesi. Bakım Yetersizliği: Düzenli yedekleme, veri tabanı kurtarma işlemleri vb. gibi veri tabanı yönetimi için gerekli düzenli bakımların yapılmaması. Bu gibi durumlarda, genellikle SQL Server hata günlüklerine bakarak daha spesifik bir sorun tespit edilebilir ve ardından uygun çözüm yolları belirlenebilir. Biz bu makalede disk sorunu ile karşılaşacağımız için disk sorununun tespiti ve çözümü üzerine gideceğiz. Karşılaşabileceğimiz […]

Database’yi AG eklerken Status “Password Required”

SQL Server 2 hafta önce

Bir veri tabanını Always On Availability Group’a eklerken karşılaşmış olduğum “Password Required” durumunda yapabileceğiniz bir kaç adımdan bahsedeceğim. Öncelikle bu durumla şifrelenmiş veri tabanını  Always On Availability Group’a eklerken karşılaşırsınız. Hangi veri tabanlarında şifreleme olduğunu aşağıda script yardımıyla görebilirsiniz. USE MASTER SELECT * FROM sys.symmetric_keys Şimdi gelelim veri tabanımızı Always On Availability Group’a eklemeye Yukarıda gördüğünüz yere veri tabanını uygulamış olduğunuz şifreyi girmeniz daha sonrasında refresh dediğinizde ilerlemenize izin verecektir. Peki şifremizi unuttuysak neler yapabiliriz 🙂 1- Master key’i drop edebiliriz. USE [DENEMEDB] GO DROP MASTER KEY 2- Master key şifresini değiştirebiliriz. ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD=’YENİ_ŞİFRENİZ’ Her adımı denediniz fakat aşağıdaki gibi bir hata alıyorsanız ne yapmanız gerek? Msg 15329, Level 16, State 2, Line 1 The current master key cannot be decrypted. If this is a database master key, you should attempt to open it in the session before performing this operation. The FORCE option […]

0 Yorum

Yorum Yaz

Rastgele