Kategoriler


SON YORUMLAR
Taha
Hocam elinize , kaleminize sağlık çok güzel bir yazı olmuş.
Tatar Ramazan
Anlo-Saksonlar (İngiliz, Amerika), Almanlar, Fransızlar, Ruslar, Yahudiler dünyanın en başarılı milletleri. Genleri dolayısıyla öyle. Osmanlının zirve döneminde bile sanat ve bilimde bizden ileriydiler. Rönesans 1450den sonra başladı. Bizim zirve dönemi 1600lü yıllardı. Osmanlı bile daha zeki diye Avrupadan adam getirdi. Türkiyede bile başarılı, düzgün, elit insanların önemli bir bölümü muhacırdır. Geçmişte Yunanistan, Bulgaristan, Makedonya, Romanya, Bosna gibi yerleri feth edebildik. Bu ülkelerden şimdi de ileriyiz zaten. Fransa, Cermenler, İngilizler, Ruslar oralara üstünlük kuramadık. Bugün de yine o milletler bizden maddi anlamda ileri. Yani değişen bir şey yok. Japonlara, Çinlilere ve Hindulara gelince.. Teknoloji, bilim, buluş gibi alanlarda yukarıda saydığım kavimler yapıyor çoğu şeyi. Japonlar buluş yapmıyor. Var olanı küçültüyor. Tasarım yapıyor. Sony markasının reklamı bile vardı 12 sene önce. En küçük fotoğraf makinesini, kamerayı, bilmem ne cihazını biz yaptık falan filan. Amerikanın eşek gibi çalıştırdığı köleler. Ehli kitap (Hristiyanlar, yahudiler) ve müslümanlar her zaman putperest kavimlerden üstündür. Bunu unutmayın. Maddi ilerlemenin dinle, dinsizlikle alakası yok. Çalışan kazanır.
Hüseyin
Kafamdaki çoğu soruya cevap buldum teşekkürler...
Samet
Makaleyi harika buldum .Çok işime yaradı. Teşekkürler.
Tatar Ramazan
Saatte 1500 satır kod yazmayan kendini camdan aşağı atsın. Almanya 1. ve 2. dünya savaşı öncesi 10-20 senede süper güç olmuştu. Sıkı ve disiplinli çalıştılar çünkü. Biz 90 senede bir savaş uçağı yapamadık. Atatürkçüler suçu islama, Osmanlıya attılar. Kemalist Türkiye niye bi halt olamadı o zaman? Kendin çalışma, okuma, bir şey becereme ondan sonra dinde kabahat ara. Sümme haşa!
Gamze
C#, C++, ASP.NET-MVC, HTML-CSS, Matlab, Arduino ödevleri, web sitesi yapılır. Bilgi için; gamze.zirh@gmail.com
Seda
web sitesi, masa üstü uygulamaları, muhasebe, restaurant, otel, barkot sistemleri yazılımı yapılır. adres:s.sedaerden@gmail.com
Hafize
Yazılım ödevleri ve web sitesi yapılır.Bilgi için hafizearduc@hotmail.com
Tatar Ramazan
Temam geldi
Dilara
Doğru yazdığıma eminim
Tatar Ramazan
Kopyala elle yazma yanlış yazdın. Gelmedi
Tatar Ramazan
Gördüm şimdi
Dilara
Attim
Tatar Ramazan
İlle mühendislik diyorsun demek. O halde sana iyi yazılımcı olmanın yolunu göstereyim. Bunu sen istedin. kambozlusaban@hotmail.com babamın mail adresi. Mesaj at. Atınca da buraya yaz attım diye.

Bilgisayar Mühendisleri
Here is the website inspired me to use 
it as a guide when I tried to define 
myself as an engineer candidate a few 
years ago. It really helped me to work
 and study feeling in confidence with 
being on the right way. I suggest this 
website to whom it may direct her/his 
to find the right career path. It 
includes many articles varies from 
real life experiences to detailed 
software engineering issues. But the 
most dignified parts for me are the 
articles in general and career titles.
Son okunan makaleler:
Oracle - Cluster Kavramı (Clustering)
Dünyanın En İyi 500 üniversitesi 2007 Sıralaması Açıklandı
Bilgisayar Mühendisliği ÖSS Taban Puanları 2009
Java Dersleri 1: İlk Bakışta JSP (Java Server Pages)
Bilgisayar Mühendisliği ÖSS Taban Puanları 2009
SSIS’ in güzellikleri 1
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
BİLGİSAYAR MÜHENDİSLİĞİ GEREKSİZ BİR MESLEKTİR !!!
BİLGİSAYAR MÜHENDİSLİĞİ GEREKSİZ BİR MESLEKTİR !!!
BİLGİSAYAR MÜHENDİSLİĞİ GEREKSİZ BİR MESLEKTİR !!!
BİLGİSAYAR MÜHENDİSLİĞİ GEREKSİZ BİR MESLEKTİR !!!
BİLGİSAYAR MÜHENDİSLİĞİ GEREKSİZ BİR MESLEKTİR !!!
Mezunları en kolay iş bulan üniversiteler
Mezunları en kolay iş bulan üniversiteler
Mezunları en kolay iş bulan üniversiteler
Kendini Geliştirmek Ne Demek?
Üniversitelerin akademik yayın karşılaştırması
Oracle - Query Optimizer
Üniversite seçiminde şu 8 şeyi yapmayın!
Üniversite seçiminde şu 8 şeyi yapmayın!

Bilgisayar Mühendisleri Portalı

Oracle - Cluster Kavramı (Clustering)

“Kümeleme,bir araya getirme” seklinde Türkçe söyleyebilecegimiz Clustering kavrami veritabani açisindan “verileri bir arada tutma, kümeleme” anlaminda kullanilabilir.

Oracle bu islemi 2 yolla yapar :
i)  Index Cluster
ii) Hash Cluster

Her ikisinide olusturmak için öncelikle elimize bir ”cluster” olmalidir.Varsayilan olarak olusan cluster bir “index cluster”’dir.

i) Index Cluster : Bir ya da daha fazla tabloda bulunan birbiri ile dogrudan iliskili  satirlari ayni segmentte tutan yapidir.Önceden “join” yapilmis veriler olarak da düsünülebilir.Bu durumda ilgili kolonlar ile yapilacak bir sorgu daha performansli olacaktir.

CREATE CLUSTER sc_person (person_id NUMBER(10)) SIZE 512;

“sc_person” isminde bir cluster olusturduk.Sonra CREATE INDEX idx_personnel ON CLUSTER sc_person;   ile  “sc_person” cluster’’i üzerinde bir index cluster olusturmus olduk.

Peki bunu nasil kullanacagiz.Örnegimize bakalim :

CREATE TABLE person (
   person_id   NUMBER(10),
   first_name  VARCHAR2(25),
   last_name   VARCHAR2(25) NOT NULL,
   active_flag VARCHAR2(1) NOT NULL)
CLUSTER sc_person (person_id);
CREATE TABLE invoice (
   person_id NUMBER(10),
   inv_id    NUMBER(10),
   inv_item  VARCHAR2(25) NOT NULL,
   inv_date  DATE NOT NULL)


CLUSTER sc_person (person_id);Bu tablolar olustugunda elimizde “person_id” alanina göre olusturulmus ve sanki her 2 tablo bu alan gore onceden join edilmis ve cikan sonuç kümesi bir arada fiziksel olarak tutuluyor seklinde bir yapi elde edilmis olur.
 
Anlasilacagi üzere index cluster olusturulan alan tablo ya da tablolar arasinda sık kullanilan ortak bir alan ise bu kullanim uygun olmaktadir.Ama bu avantajinin yaninda bir takim dezavantajlari da belirtmekte fayda var.Örnegin FTS(FullTableScan) olacak olursa daha cok zaman alacaktir.Insert islemi normalden daha fazla is yükü getireceginden yavas olacaktir.
ii) Hash Clusters : Hash bilindigi üzere verilen bir parametreye karsilik anahtar(key) üretir.Hash Clusterda da bu sekilde.Verilen bir “cluster key” degerine karsilik olusan anahtar degeri verinin  tutuldugu adresi vermektedir. (Ayni “hash key” degerine sahip satirlar birarada tutulur.)Baska bir degisle elinizde anahtar deger var ise dogrudan ilgili veriye tek I/O ile ulasmak mümkün.Normal bir indekste ise “leaf block” seviyesine inebilmek için birkaç I/O yapmak gerekiyor.

 

Her ne kadar kullanisli bir yapi olsa da özellikle SIZE ve HASHKEYS parametreleri düzgün set edilmedigi zaman performans olarak basinizi agritabilir.SIZE “hash key” degerine karsilik gelebilecek satirlarin tutacagi toplam alan miktarini, HASHKEYS ise tabloda tutulacak toplam kayit adedini ifade eder ve kendisinden sonra gelen en küçük asal sayi olarak Oracle tarafindan yeniden belirlenir.

CREATE CLUSTER trial_cluster (trialno NUMBER(5,0))
HASH IS trialno HASHKEYS 150;
CREATE TABLE trial (trialno NUMBER(5,0) PRIMARY KEY,   …) 
CLUSTER trial_cluster (trialno);

Yukarida once “trial_cluster” adinda bir hash cluster olusturduk.Daha sonra “trial” tablosunda “cluster key” alani olarak “trialno” alanini gösterdik.Oracle HASHKEY olarak 157 degerini kullacaktir.”trialno” alani bir “cluster key”’dir ve Hash fonksiyonuna gönderilerek bir “hash key” üretilir.

HASHKEY degeri çok fazla verilirse hash cluster seyrek olarak dolacaktir ve FTS performansi düsecektir.Eger az verilirse de ayni degeri alan pek çok “cluster key” degeri olacaktir.Bu da yeni bloklarin kullanilmasi ve bu bloklarin birbirine baglanmasi gerekliligine yol açacaktir.Bu da daha fazla I/O ya neden olacaktir.“Cluster Key” olarak  PrimaryKey alani kullanilmasi uygundur.Çünkü “Hash Key”  üreten fonksiyona her seferinde farkli bir deger gönderileceginden “hash key” in tekil olma olasiligi artacaktir.Oracle ‘in “Hash Key” üreten fonksiyonu çogu kosulda güzel çalismaktadir.

Ancak PL/SQL ile kullanicida kendi Hash Key fonksiyonunu yazabilir.Her bir “Hash Key” degeri için ayni miktarda alan tutulmaktadir.örnegin hash key “101” için 4 adet satir alani ayrilmis ise “109” hash key degeri için yine 4 adet satir alani ayrilmistir.

SIZE ve HASHKEY parametrelerinin hesaplanmasi ile ilgili açiklama ve örnekleri asagidaki linkten bulabilirsiniz :

http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14231/hash.htm

Hash Cluster özellikle eşitlik koşuluna uygun verileri almak için kullanılmalıdır. Bunun dısındaki koşullarda tercih edilmemelidir.Boyut olarak sürekli değişen değilde değişmeyecek olan tablolar için uygundur.Aksi halde zaman zaman cluster tekrar oluşturulmalıdır(rebuild).Ayrıca Hash Clusters,FTS yapmak için uygun değildir.

Hakkı Oktay
http://hakkioktay.wordpress.com

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın

vcv(08.07.2015 23:42:50)
cvcv
%0 %0 %0
Katılıyorum Çekimserim Katılmıyorum






Copyright© 2001-2017. Bilgisayar Mühendisleri Portalı | Bütün hakları saklıdır.