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 (64287)

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

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

∙ Differences between C and C++ (37010)

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

∙ When a transaction begins? (34401)

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

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

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

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


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
: 693820
: 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üğü - 6: Oracle Architecture
Category: SQL-Oracle-PL/SQL
Date: 13.07.2007 16:06:32


Merhaba, günlük serisinin 6. yazısında çarşamba günkü (11.07.2007) Alp Emre'nin yaptığı "Oracle Architecture" sunumundan ve biraz da diğer çalışmalarımdan bahsedeceğim.

Konuya girmeden önce, aşağıda External links kısmına Turkcell yaz staj dönemi sunum programımızın linklerini koyuyorum. Buradaki sunumların sırası önemli. Bunu da incelemenizin ve "Sırada ne var?" konusunda bilgi sahibi olmanızın yararı olabilir.

Çarşamba günü, salı günkü tkprof araştırmalarıma devam ettim çoğunlukla. Sabah, tkprof analizi hakkında Tonguç ve Danişment bey'e soru soruyorken bir anda kendimi DBA'lerin yanında buldum :) Çarşamba bütün gün operasyon merkezindeydim ve SQL trace'lerin nasıl yorumlandığı ve çalışan bir sistem üzerinde optimizasyonun nasıl yapıldığını gördüm. Esas stajyerliği çarşamba günü yaptım sanıyorum :)

TKPROF ve SQL trace kullanımı hakkında yakın zamanda beginner seviyesinde, ayrı bir makale hazırlamayı düşünüyorum. O yüzden fazla o konuya girmek istemiyorum. Fakat, DBA'lerin yaptığı iş hakkında da bilgi sahibi olmak güzel, ve aslında Developer stajyeri olmama rağmen DBA'lerin yaptıkları daha zevkli gibi geldi bana :)

Öğleden sonra ise Alp Emre'nin Architecture sunumu vardı. Önemli bir konu bu, sunumu kaçırmak istemedim. Aslında yapılacak bir çok şey olmasına rağmen katıldım. Emre bize Oracle'in Memory Architecture, Process Architecture ve Application Architecture konularından bahsetti.

Sunumu her zamanki gibi download'a koyuyorum, buradan indirebilirsiniz.

Sunumla ilgili notlarımı paylaşacağım:

• Oracle'ın Memory yapısı 3 bölümden oluşur: System Global Area (SGA), Program Global Area (PGA) ve User Global Area (UGA). Bunların içinde de çeşitli bölümler vardır. Aşağıdaki resimden takip edebilirsiniz, ayrıntılar yazının devamında geliyor:



SGA, her instance'ın bir tane sahip olduğu, bütün processlerin ortak olarak erişebileceği, paylaşılan, büyük bir yapıdır. Oracle instance açılırken SGA'yı allocate eder. Buffer Cache, Redo Buffer, Java Pool, Large Pool, Shared Pool, Streams Pool bölümlerine ayrılmıştır. Bunların bu şekilde bölünmesinin nedeni, birbirinin alanlarını işgal etmemeleri içindir. Hepsi farklı processler tarafından farklı görevler için kullanılıyor.

Fixed SGA: SGA'nın bir parçasınır, parametre bilgilerini içerir. Boyutunu biz kontro ledemeyiz, Oracle kontrol eder. Oracle bunu SGA'nın diğer parçalarına ulaşmak için kullanır.

Redo Buffer: Redo log'lar, online redo dosyalarına yazılmadan önce bu alanda tutulur. LGWR process'ı bu alanı şu durumlarda online redo log dosyalarına yazar:

1- Her 3 saniyede,
2- Commit komutu geldiğinde,
3- Redo buffer'ın 1/3'ü dolduğunda.

Block Buffer Cache: Oracle data block'larını diske yazmadan önce ve diskten okuduktan sonra tuttuğu yerdir. Undo Block'ları da burda tutulur.

Shared Pool: Oracle'ın Program datalarını tuttuğu yerdir. Örneğin, parse edilen sorguların parse edilmiş hali burada tutlur. Böylece, yeniden aynı sorgu çalıştırılmak istendiğinde tekrar parse edilmez.

Large pool: Büyük memory parçaları gerektiğinde allocate etmek için kullanılır. Genellikle Shared Server'larda UGA burdan allocate edilir, Paralel çalışan sorgular bu alanı kullanır ve RMAN bazı durumlarda bu alanı kullanır.

Java Pool: Java Stored Procedure'ler için ayrılmış alandır.

PGA, process'lere özel memory alanıdır. Her ORacle process'in kendi PGA'sı vardır. Malloc() ile yönetilir, heap'ten alınır, dolayısıyla boyutu çalışma zamanında değişebilir. Her process kendi PGA'sını kendisi allocate eder. Dedicated server bağlantılarında UGA'yı içerir Onun dışında genellikle in memory sorting, bitmap merging ve hashing için kullanlılır. otomatik olarak yönetilebildiği gibi, ince tuning ayarlamalarında manuel olarak da yönetilebilir. Fakat bu çok dikkat gerektiren bir ayarlamadır, çünkü her user için ona ait server process'in PGA'sı ayrılacak ve beklenenden fazla kullanıcı bağlanması durumunda memory yetmeyebilir veya diğer bölümler için memory alanı daralabilir. Otomatik ayarlamada maximum boyutu PGA_AGGREGATE_TARGET parametresiyle belirlenir.

UGA, her user için o anki session state'ini tutar. UGA, shared server'larda SGA içinde, Dedicated server'larda ise PGA içinde tutulur.

• Oracle'ın process yapısına baktığımızda, 3 sınıf process vardır:

1- Server process: Kullanıcı bağlantılarını almak için serverda oluştururulan process'lerdir. Kullanıcının sorgularını çalıştırarak sonucu kullanıcıya göndermekle sorumludur. Dedicated server'larda, her kullanıcı bağlantısı için bir server process oluşturulur. Böylece uzun süreli işlemler için kullanıcılar birbirlerini bloke etmemiş olurlar. Fakat dezavantajı da, her biri için ayrı PGA alanı ayrılır, yani hepsine ufak ufak PGA alanları düşer. Bu, özellikle sort ve merge tarzı işlemlerin, memory'e sığmaması ve dolayısıyla diskte yapılmasına neden olarak çok kötü performans düşüşlerine neden olabilir. Bu, OLAP sistemler için daha uygun olabilir. Shared server'larda ise birde fazla kullanıcı bağlantısı için bir dispatcher process olabilir ve hepsine sırayla yanıt verir. Dezavantajı, uzun süreli işlemler için kullanıcılar birbirlerini engelleyebilir, fakat avantaj olarak daha az server process oalcağı için her birine daha fazla PGA alanı düşer. Bu ise OLTP sistemler için daha uygundur.

2- Backgroud Process'ler, Oracle'ın arkaplan process'leridir Bunlar kullanıcının kontrolünde değildir. Kendileri çalışır ve hepsi üzerine düşen işlemleri yaparlar. Hepsinin kendine özgü görevleri vardır. Ayrıntıları sunumda bulabilirsiniz.

3- Slave Process'ler, background process'lerin ve server process'lerin bazen işlemlerini yapmak için oluşturdukları yardımcı process'lerdir.

Emre'nin sunumu da bu nitelikteydi. Bu makalede biraz kısa anlatmış olsam da, bu önemli bir konu. Sunumu indirerek incelemenizi öneririm. Emre'nin sunumunu buradan indirebilirsiniz. Ek kaynak olarak ayrıca Tonguç bey'in bir önceki sene yapmış olduğu iki sunumu da ekledim, onları buradan indirebilirsiniz.

Seri devam edecek, takip etmeye devam edin. Sunumlar ilerledikçe konular genişleyecek. Bu sayede Oracle hakkında bir çok konuda temel bilgiye sahip olabilirsiniz. Herkes bu tür sunum ve dökümanlara sahip olamıyor, Turkcell stajyerleri için, çok yüklü paralar verilerek alınan eğitimler düzeyinde bu sunumlar yaz boyunca devam edecek. Elime geçirebildiğim bütün ek kaynaklarıyla sizinle paylaşmaya devam edeceğim.

Hepinize iyi çalışmalar...

Related Topics
Links & References

Comments

Name: Ali Rıza Arslan
URL: URL not entered.
Date: 15.07.2007 21:16:19


Selam,

Staj notlarını okumamı Tonguç Abi tavsiye etti. Okuyorum ve gerçekten bana çok büyük katkısı oluyor.

Çok değerli insanların sunumlarını bizimle paylaşmanız sizin de değerli bir insan olduğunuzu gösteriyor. Okudukça orada olmak, o ortamın havasını teneffüs etmek ve sizlerle tanışmak istiyor insan.

Paylaşımınız için çok teşekkürler.

Çalışmalarınızda başarılar.

Teşekkür
Name: özay akdora
URL: http://akdora.wordpress.com
Date: 17.07.2007 20:11:27


Bilalcim söz uçar yazı kalır. Notların için teşekkürler.. Umarım bundan sonra derslerdeki notlarını da burada bizimle paylaşırsın :)))



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