ÇözümPark'a hoş geldiniz. Oturum Aç | Üye Ol
 
Ana Sayfa Makale Video Forum Resimler Dosyalar Etkinlik Hizmetlerimiz Biz Kimiz

SQL Server

SQL Server 2017 Database Engine Yenilikleri

Sql Server 2017, 2 Ekim tarihinde genel olarak kullanılabilir sürümü çıkmış oldu. Sql Server 2017 ile birlikte gelen Database Engine tarafındaki yeni özelliklere bu makalede inceleyeceğiz. Sql Server 2008 R2 sürümünden sonra, her iki yılda yeni sürüm çıkartılmasına karar verilmişti. Sql Server 2012, 2014 ve 2016 ikişer yıl arayla çıkmıştı.

Sql Server 2017 ise, 2016’dan 1 yıl sonra çıkınca, ara versiyon mu diye sorular sorulmaya başlandı. Öncelik olarak bu sürümün çıkma sebebi için Sql on Linux diyebiliriz. Linux üzerinde çalışan Sql Server versiyonu için Microsoft acele ederek 1 yıl sonra Sql Server 2017’yi çıkarmış oldu. Sadece Linux üzerinde çalışan Sql Server’ın yeni özellikleri arasında, Sql Server 2016’da duyurulan yeni özelliklere de eklemeler yaptı.

Database Engine tarafındaki yenilikleri incelemeye başlayalım;

Linux Desteği

 

Linux ve Docker desteklenen ilk Sql Server versiyonu olarak karşımıza çıkıyor, desteklenen Linux ve Docker versiyonları şu şekildedir.

-       Red Hat Enterprise Linux 7.3 or 7.4 Workstation, Server, and Desktop

-       SUSE Enterprise Linux Server v12 SP2

-       Ubuntu 16.04LTS

-       Docker Engine 1.8+ on Windows, Mac, or Linux

Linux tarafında desteklenmeyen Database Engine özellik ve servisleri:

-       Transactional replication

-       Merge replication

-       Stretch DB

-       Polybase

-       3rd-party bağlantılardan gelen distributed sorgular

-       System extended stored procedures (XP_CMDSHELL, v.b.)

-       Filetable, FILESTREAM

-       EXTERNAL_ACCESS veya UNSAFE permission set ile yapılan CLR assemblieleri

-       Buffer Pool Extension

Sql Server Agent tarafında desteklenmeyen özellikler:

-       CmdExec, PowerShell, Queue Reader, SSIS, SSAS, SSRS (bu servis veya özelliklerin alt yapıları)

-       Alertler

-       Log Reader Agent

-       Change Data Capture

-       Managed Backup

Security tarafında desteklenmeyen özellikler:

-       Extensible Key Management

-       Linked Serverlar için AD Authentication

-       Availability Groups (AGs) için AD Authentication

-       3rd party AD araçları (Centrify, Vintela, Powerbroker)

Servisler tarafında desteklenmeyenler:

-       SQL Server Browser

-       SQL Server R services

-       StreamInsight

-       Analysis Services

-       Reporting Services

-       Data Quality Services

-       Master Data Services

High Availability tarafında ise Database Mirroring desteklenmemektedir.

In-Memory OLTP Yenilikleri

İlk olarak Sql Server 2014 ile çıkan In-Memory tablolar, aradan geçen 3 yılın ardından yeni özellikleri ile Sql Server 2017 ile gelmiş oldu. Stored procedurelerde ve tablolardaki birçok kısıtlamada bu versiyonda kalkmış oldu. Bu sayede uygulamaların daha kolay In_memory OLTP’ye geçişleri sağlanmış olacak.

·       Sekiz adet indeks sınırlaması kalkmış oldu

·       Transaction log redo işlemi, memory optimize tablolarda artık paralel bir şekilde çalışacak, bu özellik sayesinde daha hızlı recovery zamanlarına ulaşılacak ve Always On availability group’un throughput’u sürekli olarak yüksek seviyede kalacak.

·       Memory optimize Nonclustered indekslerin rebuild operasyonları restore yapılırken daha iyi hale getirildi. Böylelikle database recovery zamanları, nonclustered indeksler kullanıldığında hızlanmış oldu. Genel anlamdan database recovery zamanlarının iyileştiğini söyleyebiliriz.

·       Memory-optimized tablolar için sistem prosedürü olan sp_spaceused desteklenir hale getirildi, bu sp ile inmemory tablolardaki alan durumunu görebileceğiz.

·       Sp_rename prosedürü de desteklenir hale getirildi.

·       ALTER TABLE komutu birçok durumda daha iyi hale getirildi.

·       Azure Storage üzerinde Memory-optimized filegrouplar artık konumlandırabilecek.

·       Expressionlarda ek olarak, CROSS APPLY ve TOP(N) WITH TIES eklendi.

·       JSON komutları içinde full destek gelmiş oldu.

·       Real-time operational analytics ve hybrid transactional-analytical processing ile birlikte yeni bir yapıya geçilmiş oldu, real-time analytic ile in-memory tabloların yetenekleri birleşerek, çok daha hızlı bir transactional / analytical procesing işlemler yapılabilir hale geldi. Tek bir platform üzerinden yüksek seviyedeki iş yüklerini, en iyi performansla elde edebileceğiz.

clip_image002

SS2017 – 1

T-SQL Tarafındaki Yenilikler

·       SELECT INTO …… ON FILEGROUP

o   Select into komutunu istenen filegroup üzerinde çalıştırabilir hale gedi.

·       CONCAT_WS

o   Concat gibi çalışıyor, istenilen yerden sepatör ile ayrılabilir hale geldi. WS = With Separator

·       TRANSLATE

o   Daha çok Replace komutunun yerine kullanılabilir, örnek olarak tek bir hamlede parantez açma ve kapama işlemi yapılabilmektedir.

·       TRIM

o   Boşluk karakterlerini kaldırmak için kullanılır.

·       STRING_AGG

o   String ifadelerin birleştirilmesinde kullanılır.

·       OPENROWSET

o   OLE DB data sourceları için daha fazla destek getirilmiştir. Bulk insert operasyonlarında yenilikler eklenmiştir.

 

Administration Tarafındaki Yenilikler

·       Yeni Compability Level

o   Compability level 140 bu versiyonla gelmiş oldu, yeni bir database oluşturduğumuzda otomatik olarak level 140 olacak. Azıre Sql Databaselerindeki bir çok özellik ile aynı özelliklere sahip olacak.

·       Yedekleme

o   Differential ve Log backuplarda yeni özellikler geldi. Yeni gelen alanlar ile modified_extent_page_count ve sys.dm_db_file_space_usage ile full ve differential backup almakta yön verecektir. Differential backuplar için threshold değeri verilebilecek hale gelmiştir.

o   Log backuplar için ise, iki yeni DMV eklenmiştir. sys.dm_db_log_info ve sys.dm_db_log_stats ile log backupların büyüme boyutları tahmin edilebilir hale getirilmiştir. Virtual log file ların boyutları ve büyüme oranları hakkında da bilgi vermektedir.

TempDb Yapılandırması

Tempdb yapılandırması, Sql Server 2016’nın kurulumuna yeni bir özellik olarak getirilmişti. 2016 nın kurulumunda her bir tempdb için en fazla 1 GB verilebiliyordu. Sql Server 2017 de bu boyut 256 GB a kadar yükseltilmiştir.

Temporal Tables

Temporal tablelar ilk olarak Sql Server2016’da çıktığında, eksik olan iki önemli özellik, foreing key constraint ve retention policy özellikleri, bu versiyonla birlikte gelmiştir. Temporal tablelardaki bir değişiklik bu policyler ile daha kolay takip edilebilir hale gelmiştir.

Availability Groups

Always On tarafında birçok yenilik bu versiyonla gelmiş oldu. Windows ve Linux sunucuları mixed bir şekilde ve Windows Failover Cluster kurmadan Always On dahil edilebilir hale gelmiştir.

Read-only iş yükleri için, 8 adet secondary sunucu ile iş yükleri dağıtılabilir hale gelmiştir. Bu yapıda, farklı operating systemleri desteklenmektedir. Failover Cluster olmadan da bu yapı kurulabilmektedir.

clip_image004

SS2017 – 2

Online Index Rebuild Devam Edilebilirlik Özelliği

Online index rebuild tarafında en büyük sıkıntı, gece başlayan index rebuild joblarının ertesi güne sarkması ve sıkıntılara yol açmasıydı. Yeni gelen bu özellik ile index rebuild pause edilerek, daha sonra kaldığı yerden devam edebilme özelliği gelmiştir. Resumable, Abort ve pause komutları ile indeks rebuild işlemine devam edilebilirlik özelliği katabilir, durdurabilir veya iptal edebilirsiniz.

Performans Tarafındaki Yenilikler

·       Session bazında execution planları toplayan yeni bir DMV yayınlandı. sys.dm_exec_query_statistics_xml DMV si ile sessionID bazında execution planlar artık toplanabilmektedir. Query planları xml linki olarak göstermektedir. ,

·       Execution plan properties özelliklerine Optimizer Stats Usage bölümü eklendi, bu bölümde ModificationCount ve SamplingPercent gibi performans bilgileri veren alanlar gelmiş oldu.

·       Bir veritabanındaki tablo veya indeksin bilgilerine yeni eklenen histgoram DMV’si ile erişilebilir hale getirildi. Yeni DMV’nin adı sys.dm_db_stats_histogram.

Adaptive Query Processing

Adaptive query Processing özelliği ile sorgu performansını arttırmak için yenilikler gelmiştir. Her sorgu için query optimization process’i mümkün olan maliyeti en düşük execution planı seçer, query optimizer da bu planı kullanarak sorguyu çalıştırır. Bazı nedenlerden dolayı, her zaman seçilen plan doğru olarak plan olmayabilir. Tahmini satır sayısı yanlış olan planlarda bu sıkça karşımıza çıkmaktadır. Cardinality estimationların yanlış olmasına sebebiyet verir. Bu tarz query processing hatalarının önüne geçmek için, Sql Server 2017’de Adaptive Query Processing özelliği gelmiştir. Adaptive query processing’i etkinleştirmek için, veritabanı compability mode’unu 140 çekmeniz yeterlidir. Batch mode memory grant feedback, Batch mode adaptive joins ve Interleaved execution olarak 3 özellikten oluşur, bu özelliklere farklı bir makalede daha detaylı olarak inceleyeceğiz.

Automatic Tuning

Bu özellikte, Sql Server query planlarının geçmişlerine bakarak en iyi planı seçer ve force plan yaparak, sorguda bu seçtiği planı kullanmaya başlar. Bu değişiklikleri izlemek için, yeni bir DMV olan sys.dm_db_tuning_recommendations dan izlenebilmektedir.

Sql Server 2017 Database Engine tarafındaki yenilikleri incelemiş olduk, bu makalede anlatılan konuları daha sonra ayrı ayrı detaylı makalelerde anlatacağız. Bu makalede sizlere genel bir çerçevede Sql Server 2017 dünyasında yaşanan gelişmeleri aktarmaya çalıştım.

 

 

 

Yorumlar

 

Hakan UZUNER

Eline sağlık Yavuz.

Kasım 12, 2017 21:51
Kimliksiz yorumlar seçilemez kılınmış durumdadır.

Yazar: Yavuz Filizlibay

http://www.yavuzfilizlibay.com
 

Hızlı aktarma

Etiketler