Windows Azure SQL Table Partitioning

By | January 31, 2015

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.

CreateDatabaseServers_Image1

 

Create a SQL database Server yazısına tıkladıktan sonra karşmıza gelen ekran aşağıdaki gibidir.

SQLDatabaseServerSettings_Image2

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.

CreatedDatabaseServer_Image3

Şimdi ise oluşturduğumuz StoreDB isimli veritabanımıza SQL Server Management Studio ( SSMS) 2014 ile bağlanıyoruz.

ConnectToSQLDatabaseServers_Image4

SSMS ile connect işlemi başarılı olduktan sonra aşağıdaki resimdeki gibi Azure Database Server’ın version bilgilerini kontrol edelim.

VerifyDBServers_Image5

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.

CreateDatabaseScript_Image6

Partition Function oluşturmak için aşağıdaki kod parçasını kullanacağız ;

PartitionFunction_Image7

Partition Schme oluşturmak için aşağıdaki kod parçasını kullanacağız ;

PartitionSchema_Image8

Oluşturmuş olduğumuz Partition Function ve Partition Schema’yı kontrol etmek için ise aşağıdaki kod parçasını kullanacağız ;

TestPartitioning_Image9

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.

CreateTableScript_Image10

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.

DMV_systemFunctionKontrol_Image11Son

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.

ResultScreen_Image12

 

Bir makalenin daha sonuna geldik,yeni bir makalede görüşmek üzere !

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *