oracle查看表空间并扩容,解决查询慢问题

数据库非常慢,简单的sql速度也很慢。

可能的原因:
1、归档日志是否满了。 (如果满了,清理下)
2、表空间是否满了。
这里说下表空间的处理。

查看表空间,扩展表空间

查看表空间及使用率(total表示目前的可用空间):

-- 查看表空间及使用率等信息
SELECT
	A.TABLESPACE_NAME,
	FILENUM,
	TOTAL "TOTAL (MB)",
	F.FREE "FREE (MB)",
	TO_CHAR ( ROUND( FREE * 100 / TOTAL, 2 ), '990.00' ) "FREE%",
	TO_CHAR ( ROUND( ( TOTAL - FREE ) * 100 / TOTAL, 2 ), '990.00' ) "USED%",
	ROUND( MAXSIZES, 2 ) "MAX (MB)"
FROM
	(
SELECT
	TABLESPACE_NAME,
	COUNT( FILE_ID ) FILENUM,
	SUM( BYTES / ( 1024 * 1024 ) ) TOTAL,
	SUM( MAXBYTES ) / 1024 / 1024 MAXSIZES
FROM
	DBA_DATA_FILES
GROUP BY
	TABLESPACE_NAME
	) A,
	( SELECT TABLESPACE_NAME, ROUND( SUM( BYTES / ( 1024 * 1024 ) ) ) FREE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME ) F
WHERE
	A.TABLESPACE_NAME = F.TABLESPACE_NAME

一看使用率确实很高,达到了95%。
修改表空间大小,根据上述查询的total来看。

-- 设置可用空间,注:可用空间不能超过最大空间,就是上面查询结果的最后一列
alter database datafile '/oracle/oradata/myapp/uuu.dbf' resize 17865m;
-- 设置为自动扩展
alter database datafile '/oracle/oradata/myapp/uuu.dbf' autoextend on;

扩展完表空间需要重启吗?
不确定,为了确保万一,我是重启了。 (生产环境一定要在窗口期操作额)

再次查询速度果然快了很多。

命令行查看表空间(简易)

命令如下:

col file_name for a60; --  文件名字符长度为60个字符
set linesize 160; -- 每行最多显示160个字符
select file_name,tablespace_name,bytes from dba_data_files; 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值