表空间使用情况查询慢的处理

今天某个系统上的数据库,在日常维护的过程中发现,查询表空间使用情况,比其他的数据库明显慢,得等到10分钟左右才能得到查询结果。
需查询发现是因为Oracle 10g的的新特性RECYCLEBIN机制导致的。
按网上介绍执行了 
SQL> purge recyclebin;
语句,语句执行的很快,但是问题仍未解决。根据过去学习记忆,执行了如下语句:
SQL> purge dba_recyclebin;

该语句执行时间相当长,可能是因为业务时间执行原因导致的,最终问题得以解决。说明DBA有必要定期进行对Oracle回收站的清理操作。

[@more@]

如下为具体处理过程:

[root@dbserv ~]# su - oracle
-bash-3.2$ sqlplus / as sysdba

SQL> select count(*) from sys.RECYCLEBIN$;

COUNT(*)
----------
135178



SQL> PURGE DBA_RECYCLEBIN;

DBA Recyclebin purged.


以上的purge过程大概执行了5过多小时,终于执行完了。


SQL> select count(*) from sys.RECYCLEBIN$;

COUNT(*)
----------
0

在执行如下表空间使用情况查询后,很快就看到了结果。

SQL> set linesize 1000
SQL> set wrap off 
SQL> select substr(a.TABLESPACE_NAME,1,30) TablespaceName,
2 sum(a.bytes/1024/1024) as "Totle_size(M)",
3 sum(nvl(b.free_space1/1024/1024,0)) as "Free_space(M)",
4 sum(a.bytes/1024/1024)-sum(nvl(b.free_space1/1024/1024,0)) as "Used_space(M)",
5 round((sum(a.bytes/1024/1024)-sum(nvl(b.free_space1/1024/1024,0)))*100/sum(a.bytes/1024/1024),2) as "Used_percent%" from dba_data_files a,
6 (select sum(nvl(bytes,0)) free_space1,file_id from dba_free_space
7 group by file_id) b where a.file_id = b.file_id(+) group by a.TABLESPACE_NAME
8 order by "Used_percent%";

TABLESPACENAME Totle_size(M) Free_space(M) Used_space(M) Used_percent%
------------------------------------------------------------ ------------- ------------- ------------- -------------
USERS 500 499.9375 .0625 .01
SYSAUX 7000 4903.25 2096.75 29.95
UNDOTBS2 7000 4902.3125 2097.6875 29.97
SYSTEM 2000 638.3125 1361.6875 68.08
...


SQL>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在MySQL中执行查询包含BLOB字段时,可能会出现查询情况。这是因为BLOB字段存储大量的二进制数据,查询涉及对这些数据进行读取和处理,可能会导致性能下降。以下是一些可能导致查询的原因和解决方法: 1. 数据库配置:检MySQL数据库的配置参数,如`innodb_buffer_pool_size`和`max_allowed_packet`,确保它们适当地配置以适应BLOB字段的读取和处理。 2. 索引优化:对于经常被查询的BLOB字段,考虑创建适当的索引来加快查询速度。请注意,InnoDB引擎中的BLOB字段只能创建前缀索引或全文索引。 3. 查询优化:尽量避免在SELECT语句中选择大量的BLOB字段。只选择需要的字段,并使用LIMIT限制返回的行数,以减少数据传输和处理的负担。 4. 分页查询:对于包含BLOB字段的分页查询,可以使用LIMIT和OFFSET来限制每次查询返回的结果集大小,避免一次性查询所有数据。 5. 压缩数据:如果BLOB字段存储的是可压缩的二进制数据(如图片、文档等),可以考虑在存储时进行压缩,以减少存储空间和读取时间。 6. 缓存数据:对于经常被查询的BLOB字段,可以将其缓存在应用程序中,以减少对数据库的频繁查询。 7. 数据库分区:对于包含大量BLOB数据的表,可以考虑使用数据库分区来将数据分散存储在多个物理位置,以提高查询性能。 请根据你的具体情况和需求选择适合的解决方法,并进行性能测试和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值