SQL Server 2022 ile Tanışın: Microsoft Ignite’ta Duyurulan İlk 3 Yeni Özellik
Joey D’Antoni Ignite izlenimlerini içeren bu yazısı, aslına uygun olarak Türkçeye çevrilme çalışması yapılmıştır.
Microsoft, salı sabahı Başkan Yardımcısı Scott Guthrie’nin Ignite 2021’deki açılış konuşması sırasında SQL Server 2022’yi tanıttı. Ürün yalnızca özel gösterim aşamasında olduğundan, sürümün tüm ayrıntıları henüz herkese açılmış değil. Ancak Microsoft, baş program yönetisi olan Asad Khan oturumu sırasında yeni sürümün bazı heyecan verici ayrıntılarını paylaştı.
Tahmin edebileceğiniz gibi, Azure özelliklerini destekleyen birçok yenilik vardı. Azure’un ötesinde, veritabanı motorunun temel performans özelliklerinde büyük iyileştirmeler var. İşte en dikkate değer yeni özelliklerin özetini sizinle paylaşıyoruz. (Ayrıca, bu özellikler SQL Server 2022 halka açık gösterime geçtiğinde kullanıma tamamıyla sunulacak olan yeni geliştirilen özelliklerin tam listesidir.)
1. Managed Instance’a Giriş ve Çıkış
Azure SQL Managed Instance, on-premise veya bulut tabanlı sanal makinelerden PaaS’ye geçişi basitleştirmek için oluşturulmuş bir platform-as-a-service (PaaS) hizmetidir. Bu hizmet, Azure SQL Veritabanından daha çok SQL Server ürününe daha yakın bir özelliktir. Ancak, bu hizmetle ilgili hâlâ aşılması gereken birkaç şey mevcut.
Yakın zamana kadar, Migration işlemlerini çok sınırlı bir downtime süresiyle yapmak, database migration hizmetlerinin (DMS) oldukça karmaşık bir şekilde kurgulanmasını gerektiriyordu. Kısa süre önce Microsoft, geçiş için gereken downtime kalma süresini birkaç dakikaya düşüren basitleştirilmiş bir transaction log shipping mekanizması yeteneğinden bahsetmişti. Ancak, başka bir engel daha bulunmaktaydı: Managed Instance’a geçtikten sonra performans ya da maliyet şikayetlerinden dolayı geriye tekrar migrate etmek zorunda kaldığınızda, veritabanlarınızı tekrar SQL Server’a taşıyamıyordunuz.
Ignite’ta Microsoft bu sorunu her iki cephede de ele aldı. SQL Server 2022 sürümünde neredeyse sıfır kesintili veritabanı geçişlerini mümkün kılacak dağıtık availability gruplarının kullanımı yoluyla Managed Instance’a geçiş mümkün kılınmıştır. Ayrıca, veritabanlarınızı database restore aracılığıyla on-premise’e tekrar geri yükleyebileceksiniz (yalnızca SQL Server 2022 sürümünde mümkündür). Dağıtılmış availability grubu çerçevesi, bir veritabanı veya donanım yükseltmesi sırasında kolay bir failback süreci yürütmeye olanak tanır, bu arada Managed Instance senaryosunda da aynı davranışın desteklenmesini beklerdim.
2. Daha İyi ve Daha Fazla Query Store
SQL Server 2016’da tanıtılan Query Store özelliği, belirli bir sorgu hakkında execution planları ve çalışma zamanı geçmişi hakkında veri toplar. Bu özellik, piyasaya sürülmesinden bu yana her sürümde ustaca geliştirilmiştir, ancak hâlâ göze çarpan bir boşluk var: Always On availability gruplarında bulunan readable secondary veritabanlarının Query Store’a yazma yetkisi yoktu. Teşhis sağlayan bu verilere sahip olunamaması, hem SQL Server hem de Azure SQL Veritabanında readable secondary’lerde hangi sorgu etkinliği olduğunu izlemenin hiçbir yolu olmadığı anlamına geliyordu.
SQL Server 2022’de bu sorun dile getirilerek readable secondary’lerin Query Store’a yazma erişimi sağlanarak bu sorun giderilmiş. Böylelikle secondary replikalarda gerçekleşen aktiviteye şeffaflık sağlanmakta ve daha iyi tuning seçenekleri ortaya çıkmaktadır. Microsoft, Query Store Plan Hints özelliğii SQL Server 2022’ye getirme konusunda herhangi bir açıklama yapmadı, ancak Azure SQL’in SQL Server içerisindeki ortak özellikleri göz önüne alındığında, bu özelliğin son sürümde ortaya çıktığını görmek beni şaşırtmaz.
Query Store özelliği ötesinde, veritabanı optimizer’ında bazı önemli geliştirmeler de yapılmıştır. SQL Server’ın Query Optimizer’ı zamanla daha akıllı hâle getirilmekte ve SQL Server ile ilgili ortak bölümlerdeki performans sorunlarına daha fazla odaklanılmaktadır. Microsoft’un bu başarısının ardında, SQL Server 2017’de eklenen memory grant feedback özelliğinde olduğu gibi, aynı yürütme planının değişiklik yapabilme yeteneğini artırmasıdır. Belirli bir sorgunun sıralama ve birleştirme işlemleri için yeterli belleği yoksa (veya çok fazla bellek alanı gerektiyse), verilen bellek sonraki execution’lar içerisinde ayarlanır.
SQL Server 2022, belirli bir sorgu yürütmesi için nicelik tahminleri ve maksimum paralellik derecesinde (MaxDOP) yapılan değişiklikler de dahil olmak üzere bazı yeni optimizasyonlar sunacak. MaxDOP’u farklı parametre değerleri için değiştirmek büyük bir gelişme. Örneğin, milyonlarca satırı taramak anlamına gelen WHERE yan tümcesinin olduğu bir sorgu, taramayı işlemek için thread ve processlerden büyük ölçüde fayda sağlarken, yalnızca tek bir satır döndüren bir sorgu, paralelliğe gerek duymadan tek bir thread ile işlemi halledebilir.
Ancak bu henüz Microsoft’un SQL Server 2022’nin sorgu yürütme alanında duyurduğu en büyük değişiklik değil.
Veritabanlarıyla birkaç haftadan uzun süredir çalışan herkes aşağıdaki davranışa aşinadır: Bir kullanıcı, genellikle saniyeler içinde çalışan, ancak o an dakikalar veya saatler sürdüğünü bildirir. Bunun en yaygın nedeni, parameter sniffing adı verilen bir davranıştır. Bir sorguyu ilk çalıştırdığınızda, SQL Server, o ilk çalıştırmada ilettiğiniz parametre değerlerine dayanan bir execution plan oluşturur. Bu plan bellekte önbelleğe alınır. Aynı hash değerine sahip ancak çok farklı parametrelere sahip sonraki sorgular için bu plan yetersiz olabilir. Microsoft, parametrelerdeki bir değişikliğin çalışma zamanında önemli bir farkla sonuçlanabileceği bu planlara “parametrelere duyarlı planlar” şeklinde hitap etmektedir. Bu özellik hakkında henüz çok fazla kamuoyu detayı yok ancak bu başarılı olursa, herkesin bu ortak derdine büyük performans kazanımları sağlayabilir.
3. Güvenlik ve Blok Zinciri
Azure SQL Managed Instance müşterilerinin karşılaştığı sorunlardan biri, client uygulamalarını Kerberos kullanan geleneksel Active Directory bağlantılarından, OAuth ve SAML gibi daha fazla protokole dayanan Azure Active Directory kimlik doğrulamasını kullanmaya geçirmek zorunda olmalarıydı. Uygulamanızın sahibi durumundaysanız ve client kütüphanelerini güncelleyebiliyorsanız bu işlem kolaydı, ancak daha az denetime sahip üçüncü taraf uygulamalar için hiç de bu şekilde değil. Microsoft, SQL Server 2022 ile bu geçişi çok daha kolay hale getirmesi beklenen Kerberos kimlik doğrulamasını hayata geçirmiş. Bu konu, Managed Instance hakkında aldığım en yaygın sorulardan birini yanıtlıyor, ve dolayısıyla kesinlikle buna ihtiyaç var.
Azure SQL Veritabanı, immutable dağıtık depolamadaki bir tablonun full transactional geçmişini koruyarak veritabanlarındaki verilere ek bütünlük düzeyleri sağlayabilen dağıtık denetim kaydına sahiptir. Bu konsepti basitleştireyim ve size bir iki Google araması kazandırayım, DBA’nın bile üzerine yazamayacağı bir denetim kaydıdır ve güvenilir bir depolama konumunda saklanır – bu durumda, bir kez write işlemi yapın, birçok Azure Blob Depolamasından read edin. SQL Server 2022, bu denetim kaydı tablolarına sahip olacak. Release döngüsünde ilerlemeye devam ettikçe, onpremise ve Azure VM dağıtımları için yayınlanan uygulama ayrıntılarını görmek ilgi çekici olacaktır.
SQL Server 2022 gelecek vaat eden bir sürüm gibi görünüyor. Azure’u destekleyen (her zaman olduğu gibi) yeni pek çok geliştirme olsa da, SQL Server’ı nerede çalıştırıyor olursanız olun, temel veritabanı motorunda önemli iyileştirmeler de var.
Ignite’ta yapılan bazı Azure duyuruları hakkında daha fazla ayrıntı için bu haftaki diğer sütun yazımı okuyun. Ayrıca, genel kullanıma sunulduğunda SQL Server 2022 hakkında daha fazla ve daha derin bilgi sağlayacağım raporlamayı sabırsızlıkla bekleyin.
Kaynak için tıklayınız.