网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle等厂商宣布加入OpenPower联.
.新手必须了解的oracle入门知识.
.为什么用telnet/ftp登录时特别慢.
.Oracle 数据库集中复制方法逐步精.
.PL/SQL学习笔记(六).
.Database 10g:忘掉我以前的功能.
.TestKing Oracle 1z0-020 V5.
.Oracle经验谈:删除DUAL表后的处.
.小议在Oracle中索引的使用.
.Oracle中如何查询当前版本中的各.
.Export/Import 使用技巧与常见错.
.Oracle数据库无法加载_OraMTS_的.
.Data Server Scripts.
.Oracle Database 10g:最佳新特性.
.CLOB扩展块满出现的错误.
.SQLPlus命令使用指南.
.深入了解Oracle 10g新型层次查询.
.sendmail下如何限制邮件大小.
.关于shared pool的深入探讨(一).
.Oracle10g 控制文件的改变.

采样数据库连接数

发表日期:2008-2-9



  数据库的实时连接数是否稳定是衡量一套IT系统是否稳定的一个指标。
  
  当新系统推出或者在没有严格测试环境下更应该收集和关注这个数据。
  
  我写了一个简单的存储过程采样数据库实时连接数并利用dbms_job来定时,方法如下:
  
  1.在sys用户下建立保存数据库实时连接数结果的表session_num,并建立公有同义词
  
  create table session_num(
   num number(6),
   username varchar2(30),
   machine varchar2(30),
   reportdate date )
  pctfree 1 pctused 99 tablespace users;
  create public synonym session_num for sys.session_num;
  
  2.写一个存储过程select_sessionnum.sql
  
  create or replace procedure select_sessionnum
  is
  begin
     insert into session_num(num,username,machine,reportdate)
     select count(*),username,machine,sysdate
     from v$session
     where username is not null
     group by username,machine;
     commit;
  exception
   when others then
   rollback;
   raise;
  end;
  /
  
  3.用dbms_job设定每隔一个小时调用select_sessionnum过程采样数据
  
  variable jobno number;
  begin
  dbms_job.submit(:jobno,'select_sessionnum;', sysdate,'sysdate + 1/24');
  commit;
  end;
  /
  
  关于dbms_job使用和介绍可以参考这篇文章:《在Oracle中实现定时操作》
  4.DBA和一般用户都可以不定期检查这些数据:
  set pagesize 1000;
  set linesize 100;
  column username format a15;
  column machine format a30;
  select * from session_num where num>50;
  select * from v$license;
  
  发现异常的问题要用文档记录下来,并发给开发团队参考。
  历史数据可以用truncate table session_num;清掉
  
  (这个50是我假设的一个值,不同的应用系统值会不一样)
  
  5.假如系统稳定并没有新的服务添加时,可以从sys用户下删掉这个采样工作:
  
  select job from user_jobs where what='select_sessionnum;';
      JOB
  ----------
     1912
      
   exec dbms_job.remove(1912);
  
   后话:这个方法和statspack采样的方式很相象, 但不会增加系统太大的负担。
   假如你关注其它参数也可以依葫芦画瓢来采样并跟踪它们。
上一篇:在标识列里插入特定的值 人气:646
下一篇:在oracle9i正确转换时区 人气:529
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐