IT技术博客大学习 共学习 共进步

Tips: PL/SQL中监控执行进度两种方法

eagle's home 2009-10-21 09:05:06 浏览 3,701 次

    这是我常用的两种PL/SQL监控运行状况的方法:

    1. 使用dbms_application_info.SET_CLIENT_INFO

    举例如下:

以下是代码片段:
    declare
     cursor cr is select rowid from test;
     delete_count number;
     total_count number;
    begin
     delete_count :=0;
     total_count :=0;
     for i in cr loop
     delete from test where rowid=i.rowid;
     delete_count :=delete_count+1;
     total_count :=total_count+1;
     if (delete_count>100) then
     dbms_application_info.SET_CLIENT_INFO(’ So far ‘||total_count||’ rows has been deleted’);
     delete_count :=0;
     commit;
     end if;
     end loop;
    end;
    /

    另开一session, select client_info from v$session where client_info like ‘So far%’;

    注意info的长度有限制,超过64字符会被截断

    2. 使用dbms_system.ksdwrt, 这个可以写到300个字符

    KSDWRT Procedure

    This procedure prints the message to the target file (alert log and/or trace file).

    Syntax

    DBMS_SYSTEM.KSDWRT (

     dest IN BINARY_INTEGER,

     tst IN VARCHAR2);

    Parameters:

    dest Destination is indicated by the following values:

    1 - Write to trace file.

    2 - Write to alertlog.

    3 - Write to both.

    tst Message (not tested for max length, but output with 300 chars was successful)

    举例如下:

以下是代码片段:
    declare
     cursor cr is select rowid from test;
     delete_count number;
     total_count number;
    begin
     delete_count :=0;
     total_count :=0;
     for i in cr loop
     delete from test where rowid=i.rowid;
     delete_count :=delete_count+1;
     total_count :=total_count+1;
     if (delete_count>100) then
     dbms_system.ksdwrt (1,’ So far ‘||total_count||’ rows has been deleted’);
     delete_count :=0;
     commit;
     end if;
     end loop;
    end;
    /

    然后开一session, tail -30f xxx.trc

建议继续学习

  1. Mysql监控指南 (阅读 21,101)
  2. 批量添加主机到cacti+nagios的监控报警系统中 (阅读 14,680)
  3. 我常用的主机监控shell脚本 (阅读 13,101)
  4. 7 天打造前端性能监控系统 (阅读 11,060)
  5. 如何监控HP服务器硬件状态 (阅读 10,503)
  6. Cacti 添加 Nginx 监控 (阅读 10,361)
  7. Linux下三种常用的流量监控软件对比 (阅读 9,980)
  8. Cacti 添加 Memcached 监控 (阅读 9,160)
  9. Cacti 添加 Apache 监控 (阅读 8,982)
  10. 你应该知道的16个Linux服务器监控命令 (阅读 8,403)