1

Konu: SQL Server 2012 ve LocalDB

Daron Yöndemin'n blogundan SQL Server 2012 ve LocalDB http://daron.yondem.com/tr/post/SQL_Server_2012_LocalDB

Her zaman hayal etmişimdir smile Şu SQL Express Windows'la yüklü gelse diye smile 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 bası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 smile 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 smile

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/u … press.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.

http://daron.yondem.com/assets/2731/localdb.png
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 smile

[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 smile

http://daron.yondem.com/assets/2731/localdb2.png
Ö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.

http://daron.yondem.com/assets/2731/localdb3.png
İ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 smile

Hepinize kolay gelsin!

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

2 Son düzenleyen, cetinbasoz (29.11.2011 17:45:50)

Re: SQL Server 2012 ve LocalDB

Soykan,
Sagol bilgi icin, bilgi bilgidir:)

Diger yandan bu yeni RDBMS surumleri eskisi kadar heyecanlandirmiyor beni ve aklima benim ne var bunda diye geliyor. Bu VFP kullanan ve VFP'de kalacak olanlar icin gibi:) Zaten SQL Express UserInstance ile bu olmuyor muydu? Veya 0 config SQLite varken? Zamanlama pek iyi gelmedi bana.

Not: VFP ile ilgili diye, noSQL'den bahsetmiyorum hic. Yoksa SQL zamani geldi geciyor:)

3

Re: SQL Server 2012 ve LocalDB

cetinbasoz yazdı:

Not: VFP ile ilgili diye, noSQL'den bahsetmiyorum hic. Yoksa SQL zamani geldi geciyor:)

evet kesinlikle...

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg