28
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ığı

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

  • Upload
    yaron

  • View
    90

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

SQL Tuning Uygulamalar: SQLT ve SQLHC Aralarnn Kullanm

SQL Tuning Uygulamalar: SQLT ve SQLHC Aralarnn KullanmBora YRETOracle Veritaban YneticisiT.C. alma ve Sosyal Gvenlik Bakanl

Sunum KonularSQLT ile tanmaSQLXTRACT ve SQLTXECUTE metodlar ile SQL incelenmesiTest Ortam Oluturulmas ve Test Senaryolarnn altrlmasXPLORE metodu ile bir iyiletirme almasSQLHC Kullanm

SQLTXPLAIN (SQLT) Nedir?SQLTXPLAIN (SQLT), Carlos Sierra tarafndan kodlanm, problemli alan SQLleri inceleme aracdr.Add-on (Metalink Doc ID 215187.1)Oracle 10g/11g/12c versiyonlarnda alyor.Linux / Unix / Windows ortamlarnda alyor.Single Instance, RAC, Exadata ortamlarnda alyor.Kurulumu ve kullanm kolaycretsiz

SQLT Kullanm FaydalarTek bir SQL iin SQL Tuning tehisi yapyor.SQL iin 100n zerinde HC(Health Check) gerekletiriyor ve sonularn Observation olarak raporluyor.Otomatik Test Case oluturma.Ana faydas, SQL Tuning iin gereken bilgi toplama ilemlerini hzlandrmas.

SQLT Nasl alr?SQLi incelemek iin 3 + 4 ana metod salyor.Input olarak bir SQL sorgusu giriyor, output olarak bir zip dosyas kyor.Zip dosyasnda bir HTML dosyas ve dier dosyalar var: AWR, ADDM, ASH, 10053, 10046, TKPROF, vb.SQL Tuning TC(Test Case)leri otomatik oluturup zip dosyasna ekliyor.SQLT kendi emalarna (2 adet) kuruluyor ve dier kullanclara kullanm hakk rol zerinden veriliyor.

SQLT KurulumuMy Oracle Supportda 215187.1 nolu dkmana gidiyoruz.sqlt.zip dosyasn indiriyoruz.Unzip ettikten sonra SYS olarak sqlt/install/sqcreate.sql scriptini altryoruz.Gerekli kurulum parametrelerini salyoruz.

SQLT Kurulum ParametreleriOpsiyonel Connect Identifier (rn, @PROD)SQLTXPLAIN kullancs iin ifreDefault TablespaceTemporary TablespaceSQLT iin ana uygulama kullancsOracle lisanslama bilgisi [ Tuning | Diagnostics | None ]

SQLT Uninstall EtmekSYS olarak balanp sqlt/install/sqdrop.sql scriptini altryoruz.

DemoSQLT kurulumunu gerekletirelim.

SQLT Ana MetodlarAna metodlardan istediimizi seip kullanabiliriz. Input olarak SQL_ID ya da direk olarak SQLi salyoruz.

SQLT kullanmak isteyen kullancya SQLT_USER_ROLE rol verilmelidir.

- SQLT XTRACT- SQLT XECUTE- SQLT XTRXEC- SQLT XPLAIN- SQLT XTRSBY- SQLT XPREXT- SQLT XPREXC

SQLT Ana MetodlarMethodScriptFeaturesSQLT XTRACTsqlt/run/sqltxtract.sqlMost common methodInputs SQL_IDSQL statement is not executedSQLT XECUTEsqlt/run/sqltxecute.sqlInputs a script name which containsALTER SESSION commands (if applicable)Binds declaration and assignment (if applicable)SQL statementExecutes the SQL statementSQLT XTRXECsqlt/run/sqltxtrxecsqlCombines XTRACT and XECUTEInputs SQL_IDSQLT XPLAINsqlt/run/sqltxplain.sqlInputs a file name which contains a SQL statementWhat if SQL contains binds?Leave them in place, OR Replace with literals of same data typeSQLT XTRSBYsqlt/run/sqltxtrsby.sqlFor read-only databasesExecutes in Primary and connects into stand-byWorks like XTRACTInputs SQL_ID and DBLINKAna HTML Raporu erikleri (1/3)ObservationsSQL textParametrelerCursor sharing SQL Tuning Advisor (STA) reportExecution plans

Ana HTML Raporu erikleri(2/3)Plan stabilityActive Session History (ASH)SQL performans metrikleriSQL MonitorSegment ve session istatistikleriTablolar

Ana HTML Raporu erikleri(3/3)ndekslerCBO istatistikleriObjeler ve bamllklarPolicylerMetadata

HTML Raporu ncelenmesi

DemoSQLT XTRACT ve SQLT XECUTE metodlarn aadaki sorguyla altrarak oluan kty inceleyelim.

select country_name, sum(AMOUNT_SOLD)from sh.sales s, sh.customers c, sh.countries cowhere s.cust_id=c.cust_idand co.country_id=c.country_idand 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 OluturulmasGenellikle problemli SQL ile ilgili iyiletirme almalarmz alan dier SQLleri etkilememek iin production veritaban zerinde yapmak istemeyiz.Optimizer parametrelerini deitirme, SQL hintleri, indeks ekleme/karma gibi almalar bu kapsamda sayabiliriz.

Test Ortam OluturulmasBu durumda production veritabanyla ayn objelere, ayn obje istatistiklerine, hatta ayn sistem istatistiklerine sahip bir test veritabanna ihtiyacmz olacak.Bu objeleri tama, obje istatistiklerini tama, sistem istatistiklerini tama ve gerekirse veriyi tama ilemlerini SQLT otomatik olarak yapyor.

Test Ortam OluturulmasTest Case oluturmak iin SQLT XTRACT ya da XECUTE metodlarn altrmamz sonucu oluan sqlt_sNNNNN_tc.zip dosyasn kullanabiliriz.Bu dizindeki xpress.sql dosyasn altrarak test case oluturmaya balayabiliriz.

DemoProduction veritabanmzdaki bir SQLin Test Caseini test veritabannda oluturalm ve eitli parametre deiikliklerinin sorgu zerindeki etkilerini test edelim.

XPLORE MetoduHer CBO parametresinin ya da bug fix deiikliinin execution plan zerindeki etkisini aratrr.Tm CBO (275 civar) parametre deiikliklerinin sorgumuza etkisini test eden bir brute-force saldrsna benzetebiliriz.Exadataya zg parametreleri de, ortammz Exadata ise teste katabiliriz.

XPLORE MetoduXPLORE metodunun altrlabilmesi iin daha nceden bir test case oluturmu olmamz gerekir.Sqlt/utl/xplore dizinindeki install.sql scripti ile balatyoruz.Input olarak test case kullancmz vereceiz, output olarak biz zip dosyas verecek.Zip dosyasndaki HTML dosyasnda CBO parametre deiikliklerinin sonularn grebileceiz.

DemoXPLORE metodu ile SQLimizde iyiletirme yapp yapamayacamz test edelim.

SQLHC Nedir?SQLHC (SQL Health Check) stand-alone bir sql scriptidir.SQLTnin light versiyonu diyebiliriz.SQLT kurma imkanmzn olmad durumlarda, kurulum gerektirmeyen ama ktlar daha snrl bu scripti kullanabiliriz.SQLT gibi tek bir SQL zerinde almaktadr.

SQLHC KullanmMetalink 1366133.1 nolu dkmandan indirebiliriz.SYS olarak balanp sqlhc.sql scriptini altryoruz.Input olarak SQL ID giriyoruz.SQLT gibi tek bir SQL zerinde almaktadr.

DemoSQLHC aracn bir SQL iin altrarak oluan ktlar inceleyelim.

Kaynak

Blog: http://carlos-sierra.net/Stelios Charalambides20 Mart 2013ApressKitap: Oracle SQL Tuning with Oracle SQLTXPLAINTeekkrlerKatlmnz iin TEEKKRLER

letiim: [email protected]