oracle返回值显示空值,从dba_extents返回结果为空 - Oracle10g

DBA经常需要用如下SQL来查看某个数据块数据哪个SEGMENT,但是在10g里这句SQL返回结果通常是空的。

select * from dba_extents where file_id=30 and block_id<=1000 and block_id+blocks>=1000;[@more@]

SOLUTION:

SQL> alter session set "_optimizer_push_pred_cost_based"=false;

Session altered

SQL> select * from dba_extents where file_id=30 and block_id<=1000 and block_id+blocks>=1000;

OWNER SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO

------------------------------ -------------------------------------------------------------------------------- ------------------------------ ------------------ ------------------------------ ---------- ---------- ---------- ---------- ---------- ------------

CTXSYS DR$WAITING TABLE CTXD 0 30 985 131072 16 30

关于参数_optimizer_push_pred_cost_based:uses cost-based query transformation for push pred optimization.

With the presence of the parameter, the CBO would push the join predicates into the view involved in the query.

This pushing of predicate may lead to full table scan instead of doing index access.

Metalink上说有个补丁能解决这个问题,但是一般情况下那个补丁都没用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值