ORACLE查看数据文件包含哪些对象
2015-07-10 19:43
567 查看
在上篇ORACLE查看表空间对象中,我介绍了如何查询一个表空间有那些数据库对象,那么我们是否可以查看某个数据文件包含那些数据库对象呢?如下所示
错误的写法,如下所示,DBA_SEGMENTS的HEADER_FILE表示ID of the file containing the segment header,主要是因为仅仅包含段对象的段头所在的文件。
SELECT E.SEGMENT_TYPE AS SEGMENT_TYPE
, E.SEGMENT_NAME AS SEGMENT_NAME
, F.FILE_NAME AS FILE_NAME
, SUM(E.BYTES)/1024/1024 AS SEGMENT_SIZE
FROM DBA_EXTENTS E
INNER JOIN DBA_DATA_FILES F ON E.FILE_ID= F.FILE_ID
WHERE F.FILE_ID =109
GROUP BY E.SEGMENT_TYPE,E.SEGMENT_NAME,F.FILE_NAME
ORDER BY 4 DESC;
SELECT E.SEGMENT_TYPE AS SEGMENT_TYPE
, E.SEGMENT_NAME AS SEGMENT_NAME
, F.FILE_NAME AS FILE_NAME
, SUM(E.BYTES)/1024/1024 AS SEGMENT_SIZE
FROM DBA_EXTENTS E
INNER JOIN DBA_DATA_FILES F ON E.FILE_ID= F.FILE_ID
WHERE F.FILE_NAME =&FILE_NAME
GROUP BY E.SEGMENT_TYPE,E.SEGMENT_NAME,F.FILE_NAME
ORDER BY 4 DESC;
错误的写法,如下所示,DBA_SEGMENTS的HEADER_FILE表示ID of the file containing the segment header,主要是因为仅仅包含段对象的段头所在的文件。
SELECT ds.OWNER AS OWNER
,df.FILE_NAME AS FILE_NAME
,ds.SEGMENT_NAME AS SEGMENT_NAME
,ds.SEGMENT_TYPE AS SEGMENT_TYPE
,SUM(ds.BYTES)/1024/1024 AS SEGMENT_SIZE
FROM DBA_SEGMENTS ds
LEFT JOIN DBA_DATA_FILES df ON ds.HEADER_FILE = df.FILE_ID
WHERE ds.TABLESPACE_NAME=&TABLESPACE_NAME
AND df.FILE_ID=&FILE_ID
GROUP BY OWNER,FILE_NAME,SEGMENT_NAME,SEGMENT_TYPE
ORDER BY 4;
相关文章推荐
- update慢如何处理?
- Oracle 11g Pivot函数实现行转列
- 查看Oracle自动优化建议
- [Oracle]如何在亿级记录表中创建索引
- Oracle 创建索引表空间语法
- oracle查所有字段
- Oracle-BPM(三)
- Oracle客户端的字符集与服务端字符集不同
- OracleXENuiv,数据库创建用户,表空间,
- Oracle 11g新特性
- Oracle 查询优化器 -- 改写查询语句
- [转]asp+oracle分页
- 关于Access导入Oracle会产生双引号的问题
- oracle12c新特点之可插拔数据库(Pluggable Database,PDB)
- Oracle学习(十八)之控制文件、日志文件、数据文件及配置文件管理总结
- oracle 表 主键自增
- 【技术支持】Oracle plsql中的having子句并非都能改写成where子句。having子句的适用场景。
- Oracle创建类似mysql AUTO_INCREMENT自增列
- 【转】CentOS/RHEL/OracleLinux使用UDEV配置ASMDISK
- oracle参数与启停