SQL Server 2016 Query Store

Query Store, sorguların, query plan’ların ve çalışma zamanı istatistiklerinin geçmişini saklar. Böylece query plan değişikliği nedeniyle oluşan sorunları kolay bir şekilde fark edebiliriz. Bazı durumlarda SQL Server tarafından Execution Plan’lar silinir ve tekrar hesaplanır, Execution Plan’ın kullandığı istatistik objesinin güncellenmesi gerçekleşebilir, Yeni bir index oluşturulmuş olabilir, Execution Plan’ın kullandığı indeksi silmesi yahut güncellemesi olabilir, SQL Server’ın restart edilmesi olabilir. vs.. vs… İşte bu saydığımız olası sebeplerden dolayı optimum Execution Plan’ımızı kaybetmemeli, bir yerde kaydedebilmeli ve yeri ve zamanı gelince kullanabilmeliyiz. Bir sorguya ait query plan zaman içersinde bir çok nedenle değişir. Bazı durumlarda bu değişiklik sorgunun yavaş çalışmasına neden olur. Query Store özelliği gelmeden önce sorgunun yavaş çalışmaya başlamasının sebebinin query plan değişikliğinden dolayı olduğunu bulmak zor bir işti. Query Store ile artık bu işlem çok basit bir hale geldi. SQL Server 2017 ile gelen yeni dmw’nin yardımıyla aşağıdaki gibi hangi sorgu hangi query plan hangi bekleme tiplerini yaşıyor görebiliriz.
Share:

SQL Server TempDB

Sistem veritabanlarından olan ve her instance için bir tane olan TempDb'de aşağıdaki veriler tutulur. Cursor, Temp Table , Join , Aggregation ve INSTEAD OF Trigger gibi objeler Read Commited Snapshot Isolation ,Snapshot Isolation ve Online Index işleminde tutulan row version bilgileri Sorting, Hash Matches ve spools işlemleri için oluşturulan tablolar XML variables ve LOB kullanımında oluşturulan sorgular Diskler yüksek oranda I/O yapacağı için hızlı bir I/O sistemi üzerine konulması tavsiye edilir. Bu disklerin yapılandırması stripping olması önerilmektedir. Ayrıca Tempdb veritabanı diğer kullanıcı veritabanlarından farklı alanlar üzerine konulmalıdır ve tempdb data dosyaları ve log dosyalarıda bir birinden farklı disklere konulmalıdır. Bu sayede yüksek I/O elde ederek maksimum performans elde etmiş oluruz.
Share:

SQL SERVER Execution Plan Incelemesi

Execution plan en basit ifadesiyle Query Optimizer tarafından hesaplanan ve bir sorgunun en ideal şekilde çalışması için bize önerilen en optimum yoldur. Diğer bir ifadeyle bir Execution plan bize bir sorgunun çağrıldığında nasıl çalışacağını gösterir. Hangi indexleri oluşturmamız gerektiğine missing indexlerin tespitine bu incelemeyi yaparak bakabiliriz.
Share:

SQL Server 2016 In-Memory

1-) In Memory OLTP
In Memory OLTP SQL Server 2014 ile birlikte gelen bir özelliktir. Bu özellik ile verilerimizi artık memory’de tutabiliyoruz.Tabi tüm verimizi memory’de tutmamız çoğunlukla olası değildir. Çok yoğun transaction alan tablolar için ya da çok hızlı cevap almak istediğimzi tablolar için bu özelliği kullanabiliriz. In Memory OLTP ile ilgili karşımıza gelen ilk özellik memory’de tutulan tablolar olarak bilinen memory optimized table’lardır. Memory optimized table'lar SQL server 2017' de daha stabil ve daha sorunsuz çalışmaktadır.
Bu teknoloji sayesinde INSERT, UPDATE, DELETE işlemlerinde 30 kata varan performans elde etmek mümkün oldu. SELECT performansında da dikkat çekici bir artış sağlıyor. Ancak SELECT performansını asıl arttıran In-Memory DW başlığı ile gelen ColumnStore indexler olmuştur. Bu indexlerin sunduğu performans artışı ise yaklaşık olarak 100 kattır.
Share: