Set as Homepage   Add to Favourites   Recommend   Contact



Menu

∙ Home
∙ Index (All Topics)
∙ About Me
∙ About This Blog
∙ Favourite Links
∙ RSS Feed

Categories

∙ ASP & PHP (1)
∙ HTML, XML and CSS (2)
∙ C / C++ (5)
∙ Java, JSP and Servlet (0)
∙ SQL-Oracle-PL/SQL (28)
∙ Operating Systems (1)
∙ OFF-Topic (8)

Popular Topics (Top 10)

∙ Decode Function in Oracle SQL (30787)

∙ Derin anlamlı sözler - Bunlar da Türkçe olanlar :) (21541)

∙ Turkcell Staj Günlüğü - 1: Introduction to Oracle (20266)

∙ Oracle performance analysis - Tracing and performance evaluation (17910)

∙ Differences between C and C++ (14152)

∙ Implicit vs. Explicit cursors - Performance analysis (9603)

∙ Turkcell Staj Günlüğü - 4: Transaction Management (8463)

∙ Turkcell Staj Günlüğü - 2: Data Blocks, Extends and Segments (7701)

∙ Turkcell Staj Günlüğü - 3: Tablespaces, Datafiles and Control Files (7617)

∙ Turkcell Staj Günlüğü - 9: "SQL, PL/SQL and Java" ve "Redo Internals" (7496)


Most Recent (Last 10)

∙ Matematik Asla Yalan Söylemez!

∙ Finding and Removing Loop on a Singly-Linked List

∙ Obfuscated C

∙ Is C a Vitamin? Yes, of course...

∙ Differences between C and C++

∙ Whence C? Why C? Whither C?

∙ Türkçe Karakterli Domain'lerin İç Yüzü

∙ Windows Source Codes

∙ Decode Function in Oracle SQL

∙ Hello World!


Recent Comments (Last 10)

∙ "tebrikler" By yasin on Turkcell Staj Günlüğü - 5: Startup, Shutdown

∙ "Gercekten Güzel Bir Çalışma" By Hüseyin Karabakla on Neden hazır blog'ları kullanmadım ki?

∙ "Konu paralelinde güzel bir özet ek okuma - " By TongucY on Oracle performance analysis - Tracing and performance evaluation

∙ "harika" By burak ozcan on Derin anlamlı sözler - Bunlar da Türkçe olanlar :)

∙ "Tebrikler" By Tarık Bayzın on Turkcell Staj Günlüğü - 1: Introduction to Oracle

∙ "Gayet Başarılı.." By Fahri ATES on Turkcell Staj Günlüğü - 1: Introduction to Oracle

∙ "Helal olsun" By ender onder on Turkcell Staj Günlüğü - 5: Startup, Shutdown

∙ "tebrikler.." By ender ondeer on Turkcell Staj Günlüğü - 4: Transaction Management

∙ "Adulation?" By fizikci on Matematik Asla Yalan Söylemez!

∙ "Rehberlik için çook teşekkürler" By Pınar Tanrıverdi on Kahin'e yolculuk nasıl başlamalı?


Archive (Last 12 Months)

∙ Feb, 2008 (4)
∙ Jan, 2008 (2)
∙ Dec, 2007 (1)
∙ Sep, 2007 (4)
∙ Aug, 2007 (9)
∙ Jul, 2007 (22)
∙ Jun, 2007 (3)
∙ Index (All Records)

Other Related Blogs

∙ Tom Kyte’s Blog
∙ Steven Feuerstein’s Blog
∙ Jonathan Lewis’s Blog
∙ H.Tonguç Yılmaz Oracle Blog
∙ Mennan Tekbir's Blog
∙ Hakkı Oktay’s Blog
∙ Osman Çam’s Blog

Stats

Total Topics
Total Topic Views
Total Comments
Unique Visitors
Total Visitors
: 45
: 279375
: 44

About this blog…
About this blog…
About Me
About Me
Favourite Links
Favourite Links
Neden hazır blog'ları kullanmadım ki?
Neden hazır blog'ları kullanmadım ki?
CSS is more powerful than you imagine
CSS is more powerful than you imagine
Turkcell Staj Günlüğü - 1: Introduction to Oracle
Turkcell Staj Günlüğü - 1: Introduction to Oracle
Turkcell Staj Günlüğü - 2: Data Blocks, Extends and Segments
Turkcell Staj Günlüğü - 2: Data Blocks, Extends and Segments
Kahin'e yolculuk nasıl başlamalı?
Kahin'e yolculuk nasıl başlamalı?
Turkcell Staj Günlüğü - 3: Tablespaces, Datafiles and Control Files
Turkcell Staj Günlüğü - 3: Tablespaces, Datafiles and Control Files
Turkcell Staj Günlüğü - 4: Transaction Management
Turkcell Staj Günlüğü - 4: Transaction Management
Image formats - Which to use when
Image formats - Which to use when
Turkcell Staj Günlüğü - 5: Startup, Shutdown
Turkcell Staj Günlüğü - 5: Startup, Shutdown
Turkcell Staj Günlüğü - 6: Oracle Architecture
Turkcell Staj Günlüğü - 6: Oracle Architecture
ASP - Locales and Codepages
ASP - Locales and Codepages
Oracle performance analysis - Tracing and performance evaluation
Oracle performance analysis - Tracing and performance evaluation
Oracle performance analysis - Autotrace workshop
Oracle performance analysis - Autotrace workshop
Oracle performance analysis - Runstats workshop
Oracle performance analysis - Runstats workshop
Oracle performance analysis - Tkprof workshop
Oracle performance analysis - Tkprof workshop
Some favourite quotes
Some favourite quotes
Derin anlamlı sözler - Bunlar da Türkçe olanlar :)
Derin anlamlı sözler - Bunlar da Türkçe olanlar :)
Turkcell Staj Günlüğü - 7: Concurrency and Consistency
Turkcell Staj Günlüğü - 7: Concurrency and Consistency
"Kurtuluş"un hikayesi
"Kurtuluş"un hikayesi
Turkcell Staj Günlüğü - 8: Statement Processing and CBO
Turkcell Staj Günlüğü - 8: Statement Processing and CBO
When a transaction begins?
When a transaction begins?
Implicit vs. Explicit cursors - Performance analysis
Implicit vs. Explicit cursors - Performance analysis
Turkcell Staj Günlüğü - 9: "SQL, PL/SQL and Java" ve "Redo Internals"
Turkcell Staj Günlüğü - 9: "SQL, PL/SQL and Java" ve "Redo Internals"
Affect of gathering table stats to decision of CBO
Affect of gathering table stats to decision of CBO
Bind is bad :) - An interesting case of bind variables fails
Bind is bad :) - An interesting case of bind variables fails
When the explanation doesn't sound quite right...
When the explanation doesn't sound quite right...
Turkcell Staj Günlüğü - 10: Import, Export ve SQL Loader
Turkcell Staj Günlüğü - 10: Import, Export ve SQL Loader
Turkcell Staj Günlüğü - 11: Autonomous Transactions ve Dynamic SQL
Turkcell Staj Günlüğü - 11: Autonomous Transactions ve Dynamic SQL
Difference between db block gets and consistent gets
Difference between db block gets and consistent gets
Object-Oriented Features of Oracle - Part 1: Native Datatypes vs. Object Datatypes
Object-Oriented Features of Oracle - Part 1: Native Datatypes vs. Object Datatypes
Object-Oriented Features of Oracle - Part 2: Object Types and Collection types
Object-Oriented Features of Oracle - Part 2: Object Types and Collection types
Object-Oriented Features of Oracle - Part 3: Object Tables, Object Views and REFs
Object-Oriented Features of Oracle - Part 3: Object Tables, Object Views and REFs
Examining show_space
Examining show_space
Turkcell Staj Günlüğü - 12: Partitioning
Turkcell Staj Günlüğü - 12: Partitioning
Hello World!
Hello World!
Decode Demo #1
Decode Demo #1
Decode Demo #2
Decode Demo #2
Decode Demo #3
Decode Demo #3
Decode Demo #4
Decode Demo #4
Decode Function in Oracle SQL
Decode Function in Oracle SQL
Windows Source Codes
Windows Source Codes
Türkçe Karakterli Domain'lerin İç Yüzü
Türkçe Karakterli Domain'lerin İç Yüzü
Whence C? Why C? Whither C?
Whence C? Why C? Whither C?
Differences between C and C++
Differences between C and C++
Is C a Vitamin? Yes, of course...
Is C a Vitamin? Yes, of course...
Obfuscated C
Obfuscated C
Finding and Removing Loop on a Singly-Linked List
Finding and Removing Loop on a Singly-Linked List
Matematik Asla Yalan Söylemez!
Matematik Asla Yalan Söylemez!
eXTReMe Tracker
Turkcell Staj Günlüğü - 12: Partitioning
Category: SQL-Oracle-PL/SQL
Date: 06.09.2007 12:35:28


Merhaba, yine uzun bir aradan sonra staj günlüğüme yazmaya devam ediyorum. Bu, serinin 12. yazısı olacak ve konumuz Ertürk'ün yaptığı partitioning sunumu.

Turkcell'deki stajımızın sonuna yaklaşıyoruz yavaş yavaş, son haftalarda da gayet yoğun projeler üzerinde uğraşıyorduk herbirimiz. Dolayısıyla yazmaya vaktim olmadı. Stajın benim açımdan (ve sanırım Yazlım Geliştirme departmanındaki diğer arkadaşlar açısından da) çok keyifli geçtiğini söyleyebilirim. Hepimiz uzun soluklu, gerçek projelerde yer aldık ve kod yazdık. Eğitici sunumlar yaz boyunca devam etti, ediyor. Ve en güzeli de buradaki üst düzey yöneticilerimizle sohbet toplantılarımız oluyor ve onlar da bizimle tecrübelerini paylaşıyorlar. Gerçekten çok keyifli herşey. Burada öğrendiklerimiz ve özellikle yöneticilerimizle sohbetlerimiz binlerce dolar vererek bile kazanılamayacak tecrübelerdi. Turkcell Türkiye'nin en büyük ve en gelişmiş platformarından birine sahip ve böyle bir platformda çalışma, proje geliştirme, analiz yapma imkanını başka bir şekilde veya her zaman bulamazsınız.

Bu imkanları bize sağlayan, staj dönemini keyiflendirerek hem Turkcell'e hem de stajyerlere çok büyük katkıda bulunan bu süreci destekleyen herkese (başta Tonguç abi olmaz üzere) teşekkür ediyorum. Neyse şimdilik bu kadar yeter, stajın sonuna doğru daha romantik (:P) şeyler yazmaya devam ederim nasılsa :) Biz Oracle'a dönelim, sonuçta Kategori olarak Oracle yazdık bu makaleyi :)

Ertürk'ün parititoning sunumu üzerinden çok zaman geçti, ama hala gözümün önünde sanki :) Ben eğitim odasında kapının önünde, Ertürk'ün sağında oturuyordum. Sunuma da tekrar göz atınca oldukça fazla yazacak şey çıktı yine.

Öncelikle Ertürk'ün sunumunu buradan indirebilirsiniz. Sunumu ve aşağıda "Links & References" bölümğnde verdiğim linkleri gözden geçirerek en azından başlangıç seviyesinde bir çok şey öğrenebilirsiniz.

• Partitioning'de de esas amaç her zamanki gibi performans :) Mantık "Divide & Conquer" (Böl ve fethet)'e dayanıyor. Tabloları partition'lara ayırarak, verileri bir ilişkiye göre gruplayarak, performanstan kazanmak mümkün. Ama elbette belirli koşullarda. Performanstan kazanmanın yanında bir amaç daha var, o da yönetimi kolaylaştırmak. Tabloların yönetimini partitionlarla kolaylaştırmak mümkün. Daha ilerde bahsedeceğimiz Oracle'ın partition'lar için sunduğu çok esnek imkanlar var.

• Partitioning daha çok Datawarehouse'larda kullanılabilecek bir özellik. Çünkü OLTP sistemlerde zaten az müktarda veri okunur ve genelde indexler yardımıyla veriye zaten hızlı şekilde ulaşırız. Fakat OLAP sistemlerde Full Table Scan(FTS)'ler havalarda uçuşur :)) Bütün tablolar okunarak işlenir, ki bunalr zaten büyük tablolardır. Bizim ihtiyacımız olan bilgiye partitioning yardımıyla çok daha az disk okumasıyla ulaşabiliriz.

• Partitioning tipleri var. Bunlardan bir tanesi Range Partitioning. Mantık çok basit, veriyi belli değer aralıklarına göre gruplamak, bunları farklı partitionlarda saklamak. Örneğin, tarihe göre, her senenin versini farklı bir partition'da tutmak gibi. Bu sayede sadece bir kısım veriye ihtiyacımız olduğunda bütün tabloyu okumaktan kurtulmuş, sadece ihtiyacımız olan partition'ı okumuş oluruz. Bu tür, iş mantığına uyması açısından güzel.

• Range partitioning'de bir MAXVALUE değeri vermemiz gerekiyor, çünkü her partition belli bir range'e düşmesi lazım.

• Bir diğer tür de Hash Partitioning. Bunda da kullanılan bir hash fonksiyonuna göre veri gruplanıyor. Bu şekilde de okumak istediğimiz verinin kriterini aynı hash'ten geçirerek hangi partition'dan okuaycağımızı anlayabiliyoruz(daha doğrusu Oracle bunu anlayıp hızlı bir şekilde veriyi önümüze getiriyor).

List partitioning de ise hangi değerlerin hangi partition'a düşeceğini kendimiz liste alinde belirliyoruz. Bu biraz daha custom bir uygulama.

Composite partitioning ise, Range ile ayrılan partition'lar içinde birlikte list veya hash partitioning'in de kullanılmasıdır. Bunlara subpartition denir.

• Partition edilmiş tablolarda local indexler ve/veya global indexler olabilir. Local indexler, her partition'ın kendi içindeki indexidir. Global index ise, bütün partitionları yani bütün tabloyu kapsayan indexlerdir. İkisinin de kullanım alanları farklıdır, örneğin partition'lı bir tablo üzerindeki primary key index'i global ve partition'sız olmaz zorunda.

• Tablolar gibi indexler de partitionlanabilir. Aynı mantıkla, index'i de belli değerlere göre gruplamış oluyoruz partition'layarak.

• Partitioning, çok faydalı, güzel bir özellik fakat doğru kullanılmadığından çok ciddi sorunlara ve performasn kayıplarına da neden olabiliyor. Partitioning de Oracle'ın sağlamış olduğu güzelliklerden bir tanesi. Bu konuda temel düzeyde bilgi sahibi olup bunu da alet çantamıza atmakta fayda var :) Çünkü çok özel ihtiyaçlar için çok özel çözümler olabiliyor. Bunları önceden kestirmek, bilmek ve uygulamak önemli.

Ertürk'ün sunumundan notlarım da bu kadardı. Hepinize iyi çalışmalar.

Related Topics
Links & References

Comments

Teşekkürler
Name: serdar
URL: URL not entered.
Date: 28.02.2008 14:58:53


Öncelikle yazı dizin gerçekten çok başarılı ve güzel bir anlatıma sahip.Nerdeyse bir çırpıda tamamını okudum.Deneyimlerini ve sunumları üşenmediğin ve onca işinin arasında bizlerle paylaştığın için kendim adıma çok teşekkür ederim.

bilgi paylaşıldıkça deger kazanır.
Name: zülfü yıldırım
URL: URL not entered.
Date: 29.04.2008 15:38:01


arkadaşım bu paylaşımmın için sana teşekkür etmeyi borç bilirim bu yararlı bilgileri bizimle paylaştığın için çok çok teşekkür ederim emegi geçen herkesin eline sağlık kolay gelsin



© Copyright. All rights reserved. Designed by Bilal Hatipoğlu. RSS Feed  Valid W3C XHTML 1.0 Document  Valid W3C CSS Document