Jadual Kandungan
PL/SQL Elapsed Time (microsecs) Analysis
41519 microsecs (elapsed time) & 6 function calls
The PL/SQL Hierarchical Profiler produces a collection of reports that
present information derived from the profiler's output log in a variety
of formats.  The following reports have been found to be the most generally
useful as starting points for browsing:
In addition, the following reports are also available:
Rumah pangkalan data tutorial mysql 使用DBMS_HPROF包收集PL/SQL性能信息

使用DBMS_HPROF包收集PL/SQL性能信息

Jun 07, 2016 pm 05:30 PM
pl/sql

DBMS_HPROF包是oracle 11g出现的工具,是DBMS_PROFILER和DBMS_TRACE的综合.这里简单演示如何使用DBMS_HPROF包来分析存储过程性能信

DBMS_HPROF包是Oracle 11g出现的工具,是DBMS_PROFILER和DBMS_TRACE的综合.

这里简单演示如何使用DBMS_HPROF包来分析存储过程性能信息.

首先我们需要执行一个脚本来生成保存相关信息的表.

使用SYS用户执行$ORACLE_HOME/rdbms/admin/dbmshptab.sql

然后创建directory,

CREATE DIRECTORY LOG_FILE_DIR AS '/home/oracle';

先用SCOTT用户创建一个用于测试的存储过程insert_emp.

23:58:57 @ORCL> conn scott/tiger@orcl
Connected.
23:59:35 SCOTT@orcl> CREATE OR REPLACE PROCEDURE insert_emp(pempno number, pename varchar2) IS
23:59:45  2    stmt VARCHAR2(2000);
23:59:45  3  BEGIN
23:59:45  4    stmt := 'INSERT INTO emp_bak '
23:59:45  5    || '(EMPNO,ENAME) '
23:59:45  6    || 'SELECT :EMPNO,:ENAME'
23:59:45  7    || ' FROM DUAL';
23:59:45  8    dbms_output.put_line(stmt);
23:59:45  9    EXECUTE IMMEDIATE stmt
23:59:45  10      USING pempno, pename;
23:59:45  11  END insert_emp;
23:59:46  12  /

Procedure created.

Elapsed: 00:00:00.44

这里演示是在SYS用户下进行,如果要到指定用户执行,需要将DBMS_HPROF包的执行权限以及目录的读写权限赋予给该用户.

收集刚建立的存储过程的性能指标

00:06:11 SYS@orcl> DECLARE
00:10:42  2    v_runid        dbmshp_runs.runid%TYPE;
00:10:42  3    v_plshprof_dir  all_directories.directory_name%TYPE := 'LOG_FILE_DIR';
00:10:42  4    v_plshprof_file VARCHAR2(30) := 'insert_emp';
00:10:42  5  BEGIN
00:10:42  6    -- Start the profiling session
00:10:42  7    dbms_hprof.start_profiling(v_plshprof_dir, v_plshprof_file);
00:10:42  8    scott.insert_emp(9990,'Cryking!');
00:10:42  9    -- Stop the profiling session
00:10:42  10    dbms_hprof.stop_profiling;
00:10:42  11    -- Analyze the raw output and create the table data
00:10:42  12    v_runid := dbms_hprof.analyze(v_plshprof_dir, v_plshprof_file);
00:10:42  13    DBMS_OUTPUT.PUT_LINE('This Run: ' || to_char(v_runid));
00:10:42  14  END;
00:10:42  15  /
INSERT INTO emp_bak (EMPNO,ENAME) SELECT :EMPNO,:ENAME FROM DUAL
This Run: 1

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.26

执行完后,会在对应目录生成一个insert_emp的文件,直接查看文件的话,内容很凌乱也很简短,如下:

P#! PL/SQL Timer Started
P#C PLSQL."SCOTT"."INSERT_EMP"::7."INSERT_EMP"#762ba075453b8b0d #1
P#X 1331
P#C PLSQL."SYS"."DBMS_OUTPUT"::11."PUT_LINE"#5892e4d73b579470 #109
P#X 4
P#C PLSQL."SYS"."DBMS_OUTPUT"::11."PUT"#5892e4d73b579470 #77
P#X 220
P#R
P#X 2
P#C PLSQL."SYS"."DBMS_OUTPUT"::11."NEW_LINE"#980980e97e42f8ec #117
P#X 4
P#R
P#X 3
P#R
P#X 83
P#C SQL."SCOTT"."INSERT_EMP"::7."__dyn_sql_exec_line9" #9
P#X 39858
P#R
P#X 14
P#R
P#C PLSQL."SYS"."DBMS_HPROF"::11."STOP_PROFILING"#980980e97e42f8ec #59
P#R
P#! PL/SQL Timer Stopped

这里需要使用工具plshprof对其进行分析,如下:

[oracle@oracleserver ~]$ plshprof insert_emp

PLSHPROF: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
[6 symbols processed]
[Report written to 'insert_emp.html']

[oracle@oracleserver ~]$ ls *.html
insert_emp_2c.html  insert_emp_fn.html  insert_emp_mf.html  insert_emp_nsf.html  insert_emp_tc.html  insert_emp_ts.html
insert_emp_2f.html  insert_emp.html    insert_emp_ms.html  insert_emp_nsp.html  insert_emp_td.html
insert_emp_2n.html  insert_emp_md.html  insert_emp_nsc.html  insert_emp_pc.html  insert_emp_tf.html

然后我们再查看文件insert_emp.html的内容,如下:



PL/SQL Elapsed Time (microsecs) Analysis for 'insert_emp'

PL/SQL Elapsed Time (microsecs) Analysis


41519 microsecs (elapsed time) & 6 function calls


The PL/SQL Hierarchical Profiler produces a collection of reports that
present information derived from the profiler's output log in a variety
of formats.  The following reports have been found to be the most generally
useful as starting points for browsing:



In addition, the following reports are also available:


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama Mar 04, 2025 pm 04:01 PM

Artikel ini menangani ralat "tidak dapat membuka perpustakaan kongsi" MySQL. Isu ini berpunca daripada ketidakupayaan MySQL untuk mencari perpustakaan bersama yang diperlukan (.so/.dll fail). Penyelesaian melibatkan mengesahkan pemasangan perpustakaan melalui pakej sistem m

Kurangkan penggunaan memori MySQL di Docker Kurangkan penggunaan memori MySQL di Docker Mar 04, 2025 pm 03:52 PM

Artikel ini meneroka mengoptimumkan penggunaan memori MySQL di Docker. Ia membincangkan teknik pemantauan (statistik Docker, skema prestasi, alat luaran) dan strategi konfigurasi. Ini termasuk had memori docker, swapping, dan cgroups, bersama -sama

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table? Mar 19, 2025 pm 03:51 PM

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin) Mar 04, 2025 pm 03:54 PM

Artikel ini membandingkan memasang MySQL pada Linux secara langsung berbanding menggunakan bekas podman, dengan/tanpa phpmyadmin. Ia memperincikan langkah pemasangan untuk setiap kaedah, menekankan kelebihan Podman secara berasingan, mudah alih, dan kebolehulangan, tetapi juga

Apa itu SQLite? Gambaran Keseluruhan Komprehensif Apa itu SQLite? Gambaran Keseluruhan Komprehensif Mar 04, 2025 pm 03:55 PM

Artikel ini memberikan gambaran menyeluruh tentang SQLite, pangkalan data relasi tanpa server tanpa mandiri. Ia memperincikan kelebihan SQLITE (kesederhanaan, mudah alih, kemudahan penggunaan) dan kekurangan (batasan konkurensi, cabaran skalabiliti). C

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL? Mar 18, 2025 pm 12:01 PM

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah Mar 04, 2025 pm 03:49 PM

Panduan ini menunjukkan pemasangan dan menguruskan pelbagai versi MySQL pada macOS menggunakan homebrew. Ia menekankan menggunakan homebrew untuk mengasingkan pemasangan, mencegah konflik. Pemasangan Butiran Artikel, Permulaan/Perhentian Perkhidmatan, dan PRA Terbaik

Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Apakah beberapa alat GUI MySQL yang popular (mis., MySQL Workbench, phpmyadmin)? Mar 21, 2025 pm 06:28 PM

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

See all articles