29 Mayıs 2015 Cuma

SQL Server 2016 CTP2 - TempDB dosyaları

Selam arkadaşlar,

Bildiğiniz üzere Microsoft'un Ignite etkinliğinde SQL Server 2016 resmen duyuruldu ve ardından yaza doğru ilk CTP'nin de genel olarak yayılacağı duyuruldu ve geçen gün bu versiyon yayınlandı.

Şahsen SQL Server 2016 CTP2'yi indirip kurma fırsatını yeni bulabildim, test makinemde kurulum yaparken, eski Setup'lara kıyasla önemli bir farklılık dikkatimi çekti ve sizlerle de paylaşmak istedim. Aşağıdaki ekran görüntüsünden de görebileceğiniz üzere, eskiden de Database Engine Configuration altındaki Data Directories sekmesinden, varsayılan dosya yollarını belirleyebiliyorduk; fakat henüz kurulumda TempDB sistem veritabanının dosya sayısının belirtilme seçeneği yoktu. Bu ayarı yapmak zaten çoğumuzun varsayılan kurulum dokümanlarında vardır diye zannediyorum, yani bu bir Best Practice'tir. Sayısı 16'yı geçmeyecek şekilde, Core sayısına ve ihtiyacına göre TempDB dosyalarının sayısı kurulumdan sonra arttırılır. Bunun nedeni de temel olarak SGAM ve PFS Contention (Trace Flag 1118'i inceleyin) sorunlarının yaşanmasının engellenmesidir, bu tamamen ayrı bir yazı konusu, bu konuda internette birçok makale bulabilirsiniz.

SQL Server 2016 CTP2 Kurulum ekranı

Ekran görüntüsünden de görebileceğiniz üzere TempDB veri dosyalarının sayısı henüz kurulum esnasında belirtilebiliyor. Hemen altındaki notta da şöyle diyor: "Varsayılan değer 8'dir veya işlemci çekirdek sayısı kadardır, hangisi daha düşükse. Bu değer, çekirdek sayısı kadar arttırılabilir.". Paylaştığım ekran görüntüsünde dosya sayısı 1, çünkü bu küçük bir sanal test makinesi.

Yeniden düzenleme:
Yukarıdaki yazıyı yayınladıktan sonra denemek için değeri 2 yaptım ve aşağıdaki hatayı aldım.

Eğer varolan çekirdek sayısından fazla dosya eklenmeye çalışılırsa hata alınıyor.
Kurulum arayüzü, varolan çekirden sayısından daha az bir değer girmenize müsaade ediyor; fakat varolan çekirden sayısından daha fazla değer giremiyorsunuz. Tabii ki çok istemeniz halinde kurulumdan sonra Management Studio ile kurduğum SQL Server Instance'ınıza bağlanıp yeni veri dosyası ekleyebilirsiniz; fakat bu da performans açısından Best Practice'lere uygun değil.

Sevgiler,
Ekrem Önsoy

5 Mayıs 2015 Salı

Bir Unique Index'in eşsizliği, Included Column'lar ile değişir mi?

Merhabalar,

Ortamlarımdan birindeki bir Unique Index'e ekleme yapmam gerektiğinde bunun testini yapmak istedim. Bu testin sonuçlarını sizlerle de paylaşayım.

Öncelikle geçici bir veritabanında aşağıdaki tabloyu oluşturdum:

CREATE TABLE Gecici_Tablo (i int, ii int, e varchar(50))

Daha sonra bu tabloda aşağıdaki Index'leri oluşturdum:

CREATE CLUSTERED INDEX cix on Gecici_Tablo(i)
CREATE UNIQUE INDEX uix on Gecici_Tablo(ii) INCLUDE(e)

Sonra da aşağıdaki kayıtları bu tabloya eklemeye çalıştım:

INSERT INTO Gecici_Tablo values(1, 1, 'a')
INSERT INTO Gecici_Tablo values(1, 1, 'b')
INSERT INTO Gecici_Tablo values(2, 1, 'b')

Yukarıdaki INSERT komutlarından sadece ilki başarıyla tamamlandı, çünkü Unique Index ile eşsizlik sadece Index Key'lerle tanımlanıyor. Bu örneğimizdeki Unique Index'imizdeki tek Index Key de "ii" isimli alandı.

SELECT * FROM Gecici_Tablo

Komutunu çalıştırdığımda sadece aşağıdaki sonuç dönüyor:

1,1,a

Kolay gelsin,
Ekrem Önsoy

SQL Server 2016 dün resmen duyuruldu! Bir de sürpriz var!

Merhaba arkadaşlar,

Dün Amerika'da düzenlenen MSIgnite etkinliğinde Microsoft'un CEO'su Satya Nadella, SQL Server 2016'yı resmen duyurdu.

Bu duyuruyla birlikte aşağıda adresini paylaştığım Blog da yayınlandı. Aşağıdaki blogta (İngilizce) SQL Server 2016'daki belli başlı bazı yenilikleri kabaca bulabilirsiniz. Şahsen bu özelliklerin birçoğu hakkında zaten haberdardım, gerek bloğumdan gerekse Twitter adresimde (@EkremOnsoy) bu özelliklerden bahsediyordum.

Fakat hiç beklemediğim, yeni bir özelliği aşağıdaki blog yazısından öğrendim! SQL Server 2016 ile birlikte Native olarak (yani örneğin XML gibi) JSON veritipi de desteklenecekmiş! Bu demek oluyor ki, PostgreSQL'de zaten bir süredir olan bu veritipi artık SQL Server'da da olacak. İlişkisel verilerinizle Doküman tipi verilerinizi aynı ortamda saklayabileceksiniz! Henüz ayrıntılar net değil veya ben henüz net kaynaklara erişemedim, fakat tahminim JSON ile diğer veritiplerini aynı tabloda barındırabileceğimiz yönünde. Ayrıntılar belli oldukça paylaşırım.

http://blogs.technet.com/b/dataplatforminsider/archive/2015/05/04/sql-server-2016-public-preview-coming-this-summer.aspx

Sevgiler,
Ekrem Önsoy