采样数据库连接数

文章作者 100test 发表时间 2007:11:28 14:25:27
来源 100Test.Com百考试题网


数据库的实时连接数是否稳定是衡量一套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.写一个存储过程0select_sessionnum.sql

create or replace procedure 0select_sessionnum
is
begin
insert into session_num(num,username,machine,reportdate)
0select 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设定每隔一个小时调用0select_sessionnum过程采样数据

variable jobno number.
begin
dbms_job.submit(:jobno,0select_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.
0select * from session_num where num>50.
0select * from v$license.

发现异常的问题要用文档记录下来,并发给开发团队参考。
历史数据可以用truncate table session_num.清掉

(这个50是我假设的一个值,不同的应用系统值会不一样)

5.如果系统稳定并没有新的服务添加时,可以从sys用户下删掉这个采样工作:

0select job from user_jobs where what=0select_sessionnum..
JOB
----------
1912

exec dbms_job.remove(1912).

后话:这个方法和statspack采样的方式很相象, 但不会增加系统太大的负担。
如果你关注其它参数也可以依葫芦画瓢来采样并跟踪它们。


相关文章


最令人头痛的是网络是通的,但网速变慢
微软称本月发布Window erver2008RC0
体验Vista三个特性鲜为人知的有趣操作
ORACLE的分布式管理
采样数据库连接数
简析REDOLOGFILE
Linux操作系统上编译程序的方法详细介绍
如何增加ORACLE连接数
2008各省市硕士报考招生单位—内蒙古(9所)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛