Hozzunk ki többet abból amink van Fehér Lajos
Adatelérés Örök érvényű dolgaink 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
Adatelérés Diszk - SSD File System/ Raw Devices/ ASM File System/ Raw Devices/ ASM Temp Tablespace Hot Segments Hot Partitions DB Flash Cache Regular Block Device iomemory VSL Caching Block Device directcache iomemory VSL Readintensive, potentially massive tablespaces LUN
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
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
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
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
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
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
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
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)
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;
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
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
Kérdések / válaszok Fehér Lajos feher.lajos@omnit.hu Omnit Solutions Kft. 1134 Budapest, Rózsafa utca 13-17. www.omnit.hu