Yazar: Ahmet Duruöz

Veritabanında çalıştırılmış sorguların tespiti

Oracle veritabanında çalıştırılmış sorguların tespiti için DBA_HIST_ACTIVE_SESS_HISTORY data dictionary görüntüsü kullanılabilir. Geçmişe yönelik bilgiler bulunmaktadır. Anlık çalışan sorgular için V$ACTIVE_SESSION_HISTORY görüntüsü sorgulanabilir. Gelen kayıtlar Active Session History (ASH) tablolarından gelmektedir. Bu yüzden çok geride çalışmış sorgular , bu görüntüde olmayacaktır.  Örneğin 30 gün öncesindeki çalışmış sorguların tespiti için aşağıdaki gibi bir sorgu kullanılabilir. SELECT h.sample_time, u.username, h.program, h.module, […]

Bir oturuma ait proses bilgilerinin tespiti

Oracle veritabanındaki bir oturumun, ilişkili olduğu proses bilgilerine aşağıdaki sorgu ile erişebilirsiniz. Bazen bir oturumu kapatmak ‘kill session’ ile mümkün olmayabiliyor. Bu durumda oturumun prosesini , işletim sistemi üzerinden kill etmek gerekmektedir. Aşağıdaki sorgu ile kill edilecek prosesin hangi instance’ta (inst_id) ve hangi proses id’sine (spid) sahip öğrenebilirsiniz.   SELECT s.inst_id, s.sid, s.serial#, s.sql_id, p.spid, […]

enq: TX – index contention bekleme olayı

“enq: TX – index contention” bekleme olayı genellikle uygulama, eşzamanlı olarak çok sayıda INSERT ve DELETE gerçekleştirdiğinde meydana gelir. Beklemenin nedeni, dizine yeni bir satır eklerken dizin bloğu bölünmeleridir. Blok ayırma işlemini gerçekleştiren işlemler , işlemlerini tamamlayana kadar mod 4’te TX kilidini beklemek zorunda kalacaktır. Soruna sebep olan nesnelerin tespiti için aşağıdaki sorguyu kullanabilirsiniz. SELECT […]

Profillerdeki password verify function limitinin FROM ROOT sorunu

Oracle veritabanlarında bir profilin password_verify_function limitinin değiştirilmesine rağmen , istenilen şekilde değişmeyip FROM ROOT şekline dönüşmektedir. Bu sorunun sebebi , profname$ data dictionary görüntüsündeki FLAGS değerinin ilgili profile için 1 (bir) olmasıdır. Bu değeri 0 (sıfır) olarak güncellendiğinde , profile limiti sorunsuz değiştirilebilecektir. Aşağıdaki gibi profil limiti değiştirilmesine rağmen değişim istenilen gibi olmamaktadır. SQL> alter profile users limit […]

Oracle veritabanlarında sql plan fix işlemi

Oracle veritabanlarında bazı durumlarda optimizer’ların doğru karar veremeyişinden kaynaklı , sorguların kötü planlarla çalışması durumu yaşanabilir. Daha iyi bir plan varsa , sorgunun bu planla çalışması için sabitleme gerekebilir. Aşağıdakai adımları izleyerek bir sorgunun planı sabitlenebilir. Diğer bir deyişle plan fix işlemi yapılabilir. Öncelikle veritabanında aşağıdaki parametrelerin değerlerinin belirtildiği gibi olduğunu kontrol edin. OPTIMIZER_USE_SQL_PLAN_BASELINES = TRUE […]