SQL Server 2008 Yenilikleri

Eyl 06, 2013
  • Yeni Veri Tipleri
  • Kaynak Yönetimi (Resource Governor)
  • Merge (Birleştirme) Deyimi
  • Raporlama Servisleri (Reporting Services)
  • Sıcak İşlemci Ekleme Desteği (Hot Add CPU)
  • Veri Denetimi (Data Auditing)
  • Şeffaf Veri Şifreleme (Transparent Data Encryption)
  • Yedek Şifreleme (Backup Encryption)
  • Veri Sıkıştırma(Data Compression)
  • Management Studio

Yeni Veri Tipleri

Microsoft SQL Server 2008 ile birlikte mevcut tarih veri tiplerine (SmallDateTime, DateTime) ek olarak Date, Time, Datetime2, Datetimeoffset tipleri eklenmekte veFilestream, Geometry, Geography, Hierarchyid, Blob yeni veri tipleri gelmektedir.

  • Filestream (Dosya Akışı): SQL Server içinde dosya bulundurulması istenirse Filestream veri tipi kullanılabilmektedir. Filestream veri tipi kullanıldığı zaman dosya fiziksel olarak dosya sisteminde yer almaya devam ederken, SQL Server aracılığı ile dosyaya erişilebilmekte, dosya içerisinde sorgulamalar yapılabilmektedir. Filestream veri tipini kullanabilmek için dosyaların saklandığı alanın Windows İşletim Sistemi üzerinde NTFS (New Technology File System - Yeni Teknoloji Dosya Sistemi) dosya sistemine sahip olması gerekmektedir.
  • Time (Zaman): Günün saat, dakika, saniye ve salise bilgilerini 24 saat esasında tutar. SQL Server 2008 saliseyi 7 basamaklık hassasiyette tutmaktadır. SQL Server 2005'te bu 3 basamak olarak alınmaktaydı. Time "00:00:00.0000000" ile "23:59:59.9999999" arasında değerler alabilmektedir.



    Time için herhangi bir hassasiyet belirtilmediği için salise kısmını 7 basamak olarak göstermektedir. Eğer Time'ın hassasiyetini 3 basamak olarak göstermek istenirse aşağıdaki gibi yapılabilmektedir.



  • Date (Tarih): Sadece tarihi tutarak içerisinde gün, ay ve yıl bilgilerini barındırmaktadır. Alabileceği değerler "01-01-01" ile "9999-12-31" arasında değişmektedir.
    Date türü için hassasiyet zaten gün ile sınırlı olduğu için ayrıca hassasiyet belirlenememektedir.


     
  • DateTime2 (TarihZaman): Date ve Time veri tiplerinin bir araya gelmesiyle oluşmaktadır. SQL Server 2005 te kullanılan DateTime'dan iki farkı vardır. Bunlardan ilki, salise hanesinin 7 basamak hassasiyetinde tutulması; ikinicisi ise tarih değerinin "01-01-01" ilk değerini alabilmesidir.



  • DateTimeOffSet (TarihZamanGöreliKonum): DateTime2 tipi ile aynı özellikleri taşımanın yanı sıra tarih ve zamanın dünya üzerindeki hangi coğrafi zaman dilimi esas alınarak verildiğini de tutabilmektedir.

Kaynak Yönetimi (Resource Governor)

SQL 2008’de yeni bir özellik olan kaynak düzenleyici, kullanıcılar veya bir kullanıcı grubu tarafından tüketilen kaynakları sınırlamak için geliştirilmiştir. Kaynak Yönetimi, kullanıcıların veya kullanıcı gruplarının SQL Server kaynaklarından hangi düzeyde yararlanabileceklerinin belirlenebileceği bir özelliktir. Yani kullanıcıların sunucu kaynaklarının ne kadarını kullanabileceklerini bağlantı bazlı sınırlandırabilmektedir. CPU (Central Processing Unit - Merkez İşlem Birimi) bant genişlikleri, sorgu işletim zamanları, zaman aşımları ve atıl kalan zamanlar kaynak düzenleyicisi tarafından izlenebilmektedir. Eğer belirlenmiş bir kaynak kullanım eşiğine ulaşıldıysa, sistem buna bağlı olarak bir olay tetikleyebilmekte veya bir işlemi durdurabilmektedir.

Birleştirme (Merge) Deyimi

Özellikle Extract (Çıkarmak), Transform (Dönüştürmek) ve Load (Yüklemek) işlemlerini kolaylaştıran komutlardan birisidir. Bir tablodan diğer tabloya veri kopyalarken, hedef tabloda verilen kriterlere uygun kayıtların olup olmadığına bakmakta, kriterlere uygun kayıt varsa Update (Güncelleme) veya istenirse Delete (Silme) ile kaydı güncellemekte, eğer kayıt yoksa kaynak tablodan verileri alarak hedef tabloda Insert (Ekleme) işlemi yapılmaktadır. Bütün bu işlemler merge deyimi ile tek bir komutta yapılabilmektedir.

Örneğin "calisanlar" tablosundaki bazı kolonların "maaslar" tablosuna kopyalanması ve "maaslar" tablosunda "maas"ların güncellenmesi istenmektedir. "maaslar" tablosundaki Constraint (Kısıt) (örneğin "calisan_id" birincil anahtar) ve/veya Trigger (Tetikleyici) yüzünden aynı "calisan_id"ye ait ikinci bir kayıt "maaslar" tablosuna kopyalanamamaktadır. Bu yüzden varolan kayıtlar güncellenmeli, olmayanlar ise eklenmelidir. Bu işlem için aşağıda yazılan Merge komutu yeterli olacaktır.

MERGE INTO maaslar m
USING (SELECT * FROM calisanlar) c
ON (m.calisan_id = c.calisan_id)
WHEN MATCHED THEN
UPDATE SET m.maas = c.maas
WHEN NOT MATCHED THEN
INSERT VALUES(c.calisan_id, c.maas);

Merge ile aynı zamanda Delete işlemi de yapılabilmektedir. Bir önceki işlemde, "calisanlar" tablosunda "maas"ı "0" olan kayıtların "maaslar" tablosundan silinmesi, Delete'in, Merge komutuna eklenmesi ile mümkündür.

MERGE INTO maaslar m
USING (SELECT * FROM calisanlar) c
ON (m.calisan_id = c.calisan_id)
WHEN MATCHED THEN
UPDATE SET m.maas = c.maas
DELETE WHERE c.maas = 0
WHEN NOT MATCHED THEN
INSERT VALUES(c.calisan_id, c.maas);

Raporlama Servisleri (Reporting Services)

SQL Server 2005'de hazırlanan bir raporu yayınlamak için IIS gerekirken, SQL Server 2008'de bu zorunluluk ortadan kaldırılmıştır. SQL Server 2008 ile raporlama servisinde "tablix" adı verilen yeni bir rapor biçimi gelmektedir. "tablix", raporlama servislerinde bulunan "tablo" ve "matrix" raporlar birleştirilerek oluşturulmuştur.

Sıcak İşlemci Ekleme (Hot Add CPU Desteği)

Sunucu, donanımı destekliyorsa sunucuya yeni işlemci ekleme, var olan işlemciyi değiştirme gibi işlemleri SQL Server 2008'i yeniden başlatmaya ihtiyaç duyulmadan yapılabilmektedir. Bu sayede sistemin kapalı olduğu zaman dilimi içerisindeki zarardan da kurtarılmaktadır.

Veri Denetimi (Data Auditing)

SQL Server 2008 ile istenirse veriler üzerinde yapılan değişiklikler takip edilebilmektedir. Yani log (günlük) işlemi yapabilmektedir. İstenilen tablolar üzerinde yapılan değişiklikler veya silme işlemleri SQL Server'ın takip etmesi ve değişiklik yapılan kayıtların ayrı bir tabloya yazılması sağlanabilmektedir. Bu tür tablolara changed table (değişmiş tablo) adı verilmektedir. Bu özellik varsayılan olarak kapalı gelmekte ve değişikliklerin izlemesi istenen tablolarda bu özelliğin açılması gerekmektedir.
Ayrıca SQL Server 2005’te mevcut olan denetim imkânlarının yanı sıra, SQL Server 2008 ile beraber, denetim standartları belirlenerek, denetim log işlemlerinin Windows Application'daki log dosyalarında veya Windows Security'daki log dosyalarında tutulması sağlanabilmektedir.
 
Şeffaf Veri Şifreleme (Transparent Data Encryption)

SQL Server 2008'de bütün bir veritabanının, verilerin ya da veritabanında yapılan işlerin kayıt bilgilerinin şifrelenebilmesini sağlayan bir yapı ile karşılaşılmaktadır. Uygulamalarda hiç değişiklik yapmadan sadece veritabanı yapılandırılması ile diskte verilerin şifreli olarak bulunması sağlanabilmektedir. SQL 2008’ de tüm veri tabanı SQL motoru tarafından şifrelenebilmektedir. Bu metot tüm veriyi, kayıt dosyalarını, tabloları ve indexleri şifrelemektedir. Uygulamalar için ise programsal bir değişiklik gerekmeden bu şifreleme yöntemi kullanılabilmektedir.

ALTER DATABASE VeriTabaniAdi SET ENCRYPTION [ON OFF]

Şeklinde şifreleme yapabilmekte ya da kaldırılabilmektedir.

Yedek Şifreleme (Backup Encryption)

Sadece veritabanını ya da verileri değil, veritabanından alınan yedeklerin de şifrelenmesine olanak sağlamaktadır. Bu şekilde alınan yedeklerin izinsiz kullanımından oluşabilecek bir güvenlik açığı için de önceden önlem alınmış olunmaktadır.

Veri Sıkıştırma (Data Compression)

Veri sıkıştırma, kaydedilen bilgilerin bellekte daha az yer kaplamasını sağlayarak yapılan girdi-çıktı işlemlerini azaltmaktadır. Sıkıştırma işlemi sırasında işlemcilere bir miktar yük binmektedir. Fakat girdi-çıktı işlemleri sonucunda elde edilen getirilerin toplam performans üzerindeki artısı daha fazladır. Küçük dosyalar halinde yedekler saklanarak, yedekleme süreleri azaltılmaktadır. Veri ambarlarındaki Fact Table (Gerçek Tablo)'ın yani esas verinin bulunduğu tabloların boyutlarını azaltmak veri sıkıştırmadaki asıl amaçtır.
SQL 2008 de veri sıkıştırma avantajları aşağıdaki gibi sıralanabilmektedir:

  • Girdi-çıktı işlemleri azaldığı için sorgulama süreleri azalmakta, performans artmaktadır.
  • Veri ambarlarında, gerçek tablolarda yedi kata kadar sıkıştırma oranı sağlanmaktadır.
  • Veri ve indexler için kullanılabilmektedir.
  • SQL Server'ın diğer özellikleri ile birlikte de kullanılabilmektedir. 
  • Veri sıkıştırma işlemi CPU için fazladan bir yük getirse de girdi-çıktı işlemlerini azalttığı için genel sistem performansına artı olarak yansımaktadır.

Management Studio

SQL Server'ın yönetim aracı olan Management Studio'da Sql Server 2008 ile birlikte intellisense (kelimeleri tamamlama) desteği mevcuttur.

SQL Server 2000'de bulunan fakat SQL Server 2005'de bulunmayan, bir tablo üzerinde sağ tuşa tıklandığı zaman açılan menüye "Select Top 1000 Rows"(İlk 1000 Satırı Seç) ve "Edit Top 1000 Rows" (İlk 1000 Satırı Düzenle) seçenekleri eklenmiştir.

"Select Top 1000" tıklanıldığında aşağıdaki gibi bir sorgu oluşur. İlk 1000 veriyi "Deneme" veritabanındaki "dbo.kullanici" tablosundan "kullaniciNo" ve "kullaniciAd" bilgileri ile çeker.

SELECT TOP 1000 [kullaniciNo],
       [kullaniciAd]
  FROM [Deneme].[dbo].[kullanici]

T-SQL 2008’den itibaren herhangi bir değişkene tanımlandığı yerde başlangıç değeri atanabilir hale gelmiştir. SQL Server 2008’den itibaren, satır sonlarının “;” ile bitirilmesi tavsiye edilmektedir.



Bileşik atama operatörlerine destek sağlanmaktadır.

Values (Değerler) kalıbı ile tablo tipinde değerler üretilebilmektedir.

Elde edilen değerleri gerçek bir tabloymuş gibi sorgulamak mümkündür.