SQL Server 2012 ve LocalDB

0 dakikada yazıldı

48489 defa okundu

Düzenle

Her zaman hayal etmişimdir :) Şu SQL Express Windows'la yüklü gelse diye
:) Ne kadar kolaylaşırdı her tür uygulamada direk SQL DB'leri kullanmak
değil mi? Şimdi tabi ki alternatif çözümler ve, bazıları MS tarafında
bazıları ise değil. Belki bazılarınızın aklına "Access var ya?" sorusu
da geliyordur ama tabi ki SQL'in sundukları ile Access'inkiler pek
karşılaştırılamaz.

Sonuç olarak bana bu hayali kurduran aslında MS'in ücretsiz olarak
dağıttığı SQL'in Express sürümüydü. Hayalime en yakın MS ürünü SQL
Compact Edition olsa da yine yukarda bahsettiğim gibi iki ürünün sunduğu
özellikler aynı olamadığı için tam da istediğim şey değil Compact
Edition.

Karşınızda SQL Express LocalDB!

Evet, yepyeni bir SQL sürümünden bahsediyoruz. Bugün SQL Express diğer
SQL sürümleri ile bire bir uyumluluğa sahip olan ve çat diye yüksek
sürümlere geçiş yapabileceğiniz ücretsiz bir ürün. Fakat SQL Express
büyük abilerinden sadece uyumluluk vs konularını miras almıyor :) bir
bilgisayara yüklenme ve kullanım şekli açısından da tüm süreçler bire
bir aynı. Oysa bizim belki daha taşınabilir olan fakat SQL'in diğer
sürümleri ile de bire bir uyumlu bir veritabanı sunucusuna ihtiyacımız
var. Kolaylıkla yüklenebilen, kullanılabilen ve konfigüre edilebilen
minik, ufak, tam özellikli bir SQL :)

SQL 2012 serisi ile beraber gelecek olan SQL 2012 Express LocalDB kendi
başına toplam 33MB'lık bir MSI paketi ile geliyor. Sisteme kurulum
sonrasında farklı uygulamalar sqlservr.exe'yi ayrı ayrı
çalıştırabiliyorlar. Aslında süreç şöyle izliyor; herhangi bir uygulama
localdb üzerinden bir instance adı ile kendi localDB instance'ını anında
açabiliyor. Bu instance söz konusu uygulamanın hakları çerçevesinde
işlem yapabilen ve bağlantı var oldukça ayakta kalan bir instance
oluyor. Uygulamanız kapandığınıda o instance ve ilişkilendirimiş
bellekteki sqlservr.exe kopyası kaldırılıyor. Uygulamanın hakları ile
ilerlendiği için uygulamanın erişebildiği herhangi bir yerde DB
yaratılabiliyor ve var olan bir DB yeni yaratılan bir instance'a direk
ataçlanarak kullanılabiliyor. Hızlı deployment için ve pratik kullanım
için süper özellikle dekstop uygulamalarının arkasına alınabilecek süper
bir yapıdan bahsediyoruz. LocalDB kurulumunda sisteme herhangi bir
servis vs kurulmuyor. Herşey kendinize özel açtığınız sqlservr.exe
kopyası ile halloluyor.

Adım adım....

İsterseniz şimdi gelin minik bir test yapalım. İlk olarak makinenize
aşağıdaki adresten **SQL Server 2012 Express RC0'**i indirerek içinden
LocalDB'yi yükleyin.

http://www.microsoft.com/sqlserver/en/us/editions/express.aspx

Kurulumu tamamladıktan sonra tavsiyem SQL Server Management Studio
Express
'i de indirmeniz ki Management Studio üzerinden de
localDB'ye bağlanarak test yapabilelim.

SQL 2012 Express LocalDB bağlantısı.
SQL 2012 Express LocalDB bağlantısı.

LocalDB bağlantısı yapabilmek için direk server adresini (localdb) ile
başlatmanız gerekiyor. Sonrasında istediğiniz instance'ın adını
verebiliyorsunuz. Bir instance yaratmanın iki yöntemi var. LocalDB
yüklemesi ile beraber gelen Command Prompt uygulamasına aşağıdaki gibi
bir komut gönderirseniz istediğiniz instance çat diye yaratılıyor :)

[Command Prompt]

C:\Program Files\Microsoft SQL
Server\110\Tools\Binn>
SqlLocalDB.exe create LocalDBDemo

Açılan her instance için kullanıcı klasöründe bir ek klasör yaratılarak
sunucunun ayağa kalkması için gerekli herşey oraya yerleştiriliyor. Buna
master, model, tempdb dahil. Tabi tüm bu işlemlerim bir saniyeden kısa
bir sürede gerçekleştiğini de unutmamak gerek :)

Örnek bir LocalDB Instance'ı.
Örnek bir LocalDB Instance'ı.

Yukarda örnek bir SQL Instance'ın dosyalarını görüyorsunuz. Tüm
Instance'lar adres bilgisinde de görebileceğiniz Instances klasörüne
yerleştiriliyor. Eğer instance yaratmak istemezseniz tabi ki default
instance olarak gelen "(localdb)\v11.0" instance'ı da
kullanabilirsiniz.

İki LocalDB Instance'ı ve iki tane sqlservr.exe sahnede.
İki LocalDB Instance'ı ve iki tane sqlservr.exe sahnede.

Yukarda yaratılmış iki instance ve her instance için yaratılan
processleri Task Manager'da görebilirsiniz. Bu Instance'lara air
prosesler ilk erişimde ayağa kaldırılıyor.

Normal uygulamarınızda LocalDB'ye ulaşmak için ekstra birşey yapmanız
gerekmiyor. .NET 4.0 için buradan bir
Patch
mevcut. Bu patchin
yüklü olması yeterli. .NET 4.5'te ise direk destek geliyor ve connection
string değiştirmek dışında birşey yapmanıza gerek kalmıyor.

Karşılaştırmalar

Aklınıza gelebilecek sorulardan ilki "SQL Express artık yok mu?" sorusu
olabilir. SQL Express kesinlikle devam edecek. LocalDB çok daha farklı
bir ihtiyacı gideriyor esasında. Diğer karşılaştırabileceğimiz ürün ise
SQL Compact Edition. Bu noktada ise SQL LocalDB'nin SP, farklı data
tipleri desteği gibi konularda öne çıktığı açık. Diğer yandan mimari
açıdan da SQLCE in-proc takılırken LocalDB ayrı process olarak geliyor
ve 4MB'lık SQLCE'yi 130 MB'lık yüklenme alanı ihtiyacı ile kat kat
katlıyor :)

Hepinize kolay gelsin!

Bu makalede SQL Server 2012 Express RC0 LocalDB, SQL Server 2012
Management Studio RC0
ve Windows 8 Developer Preview Build 8102
kullanılmıştır.