2. close 函数必须将connection 放回 数据库连接池。
3. 当数据库连接池中没有空闲的connection,数据库连接池必须能够自动增加connection 个数。
4. 当数据库连接池中的connection 个数在某一个特别的时间变得很大,但是以后很长时间只用其中一小部分,应该可以自动将多余的connection 关闭掉。
根据我的猜想,这个主要有两可以从以下几个个方面出来1、检查webservice与数据库之间是不是会有丢包的现象,优化webservice的数据库链接
2、查看数据库的数据量以及读写(i/o)情况,根据情况添加相应的索引或者采取一定的表的读写优化
3、添加数据库的pga,因为pga主要是管理数据的链接的。尽量减少不需要的数据库的排序和分组
这个方法很多吧,可以使用语句查询,也可以使用oracle数据库工具查看,还可以用EM。我这有个自己写的sql脚本,是平时自己看公司数据库表空间状态时用的。你可以参考下:
.查看所有表空间的碎片程度(值在30以下表示碎片很多)
select tablespace_name,sum(bytes),sum(free),sum(free)*100/sum(bytes) from (select
b.file_id file_ID,
b.tablespace_name tablespace_name,
b.bytes Bytes,
(b.bytes-sum(nvl(a.bytes,0))) used,
sum(nvl(a.bytes,0)) free,
sum(nvl(a.bytes,0))/(b.bytes)*100 Percent
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id) group by tablespace_name order by sum(free)*100/sum(bytes);
查看表空间是否自动扩展
select file_name,autoextensible,increment_by from dba_data_files
表空间自动扩展
alter database datafile 'path:\datafile name' autoextend on next 1M maxsize 100M
表空间大小
select tablespace_name,count(*),sum(blocks),sum(bytes)/1024/1024
from dba_data_files
group by tablespace_name
使用情况
select df.tablespace_name "表空间名",totalspace "总空间M",freespace "剩余空间M",round((1-freespace/totalspace)*100,2) "使用率%"
from
(select tablespace_name,round(sum(bytes)/1024/1024) totalspace
from dba_data_files
group by tablespace_name) df,
(select tablespace_name,round(sum(bytes)/1024/1024) freespace
from dba_free_space
group by tablespace_name) fs
where df.tablespace_name=fs.tablespace_name
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)