zoukankan      html  css  js  c++  java
  • 使用pl/sql監控PROCEDURE執行時間

    創建表

    CREATE TABLE PROCESS_TIMING_LOG
    (
      PROCESS_NAME       VARCHAR2(50 BYTE),
      EXECUTION_DATE     DATE,
      RECORDS_PROCESSED  NUMBER,
      ELAPSED_TIME_SEC   NUMBER
    )

    創建Procedure

    CREATE OR REPLACE PROCEDURE SCOTT.update_salary
    AS
       CURSOR cur_employee
       IS
          SELECT empno, sal, ROWID FROM EMPLOYEE_TEST;

       lv_new_salary_num   NUMBER;
       lv_count_num        PLS_INTEGER := 0;
       lv_start_time_num   PLS_INTEGER;
       lv_total_time_num   NUMBER;
    BEGIN
       lv_start_time_num := DBMS_UTILITY.GET_TIME;

       FOR cur_employee_rec IN cur_employee
       LOOP
          lv_count_num := lv_count_num + 1;
          lv_new_salary_num := cur_employee_rec.sal;

          UPDATE employee_test
             SET sal= lv_new_salary_num
           WHERE ROWID = cur_employee_rec.ROWID;
       END LOOP;

       lv_total_time_num := (DBMS_UTILITY.GET_TIME - lv_start_time_num) / 100;

       INSERT INTO process_timing_log (process_name,
                                       execution_date,
                                       records_processed,
                                       elapsed_time_sec)
            VALUES ('update_salary',
                    SYSDATE,
                    lv_count_num,
                    lv_total_time_num);

       COMMIT;
    END update_salary;
    /
    運行結果

    PROCESS_NAME,EXECUTION_DATE,RECORDS_PROCESSED,ELAPSED_TIME_SEC
    update_salary,2016/8/1 下午 02:57:08,4257554,532.28

    不必太糾結于當下,也不必太憂慮未來
  • 相关阅读:
    [算法]位运算问题之二
    [算法]位运算问题之一
    [算法]海量数据问题之二
    [算法]海量数据问题之一
    [算法]旋转词问题
    [算法]去掉字符串中连续出现的k个0子串
    [算法]字符串中数字子串的求和
    [算法]字符串之变形词问题
    Linux常用命令
    数据库中的事物
  • 原文地址:https://www.cnblogs.com/guilingyang/p/5727009.html
Copyright © 2011-2022 走看看