18

Kasım
2014

SQL Komutlarının Ayrıştırılması Safhası Hakkında

Yazar: Ugur İnal  |  Kategori: oracle  |  Yorum: Yok   |  

SQL ile ilgili bir performans sorunu oluştuğunda,sorunu anlamak ve ardından bir çözüm bulabilmek için ilk olarak SQL komutlarının veritabanında nasıl işlendiğinin anlaşılması gerekmektedir. Uygulama, veritabanı instance’ına her bağlandığında, eninde sonunda veritabanı sunucusunda yaslı olan bir sunucu prosesine atanır. Bu sunucu prosesi, veritabanı ve son kullanıcı uygulaması arasındaki arayüzü desteklemektedir. Bu proses ayrıca SQL komutu sentaksını kontrol etmek, SQL komutunun nasıl yürütüldüğünün ve sonuçların son kullanıcı uygulamasına nasıl döndüğünün belirlenmesinden sorumludur.

SQL komutu, sunucu prosesi tarafından alındığında, “hafif ayrıştırma-soft parse” meydana gelmektedir. Bu safhada komut sentaksı doğruluk için kontrol edilmekte, komut içinde referans verilen objelere kullanıcının erişim yetkisinin olduğu doğrulanmakta ve SQL“karma” değeri(SHV-SQL hash value) komut metninde hesaplanmaktadır. SHV, veritabanı içinde komutu kolayca belirlemek için kullanılan numerik bir değerdir. Ardından, SGA içindeki “library cache” de SHV in halen mevcut olup olmadığının belirlenmesi için araştırılır. Aynı yada diğer bir sunucu prosesi, benzer bir SQL komutunu halihazırda çalıştırdığında bu olay meydana gelir.

Eğer SHV bulunursa, sunucu prosesi komut hakkında “library cache” içinde saklanan bilgiyi getirir. Bu, yürütme planı olarak bilinen, sorgu içinde çeşitli nesnelere erişim için kullanılan algoritmaları içermektedir.  Komut alındıktan sonra, eğer bağlaç değişkenler(bind variables) komut içinde mevcutsa, aslına uygun değerler yerine geçer ve yürütme planı tarafından belirtilen işlemler sunucu prosesi tarafından yapılır. SQL komutlarını yürütürken bütünsel olarak en düşük kaynak maliyetini ürettiği ve en hızlı yanıt süresini verdiğinden dolayı bu arzu edilen bir olaylar dizisi olmaktadır.

Devamını Oku »

18

Kasım
2014

Veritabanındaki En Son Bekleme Olaylarının Analizi

Yazar: Ugur İnal  |  Kategori: oracle  |  Yorum: Yok   |  

Oracle 11g veritabanında en son bekleme olaylarını gerek kullanıcılar, gerek SQL komutları ve gerekse objeler bazında gözlemlemek ve analiz etmek için V$ACTIVE_SESSION_HISTORY görünümü kullanılabilir. Bu sistem görünümü ile veritabanında oturumların en son bekleme olayları ile ilgili istatistik bilgilerine erişilebilmektedir.  Bu görünümün V$SESSION ve DBA_USERS gibi sistem görünümü ve tabloları ile birleşimi sonucu elde edilen ve faydalı olacağına inandığım bazı analiz sorguları aşağıda yer almaktadır;

Son 15 dakika içindeki en önemli bekleme olaylarının tespit edilmesi;

 select event,

sum(wait_time + time_waited) total_wait_time

from v$active_session_history

where sample_time between sysdate – 30/2880 and sysdate

group by event order by total_wait_time desc;

Devamını Oku »

18

Kasım
2014

SQL Komutları İçin Delta Değerlerinin İzlenmesi

Yazar: Ugur İnal  |  Kategori: oracle  |  Yorum: Yok   |  

V$SQLAREA görünümü library cache içindeki imleçler ile ilişkili tüm alt imleçlerin istatistiklerini birlikte gruplandırır. Buna rağmen gruplandırma bazı işlemleri kolaylaştırırken, “library cache latch” için artan talep sebebiyle bu görünüme erişmek muhtemelen daha fazla kaynak tüketecektir. İstatistikler, sürekli alma(consistent gets) sayısı, diskten blok okumaları, çalıştırmalar, satır alıp getirmeler(fetches), sortlar, bellek kullanımı, yüklemeler, invalidationlar ve bazı diğer alt istatistikler için sağlanmaktadır.

Oracle 9.2 sürümünden itibaren, bu görünüm tamamlanma süresi(elapsed time) ve CPU kullanımı bilgilerinide sağlamaktadır. Görünüm her 1 saniye ve 5 saniye arasında güncellenmektedir.

V$SQL görünümü tüm alt imleçleri gruplandırmadan benzer bilgiyi sağlamaktadır; böylece görünüme erişmek daha az kaynak tüketmekle beraber, ayrıca “adaptive cursor sharing(uyumlu imleç paylaşımı)”, bağlaç(bind) değişken tanımı/değeri uzunluk değişimleri, değişik optimizer parametreleri çalıştıran oturumlar, istatistik toplama gibi SQL komutu  için “değişken” çalıştırma planına sahip türlü alt imleçler için istatistikleride görmeye imkan vermektedir. Bu görünümde her 1 saniye ve 5 saniye arasında değişmektedir.

Oracle 10.2 sürümü ile gelen V$SQLSTATS görünümü ise imleç istatistiklerini daha verimli bir metot olarak izlemek için SQL_ID ve  PLAN_HASH_VALUE kolonlarını birincil anahtar kolonlar olarak kullanmaktadır. Bu görünümde her 1 saniye ve 5 saniye arasında değişmektedir.

V$SESSION_LONGOPS görünümü,  çalıştırma için sorumlu olan oturumun SID ve SERIAL# değerlerini, işlemin tamamlanma süresini, işlemin tamamlanması için tahmini geri kalan süresi ile o an çalışan çalıştırma planının satırını getirerek en azından 6 saniye aktif olan operasyonlar için durum güncellemesi sağlamaktadır.

Devamını Oku »

17

Kasım
2014

EMC NetWorker Oracle (NMO) Kurulumu ve Backup İşlemi

Yazar: Özgür Umut Vurgun  |  Kategori: oracle  |  Yorum: Yok   |  

Sistemimizde yedekleme işlemlerini depolama sistemleri ve bunları yöneten yazılımlar  aracılığıyla ile gerçekleştirebiliriz. Bunlardan en yaygın olanı EMC NetWorker’ın Oracle için kullanılmasını ve kurulumunu bu yazıda bulacaksınız.

–        NMO Kurulumu IBM AIX ortamında  ROOT kullanıcısı ile aşağıdaki adımları takip ederek yapabilirsiniz .

–      Yazılımın yüklenecek paketini installp komutu ile path’i verere yüklüyoruz.

   installp -a -d /dir_pathname LGTOnmo.rte

–       Paketi kurduktan sonra , kurulumda sorun olup olmadığını kontrol etmeliyiz.

 test root@test > lslpp -L all | grep -i lgtonmo

 LGTOnmo.rte      5.0.0.0    C     F    LGTOnmo.rte 5.0.0.0, the installation succeeded.” 

***** Eğer komutun çıktısındaLGTOnmo.rte 5.0.0.0, the installation succeeded.”  alabilirsek kurulum sorunsuz demektir.

Devamını Oku »

17

Kasım
2014

Oracle 11gR2 > 12cR1 Upgrade

Yazar: Özgür Umut Vurgun  |  Kategori: oracle  |  Yorum: Yok   |  

Oracle 12cR1 çıktı ve biraz geçte olsa test etme imkanım oldu. Her zaman olduğu gibi işe kurulum tarafından başlayayım dedim. Oracle 11.2.0.3 versiyonunu Oracle 12c’ye upgrade etmeyi bu yazıda ekran çıktıları ile göreceğiz.

Bu işlemde  dikkat etmemiz gereken ufak detaylar var. Bu işlemi yapmak Oracle 12c’nin DBUA arayüzünü kullanacağız ancak bunu kullanabilmemiz için belli versiyonlar var. Biz bu işlemi 11.2.0.3’de gerçekleştireceğiz. Bunun için aşağıdaki linki inceleyebilirsiniz…

http://docs.oracle.com/cd/E24628_01/em.121/e27046/upgrade_db.htm#CHDJGJEG

Sırasıyla Upgrade işlemimiz;

1. Öncelikle Oracle 12c’i sistemimize binary olarak kurmalıyız. Standart Oracle kurulumu olduğundan sadece aşağıdaki ekrana dikkat etmeniz yeterli olacaktır. Normal kurulum adımlarını takip edip kurulumu tamamlayabiliriz.

12c09_1

2. Oracle 12c’nin DBAU arayüzünü başlatabiliriz. 

Açılan ekranda iki seçenek karşımıza çıkacaktır. Buradaki opsiyonlar ile Upgrade yada farklı bir release’den Oracle 12c’ye taşıyabiliriz. Burada ilk seçeneği seçeriz.

dbcu_01

Devamını Oku »

17

Ocak
2014

TROUG Ankara Buluşması 2014

Yazar: turkceoracle  |  Kategori: oracle  |  Yorum: Yok   |  

kolaj

TROUG’un 2014 yılının ilk etkinliği olan ‘TROUG Ankara Buluşması‘ 16 Ocak 2014’de  TOBB Üniversitesi’nde gerçekleşti.

Etkinlikte Oracle Exadata, Oracle 12c,APEX vs… gibi bir çok alana dair oturumlar düzenlendi.  Etkinlikte yapılan oturumların sunumlarını inceleyebilirsiniz…

– Enterprise Manager 12c: ASH analytics

Gökhan Atıl

Exadata Maximum Avilabilty Architecture

Emre Baransel

– Oracle Audit Vault 12c ile Veritabanı Denetimi

Serdar Çetinkaya

– Oracle 12c Pluaggable Database Hands On

Özgür Umut Vurgun

– APEX ile Kompleks Uygulamalar Geliştirmek

Ergem Peker

– SQLT ve SQLHC Araçlarının Kullanımı

Bora Yüret

– Oracle Spatial Genel Bakış ve Veri Kalitesi

Murat Hançeroğlu

28

Mart
2013

RMAN 3

Yazar: Mustafa Bektaş Tepe  |  Kategori: oracle  |  Yorum: Yok   |  

Yedek Bilgilerini Görme

Alınan yedekleri data dictionary view’leri ile sorgulayarak öğrenebileceğimiz gibi LIST ve REPORT komutu ile RMAN üzerindede rapolayabiliriz.

1.List Komutu

RMAN ile alınan yedekler özel bir formatta saklanır. RMAN ile oluşturulan dosyaların ismine bakarak, hangi tarihe neye istinâden yedek alındığını bulmak biraz güç olabiliyor. Bunun için aşağıdaki komutları kullanmak uygun olacaktır.

  • Alınan yedeklerin tam olarak içeriğini görmek:
RMAN> LIST BACKUP;
  • Alınan yedeklerin özet bilgisini görmek:
RMAN> LIST BACKUP SUMMARY;
  • Image copy olarak alınan yedekleri aşağıdaki gibi görebiliriz.
RMAN> LIST COPY;
  • Sadece archivelog yedeklerini aşağıdaki gibi görebiliriz.
RMAN> LIST ARCHIVELOG ALL;
  • Belirli bir datafile yedeklerini listeleyebiliriz.
RMAN> LIST BACKUP OF DATAFILE 3;
  • Hangi dosyanın hangi yedek parçası (backup piece) içinde olduğunu görmek:
RMAN> LIST BACKUP OF DATABASE;
  • Bir önceki komutu belirli bir tarih aralığında girerek kullanmak:
RMAN> LIST BACKUP OF DATABASE BETWEEN '01-ARP-2008' AND '28-JUN-2008';
  • Alınan yedeklerin taşıdığı dosyaları görmek:
RMAN> LIST BACKUP BY FILE;

Devamını Oku »

28

Mart
2013

RMAN 2

Yazar: Mustafa Bektaş Tepe  |  Kategori: oracle  |  Yorum: Yok   |  

RMAN İLE YEDEK ALMAK

RMAN, aldığı yedekleri sadece kendisinin anladığı bir formatta tutuyor. RMAN’in oluşturduğu bir yedek setini (backupset) unzip edip dilediğiniz gibi kullanma şansına sahip değilsiniz. RMAN ile alınan bir yedek varsa; yedekten dönüş kısmı yine RMAN ile yapılmak zorunda.

Rman,aşağıdaki dosya tiplerinin yedeğini alabilmektedir.

  • Data file
  • Control file
  • Archive log
  • SPfile
  • Backup Piece(Daha önce alınmış yedek dosyaları)

RMAN,online rede log dosyalarını yedeklemez.Online redo log dosyalarını yedeklemenin en güzel yolu veritabanı yedeğinden sonra ‘alter system switch logfile’ komutunu çalıştırarak yeni bir arşiv dosyası oluşturmak ve sonrasında arşiv log dosyalarının yedeğini almak.

NOT : RMAN kullanmak istiyorsak veritabanınızın ARCHIVELOG modunda olması gerekmektedir.

NOT : RMAN yedeğinin nereye alınacağını belirtmessek default olarak FRA lokasyonu kullanır.

1.Tüm Veritabanının Yedeginin Alınması

RMAN ile bağlantı kurduktan sonra, aşağıdaki komutu girerek database’in tam bir yedeğini almanız mümkündür:

RMAN> backup database;

RMAN’de 0 ve 1 olmak üzere 2 yedek alma seviyesi vardır.0,tam(full) veritabanı yedeği alınacağını,1 ise artan(incremental) yedek alınacağını belirler.

RMAN> backup incremental level=0 database;

Tüm veritabanı ile birlikte archive log dosyalarının da yedeğini aşağıdaki komut ile alabiliriz.Bu komut ile bütün data file’leri,yedek başlama anına kadar olan tüm archivelog dosyalarını ve yedek esnasında oluşan tüm archive log dosyalarının yedeği alınır.

RMAN> backup incremental level=0 database plus archivelog;

RMAN veritabanı yedeğini yukarıdaki gibi(default) backupset olarak alırken sadece kullanılan blokların yedeği alınır.Bundan dolayı bir data file’ın boyutu yedek dosyasının(backup piece) boyutundan daha büyüktür.Çünkü backupset yedek alırken kullanılmayan blokların yedeğini almayız.RMAN aynı zamanda datafile’ı byte byte bire bir kopyasınıda yedek olarak alabilmektedir.Bu şekilde alınan yedekler image copy yedek olarak bilinir.

RMAN default olarak yedekleri backupset olarak alır.İstenilirse ‘AS BACKUPSET’ kelimesiyle özellikle yedeğin backupset olarak alınacağını aşağıdaki gibi belirtebiliriz.

RMAN> backup as backup database;

Image copy yedek almayı düşünüyorsak,komutumuz aşağıdaki gibi olmalıdır.

RMAN> backup as copy database;

Devamını Oku »

28

Mart
2013

RMAN 1

Yazar: Mustafa Bektaş Tepe  |  Kategori: oracle  |  Yorum: Yok   |  

Merhaba arkadaşlar bu yazımda RMAN’den bahsedecegim.RMAN ile ilgili teknik yazıya geçmeden önce bu yazıyı hazırlarken çok fazla yararlandıgım ve çok fazla yararını gördügüm dökümanlardan bahsetmek istiyorum.Bunlardan birincisi Talip hoca’nın(Talip Hakan Öztürk) ”Oracle Database 11g R2 İleri Veritabanı Yönetimi” adlı çok yararlandıgım ve çok begendim kitap,kitap türkçe ve çok güzel anlatılmış herkese tavsiye ederim  ve bu yazı aracılıgı ile de böyle bir kitap için Talip hoca’ya teşekür ederim.İkinci kaynak olarak Çagatay hoca’nın(Çagatay Çebi) RMAN ile ilgili makalesi,Çagatay hoca her zaman takip ettigim sınırlı türkçe bloklardandır ve makalelerini çok açıklayıcı ve yararlı bulurum herkese tavsiye ederim. Üçüncü olarak Ugur hoca’nın(Ugur İnce) RMAN ile ilgili makalesinden çok yararlandım ve özelliklede RMAN’ın avantajları kısmını okumanızı tavsiye ederim.Dördüncü olarak da RMAN ile ilgili daha ayrıntılı bilgilere ihtiyacınız olursa benimde yararlandıgım Robert Freeman ve Matthew Hart’ın yazdıgı ”Oracle RMAN 11g Backup and Recovery” adlı kitabını öneririm RMAN’i baştan aşagı anlatan güzel bir kitap.

RMAN (Recovery Manager), Oracle’in sunduğu bir yedek alma ve kurtarma aracıdır. RMAN aracı Oracle veritabanı 8 ile birlikte gelmeye başlamıştır ve her veritabanı versiyonu ile birlikte güçlenmiştir. RMAN’i diğer yöntemlere göre farklı kılan; DBA üzerindeki iş yükünü hafifletmisidir.RMAN yedek almayla ilgili birçok işi otomatik yapabilme imkanı sunar.

RMAN (Oracle Recovery Manager) Oracle tarafından ücretsiz olarak (bundle) sunulan ve veritabanızın yedeklenmesi sağlayan bir yazılımdır. Bu yazılımı hem CLI yani command line ortamından kullanabileceğiniz gibi hem de Enterprise Manager üzerinden de çalıştırabilirsiniz. RMAN aracını veritabanımızın çalıştığı sunucu üzerinde kullanabileceğimiz gibi client bilgisayar üzerinden de kullanabiliriz.Client üzerinden kullanıyorsak dikkat etmemiz gereken nokta RMAN bağlantılarının dedicated olmasıdır.Bunun için de TNSNAMES.ORA dosyasında SERVER=DEDICATED olarak set edilmelidir.

RMAN’ın diğer backup yöntemlerine göre avantajları :

  • Kullanılmayan blokların atlanması: Bir tabloda daha önceden yazılı olmayan bloklar (High Water Mark(HWM) üstünde kalan bloklar gibi) yedeklenmez. Geleneksel yedeklemede hangi bloğun kullanıldığı bilinmediğinden bu atlama işi olamaz.
  • Yedeğin sıkıştırılması(Compression): Oracle 11g ile gelen bir özelliktir.Alınan yedekleri isteğe bağlı olarak sıkıştırabiliriz.
  •  Veritabanı yedeklerini açma: Backup alma işlemlerini daha basite indirger. Örneğin hotbackup almak için tablespace’leri backup mode’a çekeyim; sonra tekrar normal mode’a alırım gibi dertleriniz olmaz.alter tablespace …. begin/end backup cümleleri kullanmaya gerek kalmadan tablespace yedeklemesi kolayca yapılabilir.
  • Gerçek artalan(incremental) yedekleme: Geri kurtarma esnasındaki süreyi kısaltmak için en son yedekten sonraki değişmeyen yedekler yedek setine yazılmaz. Böylece, CPU süresi, I/O süresi ve disk alanında performans sağlanır. RMAN, geri yükleme ve kurtarma işlemlerinde artalan güncelli yedekleri kullanır.
  • Blok seviyesinde geri kurtarma: Downtime süresini düşürmek için Oracle blok seviyesinde geri kurtarmayı destekler. Bir tablespace, sadece bozulmuş blokların onarma işlemi seviyesinde kapalı kalmaz.
  • Çoklu I/O kanalları: Veritabanı server’imizin donanım altyapısına göre RMAN birden fazla kullanabilir bu da bizim işlem performansımızı arttırır.
  • Platform bağımsız: RMAN her türlü donanım ve işletim sistemi üzerinde aynı komutlarla kullanılır. RMAN sayesinde işletim sisteminden bağımsız yani cross-platform ‘da çalışabilir. Örnek olarak Windows tabanlı bir veritabanı sunucusunda alınan RMAN backupları rahatlıkla Linux/Unix platformundaki veritabanı sucunularına veya tersi şekilde aktarılabilir.
  • Kataloglama: Tüm RMAN kayıtları hedef bir veritabanı kontrol dosyası içinde kayıt edilir. Manuel takibe gore avantaj sağlar.Kataloglama ile merkezi tek bir noktadan düzinelerce veritabanına bağlanabilir; her birini yedekleyebilirsiniz. Merkezi kontrol söz konusudur; tek tek her makinede script yazmanız gerekmez. Bir sunucu belirler, her şeyi oradan yapabilirsiniz.
  • Şifreli Yedekleme: Oracle 11g sürümü ile yedekleri şifreli olarak saklama imkanı vardır.
  • Arşiv üretmez : RMAN hotbackup şeklinde veritabanı açıkken alınan yedeklerde ekstra arşiv üretmez.(Gerçekten ekstra arşiv üretmiyor ama yüklü işlemler söz konusu ise hız düşüşü yaşanıyor.)
  • RMAN Konfigurasyonları : RMAN konfigürasyonlarını yapılandırarak yedekleme stratijimizi otomatikleştirebildiğimiz gibi işlemlerimizi tekrar tekrar yapmamızı engeller.

Devamını Oku »

17

Mart
2013

ASM Yapısına Database Taşıma

Yazar: Özgür Umut Vurgun  |  Kategori: oracle  |  Yorum: Yok   |  

Oracle 11gR2’de disk’te bulunan dosyalarımızın ASM yapısına taşımayı anlatacağım. Öncelikle yapılması gereken  ASM instance’ın kurulumunu yapıp çalışır halde olması gereklidir. Kurulum tamamiyle farklı bir konu olduğundan sistemde var olduğunu kabul edip anlatacağım.

– Database ve versiyonu kontrol ederek işe başlayalım.

select  open_mode,instance_name,version,database_status from v$instance;
INSTANCE_NAME    VERSION           DATABASE_STATUS
------------------------ ----------------- --------------------------
testdb                                 11.2.0.3.0        ACTIVE 

– ASM Disklerimizi ve durularını kontrol edelim.

select NAME,STATE,TOTAL_MB,PATH from v$asm_disk;
NAME                           STATE      TOTAL_MB PATH
------------------------------ -------- ---------- ----------
DISK1                          NORMAL         16025 ORCL:DISK1

Devamını Oku »

9

Mart
2012

TROUG BI&DW SIG Etkinliği

Yazar: turkceoracle  |  Kategori: Duyuru  |  Yorum: Yok   |  

TROUG’un özel ilgi grubu etkinliklerinden “TROUG BI&DW SIG:2012″ toplantısı 22 Mart Perşembe günü Bilginç IT Akademi’de gerçekleşecektir. Konunun uzmanları ile biraraya geleceğiniz etkinlikte İş Zekası ve Veri Ambarı konularında çeşitli sunumlar gerçekleştirilecektir.  Etkinlik TROUG üyelerine ücretsizdir.

Toplantı ajandası şu şekildedir:

Açılış : 12:45
TROUG Nereye Gidiyor?

Sunum ID : 10
Konuşmacı : Hüsnü Şensoy (Global Maksimum)
Saat : 13:00 – 13:40
Süre : 40 dk
Sunum Başlığı : ODM Fast Track
İçerik;
Oracle Data Miner ile gerçekleştirilecek demo ile 40 dakikada Data Mining uygulamaları tanıtılacaktır.
Kahve Molası : 13:40 – 13:55 (15 dk)
Devamını Oku »

18

Kasım
2011

TROUG Üyelerine Packt Kitaplarında İndirim

Yazar: turkceoracle  |  Kategori: Duyuru  |  Yorum: Yok   |  

Türk Oracle Kullanıcı Grubu üyeleri artık “Packt Publishing” yayınevinin Oracle teknolojileri konulu kitaplarını satın alırken 20% indirim hakkına sahip. Bu indirimden faylanmak isteyen üyelerimiz, iletişim sayfamızdan üyelik için kullandıkları e-mail adreslerini belirterek, indirim kuponlarını talep edebilirler. Üyelerimiz internet üzerinden verecekleri siparişlerde bu indirim kuponu kodlarını kullanarak 22% indirim sağlayabilecekler.

Packt Publishing IT teknolojileri üzerine 600’den fazla, Oracle teknolojileri üzerine ise 100’e yakın kitap yayınlamış, sektörün önde gelen yayınevlerindendir.

Packt’in Oracle teknolojilerine ilişkin kitaplarının listesine şu linkten ulaşabilirsiniz: http://www.packtpub.com/books/oracle

TROUG’ye ücretsiz üye olmak için: http://apex.oracle.com/pls/apex/f?p=38448:1
Devamını Oku »

26

Haziran
2011

SQL Tuning Advisor ile SQL komutlarının iyileştirilmesi – Bölüm 2

Yazar: Ugur İnal  |  Kategori: oracle  |  Yorum: Yok   |  

SQL Tuning Advisor ile SQL komutlarının iyileştirilmesi yazısının ikinci bölümünde SQL iyileştirme görevlerinin oluşturulması adımından devam ediyorum.

2. SQL iyileştirme görevinin(task) oluşturulması

İyileştirilme görevleri tek bir SQL komutunun textinden, birden fazla komutu barındıran bir SQL setinden yada paylaşımlı havuzdaki veya AWR raporundaki bir SQL komutununun SQL ID değeri seçilerek oluşturulabilir.

Bununla beraber standart bir kullanıcının iyileştirme görevi oluşturabilmesi için; önce ADVISOR hakkına sahip olması ve ardından ilgili kullanıcının şema objeleri üzerinde bu fonsiyonun çalıştırılması gerekmektedir.

Aşağıda SQL iyileştirme görevini oluşturmak için kullanılan PL/SQL paketleri yer almaktadır.

Bir SQL textinden, bind değişkenli yada bind değişkensiz SQL iyileştirme görevi oluşturmak;

DBMS_SQLTUNE.CREATE_TUNING_TASK(
  sql_text         IN CLOB,
  bind_list        IN sql_binds := NULL,
  user_name        IN VARCHAR2  := NULL,
  scope            IN VARCHAR2  := SCOPE_COMPREHENSIVE,
  time_limit       IN NUMBER    := TIME_LIMIT_DEFAULT,
  task_name        IN VARCHAR2  := NULL,
  description      IN VARCHAR2  := NULL)

Bir SQL textinden plan_hash_value değerine göre SQL iyileştirme görevi oluşturmak;

DBMS_SQLTUNE.CREATE_TUNING_TASK(
  sql_id           IN VARCHAR2,
  plan_hash_value  IN NUMBER   := NULL,
  scope            IN VARCHAR2 := SCOPE_COMPREHENSIVE,
  time_limit       IN NUMBER   := TIME_LIMIT_DEFAULT,
  task_name        IN VARCHAR2 := NULL,
  description      IN VARCHAR2 := NULL)

Bir AWR raporundan ilgili snapshot aralığında SQL iyileştirme görevi oluşturmak;

DBMS_SQLTUNE.CREATE_TUNING_TASK(
  begin_snap      IN NUMBER,
  end_snap        IN NUMBER,
  sql_id          IN VARCHAR2,
  plan_hash_value IN NUMBER   := NULL,
  scope           IN VARCHAR2 := SCOPE_COMPREHENSIVE,
  time_limit      IN NUMBER   := TIME_LIMIT_DEFAULT,
  task_name       IN VARCHAR2 := NULL,
  description     IN VARCHAR2 := NULL)

Bir SQL setinden filtreleme şartlarına uygun SQL iyileştirme görevi oluşturmak;
Devamını Oku »

26

Haziran
2011

SQL Tuning Advisor ile SQL komutlarının iyileştirilmesi – Bölüm 1

Yazar: Ugur İnal  |  Kategori: oracle  |  Yorum: Yok   |  

SQL Tuning Advisor(SQL İyileştirme Tavsiyecisi), talep olduğunda bir veya birçok SQL komutunun manuel olarak iyileştirilmesinde de kullanılmaktadır. Birçok komutu iyileştirmek için öncelikle SQL iyileştirme setlerinin oluşturulması gerekmektedir.

SQL Tuning Advisor için gerekli olan veriler aşağıdaki gibi pekçok farklı kaynaktan sağlanabilir.

ADDM( Automatic Database Diagnostic Monitor)
Ana veri sağlama kaynağı ADDM’dir. Varsayılan olarak ADDM proaktif olarak her saat başı bir sefer çalışır ve son bir saat boyunca aşırı yüklü SQL komutlarını içeren bir kısım performans problemlerini belirlemek için AWR tarafından toplanan anahtar istatistikleri analiz eder. Eğer aşırı yüklü SQL belirlenirse, ADDM bu SQL komutu üzerinde SQL Tuning Advisor’ı çalıştırmayı tavsiye eder.

AWR(Automatic Workload Repository)
İkinci en önemli veri sağlama kaynağıda AWR’dir. AWR,CPU tüketimi ve bekleme süresi gibi ilişkili istatistikler tarafından sıralanan aşırı yüklü SQL komutlarını içeren sistem aktivitelerinin düzenli snapshotlarını çeker. İlgili AWR raporuna bakıldığında en çok kaynak tüketen SQL komutları belirlenebilir. Oracle, bu SQL komutları için otomatik iyileştirme tavsiyelerini sağlamasına rağmen manuel olarakta SQL Tuning Advisor çalıştırılabilir. AWR normalde çektiği bir snapshotu sekiz gün saklar.

Paylaşımlı SQL alanı
Üçüncü veri kaynağı ise paylaşımlı SQL alanıdır. Henüz AWR tarafında snapshhotu çekilmemiş olan son çalıştırılan SQL komutlarını iyileştirmek için kullanılmaktadır.

SQL iyileştirme seti (STS)
Diğer bir muhtemel veri sağlama kaynağı ise SQL iyileştirme setidir. SQL iyileştirme seti birçok SQL komutunun çalıştırma içeriklerini saklayan bir veritabanı objesidir.
Devamını Oku »

26

Haziran
2011

DBMS_SQLTUNE paketi ile SQL uygulamalarının analizi

Yazar: Ugur İnal  |  Kategori: oracle  |  Yorum: Yok   |  

Oracle 11g sürümünden itibaren, DBMS_SQLTUNE paketi içinden SELECT_SQL_TRACE fonksiyonu çalıştırılmaktadır. Bu fonsiyonun amacı; SQL izleme dosyasının içeriğini bir SQL iyileştirme seti içerisine yüklemektir. Bu yazımın amacı SELECT_SQL_TRACE fonksiyonunu kullanarak SQL komutlarının içeriğinin SQL izleme dosyasından görülebilmesinin kullanımını ve faydalarını göstermektir.

SELECT_SQL_TRACE özelliği Oracle 11.1.0.7 sürümünden itibaren işlemdedir, yani bu sürüm öncesi Oracle 11g sürümlerinde çalışmaz. Kısaca DBMS_SQLTUNE.SELECT_SQL_TRACE fonsiyonu ile kullanılan parametrelerin kısaca anlamlarına ve nasıl kullanıldığına gelirsek;

dbms_sqltune.select_sql_trace(
            directory => 'TRACE',
            file_name => 'aysun_ora_21351.trc',
            select_mode => 1 | 2 )

directory: SQL izleme dosyalarının yer aldığı fiziksel lokasyonu işaret eden sanal dizinin ismidir. CREATE DIRECTORY komutu ile oluşturulur.
file_name: SQL izleme setine yüklenecek olan SQL izleme dosyasının adı.
select_mode: 1 veya 2 integer değerinden birini alır. 1=> SINGLE_EXECUTION, yani tek bir SQL çalıştırmasını döndürür 2=>ALL_EXECUTIONS, yani tüm SQL çalıştırmalarını döndürür

İlk olarak senaryoyu belirleyelim.

Gerekli veritabanı objelerini oluşturup obje istatistiklerini topluyoruz. Bu amaçla 10,000 satırdan oluşan test1 adında bir tablo ile bu tablonun id kolonunu işaret eden primary key indeksini oluşturup, tablonun tüm satırlarını istatistiklemeye dahil etmek üzere tablo istatistiklerini topluyorum.
Devamını Oku »

Toplam 6 sayfa, 1. sayfa gösteriliyor.12345...Son »
Facebook FriendFeed Twitter RSS Beslemesi

© Tüm Hakları Saklıdır - Türkçe Oracle
Yazılar kaynak belirtilmeden kullanılamaz.

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: