Merhabalar,
Bugünki yazımızda sizlere Windows Azure SQL üzerinde Table Partitioning işlemini nasıl yapabileceğinizi anlatacağım.
Sunucularımız da Table Partitioning işlemini gerçekleştirebilmek için yanlızca SQL Server Enterprise versiyonlarına sahip olmamız gerekirdi ama Windows Azure SQL üzerinde Table Partitioning işlemi Aralık 2014 yılında V12 sürümü ile kullanılabilir durumdadır. Birçok Veritabanı Yöneticisi Windows Azure SQL üzerinde büyük boyutlu tabloları nasıl yönetebileceğini düşünüyordu. Bu özelliğin yayınlanması ile Veritabanı Yöneticisilerinin kafalarından Windows Azure SQL bir problemi daha ortadan kaldırmıştır.
Örneğimizi gerçekleştirmek için bir Veritabanı içerisinde bir tablomuzda 1 milyon kayıt olacağını ve tablo üzerinde performans sorunlarını gidermek için table Partitioning kullanacağımızı düşünelim.
Örnek Veritabanımızı Oluşturuyoruz ;
Veritabanı oluşturmadan önce ilk olarak ihtiyacımız olan Windows Azure Database Server’ı oluşturmamız gerekiyor. Bunun için Azure Management Portal’a erişim sağladıktan sonra aşağıdaki resimde gösterdiğimiz gibi SQL Database bölümüne gelip Servers’a geçiş yapıp Create A SQL Database Server yazısına tıklamamız gerekiyor.
Create a SQL database Server yazısına tıkladıktan sonra karşmıza gelen ekran aşağıdaki gibidir.
Oluşturacağımız SQL Database Serverımızın V12 özelliğinin aktif olmasını istediğimiz için bu alanı işaretliyip SQL Database Server’ımızı oluşturuyoruz.
Şimdi ise oluşturduğumuz StoreDB isimli veritabanımıza SQL Server Management Studio ( SSMS) 2014 ile bağlanıyoruz.
SSMS ile connect işlemi başarılı olduktan sonra aşağıdaki resimdeki gibi Azure Database Server’ın version bilgilerini kontrol edelim.
Azure Database Serverımız hazır olduğuna göre şimdi üzerinde yeni bir database oluşturabiliriz. İşlem için aşağıdaki kod parçasın kullanabiliriz.
Partition Function oluşturmak için aşağıdaki kod parçasını kullanacağız ;
Partition Schme oluşturmak için aşağıdaki kod parçasını kullanacağız ;
Oluşturmuş olduğumuz Partition Function ve Partition Schema’yı kontrol etmek için ise aşağıdaki kod parçasını kullanacağız ;
Tablo Oluşturma
tblProduct isimi ile oluşturacağımız tablomuz 2 kolondan oluşacaktır. İlk kolon ürünlerin ID bilgisinin tutan ProductID, ikinci kolonda işlem zamanın bilgisinin tutması için CreatedDate’dir. Table Create işlemi için aşağıdaki kod parçasını kullanacağız.
Kayıt işlemini gerçekleştireceğimiz Stored Procedure oluşturma
Çok sayıda kayıt işlemini kısa süre içerisinde yapabilmek adına aşağıdaki gibi bir stored procedure oluşturuyoruz. Buradaki kod parçasını kullanacağız.
Insert işlemlerini hızlı olabilmesi için SQLCMD ile Paralel Execution yaparak tblProduct tablosuna kayıt aktarımı yapacağız.
Paralel Execution için Hazırladığım Bat dosyasını burada paylaşıyorum.
Sonuç olarak, Windows Azure V12 versiyonu ile birçok özellik kullanılabilir ( 100 Dynamic management view (dmv)) duruma geldi. Bunlardan biri ise Table Partitioning işlemidir. Table Paritioning işleminin başarılı şekilde sonuçlandığı bilgisini sys.dm_db_partition_stats viewi ile yada $PARTITION system function ile kontrol edebilirsiniz.
Paralel Execution işlemi devam ederken aşağıdaki resimi paylaştığım için 1.000.000 kayıt sayısını göremiyoruz.Paralel Execution işleminin tamamlanmasını beklemiş olsak her Partition’da 1.000.000 kayıt olduğu bilisini görebiliriz.
Bir makalenin daha sonuna geldik,yeni bir makalede görüşmek üzere !