SQL Tuning Uygulamaları: SQLT ve SQLHC Araçlarının Kullanımı

Slides:



Advertisements
Benzer bir sunumlar
Iletisim Icin : Blog : E - Mail :
Advertisements

VERİTABANLARI ÜZERİNDEN ÇOK KULLANICILI YAZILIMLAR İLE TİCARİ VE MÜHENDİSLİK VERİLERİNİN ANALİZLERİNİN GETİRDİĞİ FAYDALAR Dr. YILMAZ YÖRÜ Yük.Mak.Müh.
SİSTEM YÖNETİMİ KOORDİNATÖRÜ
T sql-diğer komutlar Metin Akbulut.
VTYS Öğr. Gör. Engin DUTAR
Hazırlayan : Öğr. Gör. Fahri YILMAZ
TALEP MODÜLÜ SATINALMA İŞLEMLERİNİ BİR MERKEZDE YAPAN, ANCAK TALEPLERİ DEĞİŞİK BİRİMLERCE OLUŞTURULAN İDARELERİN İŞLEMLERİNİ KOLAYLAŞTIRMAYI AMAÇLAYAN.
Mysql, PhpMyAdmin, PHP, Dinamik Web Sayfası, PHPNuke Kullanımı
MySQL Veritabanı Sunucusu ve MySQL Veritabanı Kullanımı
Web Host Manager (WHM) Nedir Ne İşe Yarar ?
Performance Tuning Performans Düzenleme Teknikleri.
H.Tonguç Yılmaz - Unutulmuş Özellikler: Oracle Veritabanına Yaptığınız Yatırımı Sonuna Kadar Kullanın TROUG Oracle Day 2011 etkinliği.
SQL Structured Query Language (Yapısal sorgulama dili)
En ucuzundan en pahalısına doğru sıralanmış olarak “Cep Telefonları” kategorisindeki tüm ürünlerin isimleri “Spor” kategorisinde ürünleri listelenen “İstanbul”
SQL KOMUTLARI.
SQL Enjeksiyon Saldırı Uygulaması ve Güvenlik Önerileri
DOVECOT İLE IMAP VE POP3 SERVER KURULUMU
EkoPC Bilişim Ltd. Eğitim Hizmetleri
Alt Sorgular Veritabanı 2.
Iletisim Icin : Blog : E - Mail :
Web sayfamızda bulunan «Hiper Kitap» butonun tıklayınız.
Çerez(Cookie) Kullanımı Oturum Yönetimi
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Iletisim Icin : Blog : E - Mail :
Iletisim Icin : Blog : E - Mail :
BÖLÜM 6 SQL SERVER KOMUTLARI.
Veritabanı Kopyalama/Taşıma
SQL (STRUCTURED QUERY LANGUAGE)
Bilgisayar Mühendisliği Bölümü
Departman ve Personel Tablosu Soruları
VIEW (BAKIŞ) OLUŞTURMA
VIEW lerle çalışmak 11.BÖLÜM.
SQL Komutlar 3 Sibel SOMYÜREK.
Bilgisayar Mühendisliği Bölümü
SQL Dili ve MySQL Komutları
G ÖREV 11. Bir eğitsel yazılım geliştirmek istiyoruz ve yazılımın aşağıda listelenen tüm işlemleri gerçekleştirebilmesi gerekli. Kullanıcı yazılıma kullanıcı.
MySQL Operatörleri ve Fonksiyonları
ADRES DEFTERİMDE NELER VAR?. Arkadaşlarınızın, akrabalarınızın ve tanıdığınız diğer kişilerin adresleri, telefon numaraları, e-posta adresleri vb. bilgilerini.
Iletisim Icin : Blog : E - Mail :
İnternet Programlama PHP.
Görsel Programlama II Ders 5 Öğr.Gör. Mustafa KARABULUT.
SQL Sibel SOMYÜREK.
SQL Komutları (2) Uzm. Murat YAZICI.
Oluşturulan layout dosyasında 2 tane Editview ve 2 tane buton bulunmaktadır. Editviewlardan alınan değerler ilk butona tıklandığında veritabanına yazılır.
UBUNTU LINUX KURULUMU Ders-2
VTYS Öğr. Gör. Engin DUTAR
Hayrettin Bucak Sistem yöneticisi TÜBİTAK ULAKBİM Ekim 2003.
GRANT RESOURCE TO ayse; GRANT CONNECT TO ayse;
DISASTER RECOVERY SOLUTION
SQL’ e Giriş Uzm. Murat YAZICI.
Bilgisayar Mühendisliği Bölümü
Update UPDATE tablo_ismi SET sutun1=‘deger1’ WHERE sutun=deger.
Veritabanı Yönetim Sistemleri - I
GÜVENL İ K. Sunucu Seviyesinde Güvenlik Master Veritabanı (Kullanıcının gerekli yetkileri var mı?) Authentication Mod ◦ Windows Authentication Mod  Varsayılan.
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı Arş. Gör. Pınar CİHAN.
Querying SQL Server Data with Power BI Desktop Erdem Avni SELÇUK Microsot MVP.
View View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal.
 Stored Procedure kısaca SQL sorgularını isteğimize göre hazırlayıp kullanıma hazır veri tabanı nesnesine çeviren bir araçtır.  Stored Procedure, Türkçeye.
Bilgisayar Mühendisliği Bölümü
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VIEW lerle çalışmak 11.BÖLÜM.
Bilgisayar Mühendisliği Bölümü
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
MS SQL VERİTABANININ HOST HESABINA TAŞINMASI SAVAŞ TUNÇER.
SQL Server - Stored Procedures
PHP ve MYSQLi.
Asp.Net Veritabanı İşlemleri
Sunum transkripti:

SQL Tuning Uygulamaları: SQLT ve SQLHC Araçlarının Kullanımı Bora YÜRET Oracle Veritabanı Yöneticisi T.C. Çalışma ve Sosyal Güvenlik Bakanlığı

Sunum Konuları SQLT ile tanışma SQLXTRACT ve SQLTXECUTE metodları ile SQL incelenmesi Test Ortamı Oluşturulması ve Test Senaryolarının Çalıştırılması XPLORE metodu ile bir iyileştirme çalışması SQLHC Kullanımı

SQLTXPLAIN (SQLT) Nedir? SQLTXPLAIN (SQLT), Carlos Sierra tarafından kodlanmış, problemli çalışan SQL’leri inceleme aracıdır. Add-on (Metalink Doc ID 215187.1) Oracle 10g/11g/12c versiyonlarında çalışıyor. Linux / Unix / Windows ortamlarında çalışıyor. Single Instance, RAC, Exadata ortamlarında çalışıyor. Kurulumu ve kullanımı kolay Ücretsiz

SQLT Kullanım Faydaları Tek bir SQL için SQL Tuning teşhisi yapıyor. SQL için 100’ün üzerinde HC(Health Check) gerçekleştiriyor ve sonuçlarını Observation olarak raporluyor. Otomatik Test Case oluşturma. Ana faydası, SQL Tuning için gereken bilgi toplama işlemlerini hızlandırması.

SQLT Nasıl Çalışır? SQL’i incelemek için 3 + 4 ana metod sağlıyor. Input olarak bir SQL sorgusu giriyor, output olarak bir zip dosyası çıkıyor. Zip dosyasında bir HTML dosyası ve diğer dosyalar var: AWR, ADDM, ASH, 10053, 10046, TKPROF, vb. SQL Tuning TC(Test Case)’leri otomatik oluşturup zip dosyasına ekliyor. SQLT kendi şemalarına (2 adet) kuruluyor ve diğer kullanıcılara kullanım hakkı rol üzerinden veriliyor.

SQLT Kurulumu My Oracle Support’da 215187.1 no’lu dökümana gidiyoruz. sqlt.zip dosyasını indiriyoruz. Unzip ettikten sonra SYS olarak sqlt/install/sqcreate.sql scriptini çalıştırıyoruz. Gerekli kurulum parametrelerini sağlıyoruz.

SQLT Kurulum Parametreleri Opsiyonel Connect Identifier (Örn, @PROD) SQLTXPLAIN kullanıcısı için şifre Default Tablespace Temporary Tablespace SQLT için ana uygulama kullanıcısı Oracle lisanslama bilgisi [ Tuning | Diagnostics | None ]

SQLT Uninstall Etmek SYS olarak bağlanıp sqlt/install/sqdrop.sql scriptini çalıştırıyoruz.

Demo SQLT kurulumunu gerçekleştirelim.

SQLT Ana Metodları Ana metodlardan istediğimizi seçip kullanabiliriz. Input olarak SQL_ID ya da direk olarak SQL’i sağlıyoruz. SQLT kullanmak isteyen kullanıcıya SQLT_USER_ROLE rolü verilmelidir. - SQLT XTRACT - SQLT XECUTE - SQLT XTRXEC - SQLT XPLAIN - SQLT XTRSBY - SQLT XPREXT - SQLT XPREXC

SQLT Ana Metodları Method Script Features SQLT XTRACT SQLT XECUTE sqlt/run/sqltxtract.sql Most common method Inputs SQL_ID SQL statement is not executed SQLT XECUTE sqlt/run/sqltxecute.sql Inputs a script name which contains ALTER SESSION commands (if applicable) Binds declaration and assignment (if applicable) SQL statement Executes the SQL statement SQLT XTRXEC sqlt/run/sqltxtrxecsql Combines XTRACT and XECUTE SQLT XPLAIN sqlt/run/sqltxplain.sql Inputs a file name which contains a SQL statement What if SQL contains binds? Leave them in place, OR Replace with literals of same data type SQLT XTRSBY sqlt/run/sqltxtrsby.sql For read-only databases Executes in Primary and connects into stand-by Works like XTRACT Inputs SQL_ID and DBLINK

Ana HTML Raporu İçerikleri (1/3) Observations SQL text Parametreler Cursor sharing SQL Tuning Advisor (STA) report Execution plans

Ana HTML Raporu İçerikleri(2/3) Plan stability Active Session History (ASH) SQL performans metrikleri SQL Monitor Segment ve session istatistikleri Tablolar

Ana HTML Raporu İçerikleri(3/3) İndeksler CBO istatistikleri Objeler ve bağımlılıkları Policy’ler Metadata

HTML Raporu İncelenmesi

Demo SQLT XTRACT ve SQLT XECUTE metodlarını aşağıdaki sorguyla çalıştırarak oluşan çıktıyı inceleyelim. select country_name, sum(AMOUNT_SOLD) from sh.sales s, sh.customers c, sh.countries co where s.cust_id=c.cust_id and co.country_id=c.country_id and country_name in ( 'Ireland','Denmark','Poland','United Kingdom', 'Germany','France','Spain','The Netherlands','Italy') group by country_name order by sum(AMOUNT_SOLD);

Test Ortamı Oluşturulması Genellikle problemli SQL ile ilgili iyileştirme çalışmalarımızı çalışan diğer SQL’leri etkilememek için production veritabanı üzerinde yapmak istemeyiz. Optimizer parametrelerini değiştirme, SQL hintleri, indeks ekleme/çıkarma gibi çalışmaları bu kapsamda sayabiliriz.

Test Ortamı Oluşturulması Bu durumda production veritabanıyla aynı objelere, aynı obje istatistiklerine, hatta aynı sistem istatistiklerine sahip bir test veritabanına ihtiyacımız olacak. Bu objeleri taşıma, obje istatistiklerini taşıma, sistem istatistiklerini taşıma ve gerekirse veriyi taşıma işlemlerini SQLT otomatik olarak yapıyor.

Test Ortamı Oluşturulması Test Case oluşturmak için SQLT XTRACT ya da XECUTE metodlarını çalıştırmamız sonucu oluşan sqlt_sNNNNN_tc.zip dosyasını kullanabiliriz. Bu dizindeki xpress.sql dosyasını çalıştırarak test case oluşturmaya başlayabiliriz.

Demo Production veritabanımızdaki bir SQL’in Test Case’ini test veritabanında oluşturalım ve çeşitli parametre değişikliklerinin sorgu üzerindeki etkilerini test edelim.

XPLORE Metodu Her CBO parametresinin ya da bug fix değişikliğinin execution plan üzerindeki etkisini araştırır. Tüm CBO (275 civarı) parametre değişikliklerinin sorgumuza etkisini test eden bir brute-force saldırısına benzetebiliriz. Exadata’ya özgü parametreleri de, ortamımız Exadata ise teste katabiliriz.

XPLORE Metodu XPLORE metodunun çalıştırılabilmesi için daha önceden bir test case oluşturmuş olmamız gerekir. Sqlt/utl/xplore dizinindeki install.sql scripti ile başlatıyoruz. Input olarak test case kullanıcımızı vereceğiz, output olarak biz zip dosyası verecek. Zip dosyasındaki HTML dosyasında CBO parametre değişikliklerinin sonuçlarını görebileceğiz.

Demo XPLORE metodu ile SQL’imizde iyileştirme yapıp yapamayacağımızı test edelim.

SQLHC Nedir? SQLHC (SQL Health Check) stand-alone bir sql scriptidir. SQLT’nin light versiyonu diyebiliriz. SQLT kurma imkanımızın olmadığı durumlarda, kurulum gerektirmeyen ama çıktıları daha sınırlı bu scripti kullanabiliriz. SQLT gibi tek bir SQL üzerinde çalışmaktadır.

SQLHC Kullanımı Metalink 1366133.1 nolu dökümandan indirebiliriz. SYS olarak bağlanıp sqlhc.sql scriptini çalıştırıyoruz. Input olarak SQL ID giriyoruz. SQLT gibi tek bir SQL üzerinde çalışmaktadır.

Demo SQLHC aracını bir SQL için çalıştırarak oluşan çıktıları inceleyelim.

Kaynak Blog: http://carlos-sierra.net/ Kitap: Oracle SQL Tuning with Oracle SQLTXPLAIN Stelios Charalambides 20 Mart 2013 Apress

Teşekkürler Katılımınız için TEŞEKKÜRLER İletişim: borayuret@gmail.com