1 / 28

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

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

yaron
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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ı

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

  4. SQLT Kullanım Faydaları • Tek bir SQL için SQL Tuning teşhisi yapıyor. • SQL için 100’ün üzerinde HC(HealthCheck) 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ı.

  5. 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.

  6. SQLT Kurulumu • My OracleSupport’da 215187.1 no’ludökümana gidiyoruz. • sqlt.zip dosyasını indiriyoruz. • Unzip ettikten sonra SYS olarak sqlt/install/sqcreate.sqlscriptini çalıştırıyoruz. • Gerekli kurulum parametrelerini sağlıyoruz.

  7. SQLT Kurulum Parametreleri • OpsiyonelConnect 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 ]

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

  9. Demo • SQLT kurulumunu gerçekleştirelim.

  10. 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

  11. SQLT Ana Metodları

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

  13. Ana HTML Raporu İçerikleri(2/3) • Plan stability • Active Session History (ASH) • SQL performansmetrikleri • SQL Monitor • Segment vesession istatistikleri • Tablolar

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

  15. HTML Raporu İncelenmesi

  16. 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 wheres.cust_id=c.cust_id and co.country_id=c.country_id and country_namein ( 'Ireland','Denmark','Poland','United Kingdom', 'Germany','France','Spain','TheNetherlands','Italy') group by country_name order by sum(AMOUNT_SOLD);

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

  18. Test Ortamı Oluşturulması • Bu durumda productionveritabanı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.

  19. 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.

  20. Demo • Productionveritabanı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.

  21. XPLORE Metodu • HerCBO parametresinin ya da bugfix 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.

  22. 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.sqlscripti 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.

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

  24. SQLHC Nedir? • SQLHC (SQL HealthCheck) stand-alone bir sqlscriptidir. • SQLT’ninlight 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.

  25. SQLHC Kullanımı • Metalink1366133.1noludökümandanindirebiliriz. • SYS olarak bağlanıp sqlhc.sqlscriptini çalıştırıyoruz. • Input olarak SQL ID giriyoruz. • SQLT gibi tek bir SQL üzerinde çalışmaktadır.

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

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

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

More Related