国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle數(shù)據(jù)庫中使用DBMS_PROFILER進(jìn)行調(diào)優(yōu)

瀏覽:196日期:2023-11-28 14:25:14
在進(jìn)行數(shù)據(jù)庫調(diào)優(yōu)時,代碼的性能瓶頸至關(guān)重要,Oracle數(shù)據(jù)庫提供的DBMS_PROFILER包可以特別方便的發(fā)現(xiàn)瓶頸的所在之處。

DBMS_PROFILER在使用之前可能需要安裝,具體安裝步驟如下:

◆1:執(zhí)行$ORACLE_HOME/rdbms/admin/profload.sql

◆2:創(chuàng)建一個用于存放跟蹤信息的schema

CREATE USER profiler IDENTIFIED BY profiler DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;

GRANT connect TO profiler;

CREATE PUBLIC SYNONYM plsql_profiler_runs FOR profiler.plsql_profiler_runs;

CREATE PUBLIC SYNONYM plsql_profiler_units FOR profiler.plsql_profiler_units;

CREATE PUBLIC SYNONYM plsql_profiler_data FOR profiler.plsql_profiler_data;

CREATE PUBLIC SYNONYM plsql_profiler_runnumber FOR profiler.plsql_profiler_runnumber;

◆3:使用剛剛創(chuàng)建的profiler用戶執(zhí)行如下腳本或代碼:

$ORACLE_HOME/rdbms/admin/proftab.sql

GRANT SELECT ON plsql_profiler_runnumber TO PUBLIC;

GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_data TO PUBLIC;

GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_units TO PUBLIC;

GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_runs TO PUBLIC;

安裝成功后測試:

執(zhí)行

BEGIN

DBMS_PROFILER.START_PROFILER('123');

FOR I IN 1 .. 1000 LOOP

INSERT INTO A VALUES (I || '');

END LOOP;

COMMIT;

DBMS_PROFILER.STOP_PROFILER();

END;

執(zhí)行后使用下面的代碼檢查:

SELECT C.LINE#, C.TOTAL_OCCUR, C.TOTAL_TIME, C.MIN_TIME, C.MAX_TIME

FROM PLSQL_PROFILER_RUNS A, PLSQL_PROFILER_UNITS B, PLSQL_PROFILER_DATA C

WHERE A.RUN_COMMENT = '123'

AND B.UNIT_OWNER = ''

AND A.RUNID = B.RUNID

AND A.RUNID = C.RUNID

AND B.UNIT_NUMBER = C.UNIT_NUMBER

注意:每次DBMS_PROFILER.START_PROFILER的輸入?yún)?shù)需要改變,否則便不能分別運(yùn)行后的運(yùn)行結(jié)果了。

除此之外B.UNIT_OWNER =‘’中的約束值如果是在package里面需要是包名,如果是procedure則是procedure的名字。實在在不知道什么名字時可以在PLSQL_PROFILER_UNITS中查一下。

此外,運(yùn)行結(jié)果可以通過PLSQL Developer來觀察,需要新建一個test,在profiler中可以查看它的運(yùn)行結(jié)果,示例如下:

Oracle數(shù)據(jù)庫中使用DBMS_PROFILER進(jìn)行調(diào)優(yōu)

標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 腾冲县| 嘉荫县| 罗江县| 肃南| 平远县| 上蔡县| 聂荣县| 岗巴县| 高安市| 定陶县| 东至县| 南开区| 福海县| 堆龙德庆县| 乐清市| 奈曼旗| 平塘县| 来宾市| 雷山县| 汉中市| 三门峡市| 枣庄市| 吉隆县| 水城县| 中卫市| 肇庆市| 芦溪县| 积石山| 牟定县| 双牌县| 永登县| 沧州市| 茂名市| 靖西县| 资中县| 屯昌县| 临泉县| 婺源县| 辛集市| 军事| 泸溪县|