Forum

Yaygın bekleme olay...
 
Bildirimler
Hepsini Temizle

Yaygın bekleme olaylarına çözüm

14 Yazılar
2 Üyeler
0 Likes
409 Görüntüleme
(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Merhabalar,

Yaygın bekleme olaylarından  db file sequential reads ve db file scattered reads için çözüm önerilerinizi ve SQL sorgularıyla beraber yazabilir misiniz?

İyi çalışmalar.. 

 
Gönderildi : 24/09/2014 16:57

(@h-koraygunduz)
Gönderiler: 301
Üye
 

Merhabalar;


İşletim sistemi nedir bilmiyorum ama. Öncelikle Async I/O yapabiliyor olmalı. Bununla ilgili ne tür bir SQL beklentin var bilmiyorum tabi ama bu konu bir SQL ile çözülecek bir durum değil.


1. Storage nedir yük ne durumda vb.


2. İşletim sistemi Asyn I/O yapabiliyor mu ?


vb. bir sürü soru ve koşulla bakılması gereken bir konu.


Bu tip konularda bir SQL ile sihirli bir çözüm beklemek yerine bir veritabanı danışmanlığı ile sistemin incelenmesi ve bunun sonucunda bir aksiyon çıkarılarak uygulanması gerekir. Çünkü bu tip durumlar bir Performance Tuning çalışmalarıdır. Çünkü genel resme bakmadan sadece bir noktaya uygulanacak bir çözüm başka bir sıkıntı yaşamanıza neden olabilir.


Teşekkürler.

 
Gönderildi : 24/09/2014 18:23

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Merhabalar,

İşletim sistemi linux enterprise 6.4.Belirli tunning çalışmaları zaten nette hazır olarak bulunuyor. Onlarında birçoğunu denedim. Dedikleri gibi sonuçlar çıkıyor. Ama, şunu yazmamışlar bu sonuçlar çıkarsa şunu uygulayabilirsiniz dememişler. Ben uygulama noktasında belli şeyler yaptım fakat çözüm olmadı. Örnek vermek gerekirse tabloların partitions oluşturma sürelerini 6 saat olarak denedim birşey değişmedi. Asıl soru şu günlük milyon gelen verilere nasıl partitionslara ayırmak lazım yada ayırırsak performanslı olur? Mesela diğer bir uyguladığım çözümde last analyze olmayan tabloların analizlerini yapmak. Bunun gibi çözüm veya tecrübelerinizi paylaşabilirsiniz.

 
Gönderildi : 24/09/2014 18:42

(@h-koraygunduz)
Gönderiler: 301
Üye
 

Selam;


Ayırmak için bu tablolara gelen sorgulara göre karar vermek gerekir. Örneğin bu tablolara ağırlıklı sorgu neye göre geliyor ? Tarih aralığı mı ? Liste mi ? belli aralıklara mı ?


Bunu 3 türü var bunlardan hangisi senin için uygunsa ona göre seçip değerlendirebilirsin. Nette baktığın Performance tuning çalışmaları çok genel buradaki asıl konu senin veri yapın. Sorguların vb. Buna göre hedefe yönelik bir Performance Tuning çalışması gerekir. Analiz etmek her zaman işe yaramayabilir. Oracle 10g ve sonrası buna otomatik karar verebiliyor örneğin bir tablonun %10 dan fazlası değişmişse hergün saat 10 da analiz edip güncelliyor. Eğer aksi belirtilmemişse.


Range Partitioning
List Partitioning
Hash Partitioning


Partition türlerinden kendine ve sorgularına uygun olanı seçip uygulamalısın.


Linux libio paketi sayesinde Asyn I/O yapıyor dediğin değerleri elle değiştirmen çok performans sağlamayacak belkide wait'lerini daha da arttıracaktır.


Teşekkürler


 

 
Gönderildi : 24/09/2014 19:01

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Selam,

Tablolara gelen sorgular tarih aralıklarından dolayı problemler oluyor. Çünkü, tüm tablo sorgusu geliyor. Full table scan de diyebiliriz. Dediğiniz gibi libio zaten yüklü geliyor. Ama çalışıp çalışmadığından eminim değilim  🙂 bunu kontrol etmenin bir yöntemi varmı? Aslında çalışmıyorda diyebiliriz. Çünkü, bölümleri (partitions) analizleri yapılmayanları kendim yapıyorum. Buda libio çalışmadığını gösteriyor. Otomatik analiz yapan bir script te yazabiliriz aslında hiçte fena olmaz? 🙂

 
Gönderildi : 24/09/2014 19:46

(@h-koraygunduz)
Gönderiler: 301
Üye
 

Selam


Kesin çalışıyordur. Yoksa Oracle Async I/O yapamıyorum der. Default özelliktir. Sadece bazı Unix'lerde devreye almak gerekiyor. O yüzden OS ne diye sordum. libio işletim sisteminin diskler üzerinde asyn I/O yapma özelliği tablo analizi ile çok alakalı bir konu değil.


Teşekkürler

 
Gönderildi : 24/09/2014 19:55

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Selam

Sanırım libio konusunu performans ile ilgili olarak dediniz. Analizlerin yapılmadığı belli bunu yapan paket sanırım çalışmıyor. Bunu nasıl bulabilirim? 

 
Gönderildi : 24/09/2014 20:19

(@h-koraygunduz)
Gönderiler: 301
Üye
 

Selam;


Hocam bu paketin analiz ve oracle ile alakası yok. Bu paket işletim sisteminin disklere ASYN I/O yapması ile ilgili bir konu. İllaki takıldıysanız Red Hat doküman linki aşağıdadır. Orada nasıl check edeceğinizi anlatmış.


https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/sect-Oracle_9i_and_10g_Tuning_Guide-Enabling_Asynchronous_IO_and_Direct_IO_Support-Verifying_Asynchronous_IO_Usage.html


 


Teşekkürler.

 
Gönderildi : 24/09/2014 20:30

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Selam

Paketin oracle ve analizle alakası olmadığını anladım. Benim dediğim oracle kendi otomatik tablo analizi yapan bir paket var mı?

Kolay gelsin 

 
Gönderildi : 24/09/2014 20:35

(@h-koraygunduz)
Gönderiler: 301
Üye
 

Selam;


dbms.gather_table_stats


  http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_stats.htm


Teşekkürler

 
Gönderildi : 24/09/2014 20:58

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Selam,

dbms_stats.gather_table_stats biliyorum kullanıyorum zaten. Fakat, benim yapmak istediğim arka planda çalışacak bir paket yazmak istiyorum. Yeni partitions geldiğinde veya partition da değişiklik olduğunda arka planda çalışacak otomatik partition analizi yapacak. Otomatik çalışması sorun olabilir yani sürekli bakması gerekecek var mı yok mu diye ama o çok önemli değil 6 saatte bir çalışabilir.

İyi çalışmalar. 

 
Gönderildi : 25/09/2014 12:39

(@h-koraygunduz)
Gönderiler: 301
Üye
 

Selam;


DBMS Jobs oluşturup belli saate set edebilirsin.


http://www.orafaq.com/wiki/DBMS_SCHEDULER


Ancak;


Bir tabloya kayıt geldikçe analiz ettirmek ya da belli zamanlarda analiz ettirmek çok mantıklı bir performans çözümü değildir. Çünkü Oracle sorgular geldikçe Execute Planlar oluşturur ve sen her analiz ettirdiğinde bunlar çöp olur ve yenileri hesaplanır. Bu da ayrıca bir cost demektir. Yani sürekli analiz ettirmek çok mantıklı bir çözüm değil. Yapının incelenip veri şeması ve Veritabanı ile birlikte değerlendirilmesi gereken bir konu. Bu yöntemlerle bir çözüme ulaşacağını düşünmüyorum.


Teşekkürler.

 
Gönderildi : 25/09/2014 14:21

(@Alparslanturkmeno)
Gönderiler: 30
Eminent Member
Konu başlatıcı
 

Merhabalar,

Dediğiniz gibi bir prosedür ve bir jobs ile bu işi hallettim. Yapının veri şeması ve veritabanı birlikte değerlendirilmesi gereken bir konu demişsiniz. Bu değerlendirmeyi yaparken nerden , nasıl başlayabilirim ?

 
Gönderildi : 29/09/2014 14:32

(@h-koraygunduz)
Gönderiler: 301
Üye
 

Selam


http://www.cozumpark.com/forums/thread/441847.aspx


 Üzerinden yanıtladım.


Teşekkürler

 
Gönderildi : 29/09/2014 15:49

Paylaş: