Hozzunk ki többet abból amink van Fehér Lajos
Adatelérés
Örök érvényű dolgaink • • • • • •
HOUG Szakmai Nap 2013
Sor láncolás, migráció Index elhasználódás Tábla fregmentálódás Indexek száma Referenciális hivatkozások Triggerek
Hozzunk ki többet abból amink van
Adatelérés Diszk - SSD
File System/ Raw Devices/ ASM
File System/ Raw Devices/ ASM Caching Block Device
•Temp Tablespace • Hot Segments • Hot Partitions • DB Flash Cache
Regular Block Device
ioMemory VSL
Readintensive, potentially massive tablespaces
directCache ioMemory VSL
LUN
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
Adatelérés – adat tömörítés • Miért • Basic és OLTP • Index • Tábla • Lob • Sor szint • IO és CPU
• Diszkek száma, típusa, mennyisége
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
Adatelérés – adat tömörítés • • • •
Tömörítés hatékonyásága - particionálás DML műveletek hatása Indexek tömörítése DBMS_COMPRESS
Egyéb • Rman • Dataguard • OracleNet
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
SQL és PL/SQL kód elemzés
11g előtt • PL/SQL Profiler (dbms_profiler) • SQL TRACE (dms_trace)
11g után • PL/SQL hierarchical Profiler (dbms_hprof) • PL/SCOPE
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
Alkalmazás kód információ
• DBMS_APPLICATION_INFO csomag • SET_MODULE (module_name IN VARCHAR2,action_name IN VARCHAR2); • SET_CLIENT_INFO (client_info IN VARCHAR2); • SET_SESSION_LONGOPS
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
PL/SQL – PL/SCOPE • Fordítási időben statikus adat gyűjtés • ALL_, DBA_, USER_IDENTIFIERS nézetek töltése • változók hatókörének ellenőrzése,felderítése • nem használt változók • szabványos elnevezések vizsgálata - kód minőség biztosítás • kiterjedtebbb forrás kód elemzés
http://docs.oracle.com/cd/E11882_01/appdev.1 12/e41502/adfns_plscope.htm#g1010526 HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
PL/SQL – PL/SCOPE Használat • ALTER SESSION / SYSTEM SET PLSCOPE_SETTINGS='INDENTIFIERS:ALL | NONE' • ALTER PACKAGE PKG1 COMPILE PLSCOPE_SETTINGS='INDENTIFIERS:ALL | NONE SELECT USAGE, USAGE_ID, OBJECT_NAME, OBJECT_TYPE FROM USER_IDENTIFIERS ORDER BY OBJECT_TYPE, USAGE_ID;
http://docs.oracle.com/cd/E11882_01/appdev.1 12/e41502/adfns_plscope.htm#g1010526 HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
PL/SQL – Hierachikus Elemzés • Futás időben gyűjt információkat program részenként • Elkülönült SQL és PLSQL idők • Egyszerű használat • Táblákban tárolt gyűjtési adatok – későbbi szabad elemzés (SQL Developer, Toad, PL/SQL Developer)
DBMS_HPROF csomag • Adat gyűjtés • Elemzés
$ORACLE_HOME/bin/plshprof • Struktúrált HTML kimenet HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
PL/SQL Profiler Használat @?/rdbms/admin/dbmshptab.sql CREATE DIRECTORY PLSHPROF_DIR as '/home/oracle'; DBMS_HPROF.START_PROFILING('PLSHPROF_DIR', 'test.trc'); test_proc; DBMS_HPROF.STOP_PROFILING;
http://docs.oracle.com/cd/E11882_01/appdev.112/e415 02/adfns_profiler.htm#CHDBHDFE
How to Tune PL/SQL Applications and Identify Hot Spots using DBMS_HPROF (Doc ID 763944.1)
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
PL/SQL Profiler SELECT runid, run_timestamp,total_elapsed_time,run_comment FROM dbmshp_runs ORDER BY runid; SELECT symbolid, owner, module, type, function FROM dbmshp_function_info WHERE runid = 1 ORDER BY symbolid; SELECT RPAD(' ', level*2, ' ') || fi.owner || '.' || fi.module AS name, fi.function, pci.subtree_elapsed_time, pci.function_elapsed_time, pci.calls FROM dbmshp_parent_child_info pci JOIN dbmshp_function_info fi ON pci.runid = fi.runid AND pci.childsymid = fi.symbolid WHERE pci.runid = 1 CONNECT BY PRIOR childsymid = parentsymid START WITH pci.parentsymid = 2;
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
PL/SQL – Hierachikus Elemzés $ORACLE_HOME/bin/plshprof • Struktúrált HTML kimenet Function Elapsed Time (microsecs) Data sorted by Total Subtree Elapsed Time (microsecs) Function Elapsed Time (microsecs) Data sorted by Total Function Elapsed Time (microsecs) Function Elapsed Time (microsecs) Data sorted by Function Name Function Elapsed Time (microsecs) Data sorted by Total Function Call Count Module Elapsed Time (microsecs) Data sorted by Total Function Elapsed Time (microsecs) Module Elapsed Time (microsecs) Data sorted by Module Name Module Elapsed Time (microsecs) Data sorted by Total Function Call Count Namespace Elapsed Time (microsecs) Data sorted by Total Function Elapsed Time (microsecs) Parents and Children Elapsed Time (microsecs) Data HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
PL/SQL – Kis odafigyelés • SELECT * → SELECT mező1, mező2 ... • LOOP FETCH END LOOP → FETCH BULK COLLECT INTO http://docs.oracle.com/cd/E11882_01/appdev.112 /e25519/tuning.htm#BABFHGHI • Elemi függvények és értékadás v_ido:=sysdate • Rekurzív műveletek időigénye • PRAGMA INLINE http://docs.oracle.com/cd/E11882_01/appdev.112 /e25519/tuning.htm#LNPLS99951
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van
Kérdések / válaszok
Fehér Lajos |
[email protected] Omnit Solutions Kft. 1134 Budapest, Rózsafa utca 13-17. www.omnit.hu
HOUG Szakmai Nap 2013
Hozzunk ki többet abból amink van