• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 23.04.2016 00:55:33C programlama 2 oyun
  • 20.04.2016 16:34:41Local Database
  • 15.04.2016 14:26:15Fatura kayıt işlemi
  • 21.03.2016 01:55:30C# problem

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LINQ
  • LibreOffice
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

Oracle Bekleme Olayları

Oracle'da bekleme olayları, sebepler, alınacak eylemleri ve tavsiyeleri inceleyelim.

09.01.2012

Yazar: Uğur İnal (Google+)

Kategori: Oracle

4132

 Bekleme Olayı: db file sequential reads

Muhtemel sebepler:
  • Yanlış index kullanımı
  • Fragmente olmuş indexler
  • Belirli disk veya raw partitionlar üzerinde aşırı I/O trafiği
  • Kullanılan programda tasarım eksikliği
  • Index okuma performansı yüksek oranda ortalama bekleme süresine sebep olan yavaş I/O altsistemi ve/veya veritabanı dosyalarının fiziksel yerleşimindeki eksikliklerden etkilenmektedir.
 
Alınacak eylemler:
  • Tablodaki indexleri kontrol ederek doğru indeksin kullanıldığından emin olun. Bu noktada tampon bellekte işlem gören işlemlerden hangi indekslerin kullanılmadığını analiz edebilir ve gereksiz indeksleri bu şekilde düzeltebiliriz.
  • Top SQL listesinden tabloda kullanılan indekslerin WHERE kısmındaki kolonların order sırasını kontrol ediniz.
  • Indeksleri yüksek kümeleme faktöründe tekrar oluşturun.
  • Ziyaret edilen blok miktarını azaltmak için bölümlendirme(partitioning) kullanın.
  • İyileştirme istatistiklerinin güncel olduğundan emin olun.
  • Yüksek I/O trafiğine sahip olan veri dosyalarını farklı veri dosyalarına taşıyın.
  • Çoklu bellek havuzlarını kullanmayı düşünün ve sık kullanılan indeks ve tabloları KEEP havuzunda tutun.
  • indeksler üzerinden veri erişimi sağlayan SQL cümleciklerinin işlem planlarını araştırın.
  • Indeksler üzerinden veri erişimini sağlayın.
  • Kullandğınız program OLTP mi veya DSS mi? Full tablo taraması daha verimlimidir? SQL cümleciklerinde doğru “driving” tablolarmı kullanılıyor? sorularının cevaplarını analiz edin.
  • İyileştirmenin hedefi hem mantıksal hemde fiziksel I/O trafiğini azaltmaktır. Bu noktada öncelikle yeterli önbelleğin olduğundan ve hızlı fiziksel sistemlerde ve doğru RAID yapısında çalıştığınızdan emin olun.
 
Tavsiyeler:
  • Oracle prosesi SGA içinde o an olmayan bloğu ister ve diskten SGA alanına veritabanı bloğunun okunması için bekler.
  • Sabit orandaki db file sequential read bekleme zamanını azaltmak için yapılan tüm iyileştirme işlemleri sonucunda bu oran hala yüksekse programınızda iyileştirmeye odaklanmanız gerekir.
  • Eğer indeksin DBA_INDEXES.CLUSTERING_FACTOR değeri tablodaki blokların sayısına yaklaşırsa bu durumda tablodaki pekçok satır sıralanmıştır Bu arzulanan bir sonuç olacaktır.
  • Ancak, eğer kümeleme faktörü tabloadaki satır sayısına yaklaşırsa bu demektirki tablodaki pek çok satır rastgele sıralanmıştır ve bu sebeple bu operasyonu tamamlamak için çok daha fazla I/O meydana gelecektir. İndeksin kümeleme faktörünü iyileştirmek için  tablo tekrar oluşturulabilir, böylece satırlar indeks anahtarına gore sıralanacak ve sonrasında indeksler tekrar oluşturulacaktır.OPTIMIZER_INDEX_COST_ADJ ve  OPTIMIZER_INDEX_CACHING başlangıç parametreleri “nested loop” işlemlerini desteklemek için iyileştiriciyi etkiler ve full tablo taraması üzerinden indeks erişim yolu seçer.
  • I/O tabanlı iyileştirmeler için Metalink Note# 223117.1 a bakınız.
  • Daha fazla db file sequential read iyileştirme metotları için Metalink Note# 34559.1 a bakınız.
 
 
Bekleme Olayı: db file scattered reads
Muhtemel sebepler:
  • Oracle oturumu çoklu komşu veritabanı bloklarını(DB_FILE_MULTIBLOCK_READ_COUNT değerine kadar) disk alanından SGA’ya okunmak için beklemektedir..
  • Çok fazla full tablo taramaları (FTS)
  • Hızlı full indeks taramaları
 
Alınacak Eylemler:
  • DB_FILE_MULTIBLOCK_READ_COUNT parametresini ayarlayarak çoklu blok I/O işlemlerini optimize edin.
  • Bölümlendirmeleri budamak ziyaret edilen bloklarının sayısını azaltır.
  • Çoklu tampon havuzları kullanmayı düşünün ve sık kullanılan indeks ve tabloları KEEP pool içinde saklayın.
  • En çok bekleme olaylarını başlatan SQL cümlelerini iyileştirin. Burdaki amaç fiziksel ve mantıksal okuma sayısını azaltmaktır.
  • SQL sonucu erişilen data indeks FFSmi yoksa full tablo taraması sonucumu gelmeli?
  • İndeks aralığı veya unique taramamı en etkili olacaktır ?
  • Sorgu doğru “driving” tablomu kullanıyor?
  • SQL cümleleri ilgili hash veya ilgili merge birleşmelerinemi dayanıyor?
  • Eğer full taramalar uygunsa parallel sorgu cevap süresini iyileştiriyormu?
  • Amaç, hem fiziksel  hemde mantıksal I/O lar için istekleri azaltmaktır.Buna erişmek için en iyi yol SQL ve program iyileştirmesi olacaktır.
  • LAST_ANALYSED tarihini control ederek tüm istatistiklerin güncel veriyi temsil ettiğinden emin olun.
 
 
Bekleme Olayı: log file parallel write
Muhtemel sebepler:
  • LGWR  redo log tampon belleğin içeriklerini online log dosyalarına yazarken bekler.
  • I/O, online redo log dosyalarını tutarken sub sistemde bekler.
 
Alınacak Eylemler:
  • Oluşturulan redo miktarını azaltın.
  • Çok gerekmedikçe tablespaceleri hot yedekleme modunda bırakmayın.
  • Redo log dosyaları için RAID 5 kullanmayın.
  • Redo log dosyaları için daha hızlı diskler kullanın.
  • İçeriklerin çatışmaması için arşiv redo log dosyaları ve online redo log dosyalarını birbirlerinden farklı disklerde tutulduğundan emin olun.
  • SQL cümleciklerinde NOLOGGING veya UNRECOVERABLE seçeneklerini kullanmayı dikkate alın.
 
 
Bekleme Olayı: log file sync
Muhtemel sebepler:
Oracle arkaplan prosesleri COMMIT veya ROLLBACK lerden birini sonuçlandırmak için beklemektedir.
 
Alınacak Eylemler:
  • LGWR prosesini disklere doğru iyi çıktı almak için iyileştirin.Örneğin, redo logları RAID 5 te tutmayın, RAID-1 tercih edin.
  • İşlemleri yığınlayarak tüm COMMIT sayısını azaltın ki daha az sayıda COMMIT işlemleri tetiklensin.
 
Tavsiyeler:
  • Bakınız Metalink Reference Note# 34592.1
  • Log dosyası senkronizasyonunda yüksek beklemeleri optimize etmek için bakınız Metalink referans Note# 125269.1
  • Redo log tampon bellek iyileştirmesi ve redo latch içeriği iyileştirmesi için bakınız Metalink Referans Note# 147471.1
  • kullanmayı dikkate alın.
 
 
Bekleme Olayı: buffer busy waits
Muhtemel sebepler:
  • Yoğun bellek beklemeleri I/O sekmeli Oracle sistemlerinde olağandır.
  • Bu olayın meydana geldiği 2 temel neden vardır:
  • Başka bir oturum bloğu bellek içinden okumaktadır.
  • Başka bir oturum isteğimize karşılık belleği uyumsuz bir modda tutmaktadır.
  • Bu beklemeler okuma/okuma,okuma/yazma veya yazma/yazma içeriklerine işaret eder.
  • Oracle oturumu belleğe tutturmak için beklemektedir. Bellek okunmadan veya değiştirilmeden once tutturulmalıdır.Sadece bir proses belleği herhangi bir zamanda tutuştabilir.
  • Bu beklemeler daha çok satır içerecek kadar  daha geniş blok büyüklüklerince pekiştirilir.
  • Bu beklemeler bir oturum tampon bellek içindeki bir veritabanı bloğuna erişmek istediğinde ancak bellek meşgul olduğunda erişemediğinde meydana gelir.
  • Birkaç proses aynı bloğu tekrar tekrar okuduğundan ötürü bu beklemeler sık sık olur. Mesela, farklı kullanıcılar aynı anda aynı bloğa erişim sağlıyorsa...
 
Alınacak Eylemler:
Yoğun bellek bekleme sayısını azaltmanın ana yolu sistem üzerindeki toplam I/O yu azaltmaktır.Blok tipine bağlı olarak uygulanacak eylemler aşağıdaki gibi farklıdır.
 
Data blokları için;
 
  • Çok fazla erişilen blokları programınızdan çıkartın.
  • Tekrarlı tarama/seçimsiz indeksleri kontrol edin.
  • Objeleri daha yüksek PCTFREE oranlarında yeniden oluşturun, böylece blok başına satır sayısını azaltmış olursunuz.
  • Farklı prosesler tarafından indekslerdeki aynı lokasyona eklenen indeksleri kontrol edin.
  • INITRANS ve MAXTRANS değerlerini artırın, PCTUSED değerini azaltın.Bu şekilde tablolar daha az sıkışır.
  • Blok başına satır sayısını azaltın.
 
Segment Başlığı
 
FREELISTS ve FREELIST GROUP sayısını artırın.
 
Undo Başlığı
 
Rollback segment sayısını artırın.
 
Tavsiyeler:
  • buffer busy waits olayında beklemede olan prosesin sebep kodu bekleme olayının P3 parametresinde yayınlanır.
  • En sık karşılaşılan bekleme olaylarından olan 130 ve 220 arası referanslar için Metalink Note # 34405.1 bakınız.
  • Yoğun ve rastgele bellek bekleme performans problemleri içinResolving intense and ran Metalink Note# 155971.1 bakınız.
 
 
 
Bekleme Olayı: buffer buffer waits
Muhtemel sebepler:
  • Boş tampon beklenmekte ancak bellekte çok fazla kirli tamponlar yüzünden bellekte yeterli boş tampon yok.
  • Ya tampon bellek çok küçük veya DBWR değiştirlmiş tamponları diske yazmak için çok yavaş kalmakta.
  • DBWR yazma taleplerini sürdürememekte
  • Muhtemelen yetersiz büyüklükte redo log dosyalar veya yüksek veritabanı aktiviteleri sebebiyle çok fazla checkpoint meydana gelmekte.
  • Geniş sort ve full tablo taramaları, tamponu DBWR prosesinin diske yazabileceğinden çok daha hızlı şekilde değiştirilmiş bloklarla doldurmakta.
  • Eğer kirli tamponların sayısı DBWR prosesinin yığın başına yazabileceği miktardan daha fazla diske yazma ihtiyacı duyarsa, bu beklemeler oluşabilir.
 
Alınacak Eylemler:
  • Checkpoint sıklığını azaltın. Online redo log dosyası büyüklüğünü artırın.
  • Tampon bellek büyüklüğünü sorgulayın. SGA alanında tampon belleği artırmayı değerlendirin.
  • disk_asynch_io = true
  • DBWR prosesi sayısını CPU sayısına bağlı olarak arttırın.
  • Veri dosyalarını diskler veya disk controller üzerine serpiştirerek sıcak noktaların olmadığından emin olun.
  • Önceden sort işlemleri ve verileri yeniden organize etmek yardımcı olabilir.
 
Tavsiyeler:
  • Tampon bellek ve DBWR yi anlamak ve iyileştirmek için bakınız Metalink Note# 62172.1
  • Tampon bellek içinde sıcak blokların nasıl  belirleneceği için bakınız Metalink Note# 163424.1
 
 
 
Bekleme Olayı: enqueue waits
Muhtemel sebepler:
Talep edilen moda karşılık uyumsuz bir mod içinde başka oturumlar tarafından tutulan kilitler sebebiyle olan beklemeyi belirten bekleme olayıdır..
 
TX İşlem Kilidi
 
  • Genellikle tablo oluşum kaynaklı hatalar veya program oluşumunda kaynaklanan hatalar
  • Satır seviye kilitler tarafındaki çakışmaları belirtir.
  • Bir işlem başka bir işlem tarafından kilitlenmiş satırları güncellemeye veya silmeye çalıştığından bu bekleme oluşur.
  • Bu bekleme olayı genellikle program katmanındaki sorunlardan kaynaklanır.
 
TM DML Önkuyruk Kilidi
 
Genelikle yabancı anahtarların tek tek indekslenmediği durumlarda program katmanındaki sorunlardan kaynaklanır.
 
ST Kilidi
 
  • Drop, truncate veya coalesce gibi eylemler içeren ST kilidine gereksinim duyan UET$(kullanılmış extent) ve FET$(boş extent) tablolarını değiştiren veritabanı işlemleri.
  • ST kilitlerindeki çakışmalar dictionary yönetimli tablespace yapısında birden fazla oturumun aktif olarak dinamik disk alanını paylaştığı yada serbest bıraktığını işaret eder.
 
Alınacak Eylemler:
  • Bekleme ve bekleme sürelerini azaltın. TX Önkuyruk tabanlı enqueue beklemeleri gördüğünüzde ilk adım olarak bloklayanın kim olduğunu bulun ve aynı kaynak için birden fazla bekleyen olup olmadığını araştırın.
  • Mod 3 içindeki TM önkuyruk  beklemeleri öncelikli olarak indekslenmemiş yabancı anahtar kolonları olmasından kaynaklıdır.
  • Oracle 9i için yabancı anahtarlarda indeks oluşturun.
  • ST kilit çakışmalarını azaltmak için alttakileri uygulayın;
  • Lokal yönetimli tablespace kullanın.
  • Tüm geçici tablespacesleri yeniden oluşturun. CREATE TEMPORARY
    TABLESPACE TEMPFILE…
 
Tavsiyeler:
  • Eşzamanlı kilitleyebilmede önkuyruk sayısını maksimum sayıda kontrol etmek için  ENQUEUE_RESOURCES parametresi kullanılır. Bakınız Metalink Reference Note# 34566.1
  • Önkuyrukta bekleyen oturumları izlemek için bakınız Metalink Note# 102925.1
  • V$LOCK görünümü ve kilitleme modları için bakınız Metalink Note:29787.1
 
 
 
Bekleme Olayı: Cache buffer chain latch
Muhtemel sebepler:
  • Bu mandal(latch) data blokları için arama yapılırken elde edilir. Tampon bellek blok sırasıdır ve taramaya ihtiyaç duyulduğunda her bir sıra alt mandal tarafından korunur.
  • Bu bekleme olayının bir diğer ortak sebebi ise sıcak bloklardır. Birden fazla oturum bu bekleme olayının alt sırasındaki bir veya daha fazla bloğa tekrar tekrar erişiyorsa bu bekleme olayı meydana gelir.
  • EXECUTION başına yüksek BUFFER_GETS(mantıksal okuma-bellekten) değerine sahip SQL cümleleri baş suçludur.
  • Birden fazla eşzamanlı SQL oturumu aynı veri setini hedef gösteren yetersiz SQL leri yürütmektedir.
 
Alınacak Eylemler:
  • Bu bekleme olayı için çakışmaları azaltmak genellikle iyileştirme ile mantıkssal I/O oranını azaltmaya ve SQL ilişkili I/O gereksinimini azaltmaya ihtiyaç duymaktadır. Yüksek I/O oranı çok fazla erişilen blokları işaret eder.
  • Tabloyu export edin, PCTFREE oranını anlamlı olarak arttırın ve verileri import edin.Bu metot bok başına satır sayısını azaltacak ve bu satırları pek çok blok üzerine dağıtıcaktır. Tabi bu depolama alanı ihtiyacını artıracak ve full tablo taramaları yavaşlayacaktır.
  • Tabloda blok başına kayıt sayısını minimize edin.
  • Indeksler için bunları daha yüksek PCTFREE değerlerinde yeniden oluşturun, tabi bunun indeksin yüksekliğini artıracağını aklıda tutarak.
  • Blok boyutunu azaltmayı gözönünde
  • İndex ve buna bağlı tabloların aynı blok boyutunda olduğundan emin olun.
  • Hash latch sayısı _DB_BLOCKS_HASH_LATCHES parametresi ile değiştirilebilir.
 
 
 

Yazar Hakkında

Uğur İnal

Uğur İnal

uguroracle.blogspot.com/

10 yılı aşkın süredir Oracle benim için bir tutku... Oracle 9i sürümünden beri yurtiçi ve yurtdışında harmanlanmış Oracle eğitimleri verdim, ayrıca teknik danışmanlık hizmetlerinde bulundum. 2002 yılından beri Oracle 9i OCA ve OCP sertifikaları sahibiyim. Yıllardan beri bitiremediğim (yogunluktan vakit bulamayıp bahanesine sığınıp-aslında bitirmek istemediğim belkide-) MBA eğitimine devam etmekteyim. Son 2 yıldır uluslararası bir firmada global pozisyonda Oracle ağırlıklı RDBMS Performans Geliştirme Uzmanı olarak görev yapmaktayım. 2 yıldır da şube kurucusu olduğum Türkiye Bilişim Derneği(TBD) Antalya şubesinde yönetim kurulu üyesiyim. Benimle uinal@hotmail.com adresinden irtibata geçebilirsiniz.

Sosyal Medya

ORANLAR

  • 4132izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Böyle bir sayfalama ağ trafiğini hafifleti...
  • Merhaba, ellerinize sağlık çok yardımcı ol...
  • Merhaba Bu uygulama örneğinden ASP.net ...
  • Hocam Link başka sayfaya yönlendiriyor.
  • merhaba benim merak ettiğim bir konu var y...

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 122030
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 68134
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 49928
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ