oracle脚本左连接,oracle左连接和相关执行计划实验

版本11.2.0.4

set linesize 170

set pagesize 200

col file_name for a60

此脚本解决tom脚本调用DBA_FREE_SPACE,无法显示已经写满的数据文件的问题。

select

a.file_id "file_id",

a.file_name "file_name",

(a.bytes/1048576) "curr_MB",

nvl(((a.bytes-b.fbytes)/1048576),(a.bytes/1048576)) "used_MB",

nvl2((b.fbytes),b.fbytes/1048576,0) "free_MB",

(a.MAXBYTES/1024/1024) maxsize,

a.AUTOEXTENSIBLE

from dba_data_files a

left join

(select file_id,sum(bytes) fbytes from DBA_FREE_SPACE group by file_id) b

on a.file_id=b.file_id

order by 1;

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

左连接执行计划实验

SQL> create table jt as select file_id,sum(bytes) fbytes from DBA_FREE_SPACE group by file_id; //原语句的b表

SQL> select * from jt order by 1;

FILE_ID     FBYTES

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

1    9502720

2   33292288

3   85786624

4     786432

5   37289984

6   20905984

6 rows selected.

SQL> select file_id,file_name from dba_data_files; //原语句的a表

FILE_ID FILE_NAME

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

4 +DATA/dbm01/datafile/users.259.956474535

3 +DATA/dbm01/datafile/undotbs1.258.956474535

2 +DATA/dbm01/datafile/sysaux.257.956474533

1 +DATA/dbm01/datafile/system.256.956474533

5 +DATA/dbm01/datafile/example.264.956474661

6 +DATA/dbm01/datafile/undotbs2.265.956474955

6 rows selected.

select /* +moniotr*/

a.file_id "file_id",

a.file_name "file_name",

b.FBYTES

from dba_data_files a

left join jt b on a.file_id=b.file_id

order by 1;

select /*+ noparallel */ dbms_sqltune.report_sql_monitor (sql_id=>'d8dpu3441kvy1', report_level=>'ALL', type=>'ACTIVE',base_path=>') from dual;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值