Bu yazımda sizlere hemen hemen Tüm Veritabanı yönetim sistemlerinde var olan Partitioning gibi güzel bir teknolojiyi anlatacağım.

Partitioning teknolojisini genel olarak ifade edersek çok büyük tablolarımızı, indexlerimizi yada index-organized tablolarımızı ayrı ayrı segmentlerde oluşturabilmemize olanak sağlayan bir teknolojidir diyebiliriz. Yani mantıksal olarak bir bütün halinde görünen büyük tablo yada indexleri Partitionlı yapıya dönüştürdüğümüzde daha küçük farklı fiziksel bölümlere ayırabilmekteyiz.

Özellikle çok büyük veritabanı sistemlerinde(VLDB=Very Large DB) terabytelar seviyesinde datanın olması hem bu datanın bakımında hem de üzerinde gerekli işlemlerin yapılabilmesinde sıkıntılara yol açar. Bununla baş edebilmenin ilk akla gelen en etkin yolu bu büyük parçayı daha ufak parçalara ayırmaktır.Burada devreye “partitioning” kavramı girmektedir.”Partitioning” verilerin bir bütün içersinde parçalara ayrılması seklinde kabaca açıklanabilir.

Partitioning ile bir tablo ya da index kendi içinde daha küçük parçalara ayrıştırılıp kullanılabilir.İşin güzel yanı bu yapıldıgı takdirde yazılan DML sorgu vs. scriplerde herhangi bir değişiklik yapmanıza gerek yoktur. Oracle bunu kendisi halleder.(Tabi bazı durumlarda partition ismi vererekte işlem yapmak gerekebilir.) Ancak, partitionlar tanımlandıktan sonra,  DDL sorguları tabloların veya indexlerin tamamı yerine bireysel partitionlara erişebilir ve bunları işleyebilir. Bu, bölümlemenin büyük veritabanı nesnelerinin yönetilebilirliğini nasıl basitleştirebileceğidir.

Bir tablonun veya indexin her partitionı, sütun adları, veri türleri ve kısıtlamalar gibi aynı mantıksal niteliklere sahip olmalıdır, ancak her partition, sıkıştırmanın etkin veya devre dışı bırakılmısı fiziksel storage ayarları ve tablospace gibi ayrı fiziksel niteliklere sahip olabilir. Örneğin Bir tablonun en eski 10 yıllık verilerini SATA disklere yönlendirirken güncel verilerinin SAS üzerinde olacak Ģekilde konumlandırabiliriz.

Partitioning, özellikle büyük hacimli verileri yöneten uygulamalar olmak üzere birçok farklı türde uygulama için kullanışlıdır. OLTP sistemleri genellikle yönetilebilirlik ve kullanılabilirlikteki gelişmelerden yararlanırken, veri depolama sistemleri performans ve yönetilebilirlikten yararlanır.

Partitioning şu avantajları sunar:

  • Tüm tablo yerine index oluşturma ve rebuilding, partition düzeyinde yedekleme ve kurtarma gibi veri yönetimi işlemlerini sağlar. Bu, bu işlemler için önemli ölçüde azaltılmış zamanlarla sonuçlanır. (Örneğin partition metoduna bağlı olarak 5 farklı partition olan bir tabloda 2. partition ı drop edebilir, farklı bir index oluşturabilir ya da bu partition’ı tablodan bağımsız olarak truncate edebilirsiniz.)
  • Büyük parçalar ile uğraşmak yerine küçük parçalar ile uğraşıldığından özellikle sorgula işlemlerinde büyük kazanç sağlar.
  • Maintenance işlemleri için zamanlanmış downtime süresinin etkisini önemli ölçüde azaltır.
  • Paralel execution, kaynak kullanımını optimize etmek ve execution time’ı en aza indirmek için özel avantajlar sağlar. Parallel execution, sorgular ve DML ve DDL için desteklenir.

(continue reading…)

284 total views, 3 views today