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 RIGHT-LEFT PARTITION

SQL Server 5 gün önce

SQL Server’da partitioning, büyük veritabanı tablolarını daha yönetilebilir ve performanslı hale getirmek amacıyla kullanılan bir tekniktir. Bu teknik, tablonun verilerini fiziksel olarak değil, mantıksal olarak parçalara ayırır. Veriler, belirli bir partition function ve partition scheme kullanılarak farklı bölümlere yönlendirilir. Partitioning, özellikle büyük veri kümeleriyle çalışan veri tabanlarında sorgu performansını artırır ve veri yönetimini kolaylaştırır. Partition Function ve Partition Scheme nedir? Partition Function: Verilerin hangi kriterlere göre bölüneceğini belirler. Örneğin, bir tarih aralığına göre verileri ayırmak. Partition Scheme: Verilerin hangi filegroup’larda depolanacağını belirler.   Örnek olarak Range LEFT ve Range RIGHT olmak üzere iki ayrı tabloda partition nasıl yapılır sizlere göstereceğim. İlk olarak Range LEFT olan partition yapısından başlayacağım. Öncelikle Veri tabanıma yeni filegroup ve file ekliyorum Şimdi sıra FUNCTION ve SCHEME oluşturmakta ben tablomu yıllık olarak partition yaptım sizler ihtiyaçlarınız doğrultusunda aylık,günlük vs yapabilirsiniz. LEFT partition dediğimiz olay vermiş olduğunuz tarih aralığına eşit bir veri geldiğinde bu veriyi solundaki partition […]

Veritabanı Recovery Pending Durumu ve Düzeltme Seçenekleri

SQL Server 2 hafta önce

İçindekilerVeritabanı Recovery Pending Durumu Nedir?Veritabanı Neden Recover Pending Duruma Düşer?Recovery Pending Durumu Nasıl Çözülür?SonuçKaynaklarVeritabanı Recovery Pending Durumu Nedir? SQL Server’da veritabanları bazı nedenlere bağlı olarak “Recovery Pending” (Kurtarma Bekleme)  moduna geçebilir. Veritabanın düzgün bir şekilde kapatılmaması, eksik veya bozuk log dosyaları, disk depolama sorunları, sistemde yaşanan anormal şekilde çökmeler veya MS SQL Server’daki hatalar bu duruma sebep olabilir. Recovery durumu, aslında veritabanını tekrar kullanılabilir hale getirmek için bir kurtarma işlemi yürüttüğünü ifade eder ve üç aşamadan oluşur; Analysis (Analiz): Transaction log incelemesi yapılması ve işlemlerin tamamlanma (Commit) durumunun kontrol edilmesi, Redo (Yeniden İşleme): Tamamlanmış (Commit) ancak henüz diske yazılamamış olan işlemlerin yeniden işlenmesi, Undo (Geri Alma): Başlamış (Begin) ancak tamamlanmamış (Commit) işlemlerin  geri alınmasıdır.   Veritabanı Neden Recover Pending Duruma Düşer? SQL Server Restart Süreci SQL Server servisi restart edildiğinde üzerinde bulunan tüm veritabanları tutarlılığın sağlanması için otomatik olarak recovery moduna girer ve redo/undo işlemleri sürecince devam eder. Ani Sistem […]

SQL Server DMV ve DMF – 6

SQL Server 2 hafta önce

Bu yazımızda DMV ve DMF Serimizin 6.sına devam edeceğiz. Bir önceki seride Memory’ye ilişkin DMV ve DMF’leri ele almıştık. Bu yazıda Memory konusunda devam edeceğiz. SQL server’da Memory kavramı en önemli kavramlardan biridir. Özellikle tüm transaction işlemlerinin önce Buffer sonra disk üzerinden devam ettiğini düşünürsek buffer’ın oynadığı kritik rolü daha iyi anlayabiliriz. Bu yazıda Memory’nin durumunu ve monitör edilmesine bakacağız. Özellikle Performans sorunlarında memory konusunda sorun yaşandığı durumda nasıl okumak gerektiği önemli rol oynamaktadır. Hangi database’de, hangi tablo’da sorun yaşandığına ilişkin bilgilere bu paylaşım sonrasında görebileceğiz. SQL Server’ın Memory kullanım durumunu incelediğimde; select physical_memory_in_use_kb/1048576.0 AS ‘physical_memory_in_use (GB)’, locked_page_allocations_kb/1048576.0 AS ‘locked_page_allocations (GB)’, virtual_address_space_committed_kb/1048576.0 AS ‘virtual_address_space_committed (GB)’, available_commit_limit_kb/1048576.0 AS ‘available_commit_limit (GB)’, page_fault_count as ‘page_fault_count’ from  sys.dm_os_process_memory; Görsel – 1   Physical_memory_in_use: Kullanımda olan Fiziksel Memory miktarını gösterir. locked_page_allocations: Memory’de lock’lanmış olan Page’lerin miktarını belirtir. virtual_address_space_contained: SQL Server VAS(Virtual Adress Space) için ayrılan miktarı belirtir. available_commit_limit: SQL Server tarafından kullanılabilecek Memory Miktarını gösterir. […]

0 Yorum

Yorum Yaz

Rastgele