ORACLE中如何找出大表分布在哪些数据文件中?
2020-02-27 09:46 潇湘隐者 阅读(2063) 评论(2) 编辑 收藏 举报ORACLE中如何找出大表分布在哪些数据文件中?
在ORACLE数据中,我们能否找出一个大表的段对象分布在哪些数据文件中呢? 答案是可以,我们可以用下面脚本来找出对应表的区、段分别位于哪些数据文件中
SET PAGESIZE 60;
COL SEGMENT_TYPE FOR A12;
COL FILE_NAME FOR A64;
COL SEGMENT_NAME FOR A24;
COL TABLESPACE_NAME FOR A24;
COL SEGMENT_OWNER FOR A12;
SELECT E.OWNER AS SEGMENT_OWNER
, E.SEGMENT_TYPE AS SEGMENT_TYPE
, E.SEGMENT_NAME AS SEGMENT_NAME
, E.PARTITION_NAME AS PARTITION_NAME
, E.TABLESPACE_NAME AS TABLESPACE_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 E.OWNER='&OWNER'
AND E.SEGMENT_NAME='&SEGMENT_NAME'
GROUP BY E.OWNER
,E.SEGMENT_TYPE
,E.PARTITION_NAME
,E.SEGMENT_NAME
,E.TABLESPACE_NAME
,F.FILE_NAME
ORDER BY SEGMENT_SIZE DESC;
其实之前写过一篇博客“ORACLE查看数据文件包含哪些对象”,这个脚本只是那个脚本的“变异版本”,本质没有区别。所以,在ORACLE数据库当中,我们即可找出一个数据文件中保存有哪些对象, 又可以通过对象名(表名、索引名)定位到当前对象分布在哪些数据文件当中。

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2019-02-27 Linux如何查找文件的创建时间
2016-02-27 查看ORACLE的实际执行计划
2015-02-27 服务器重启后SQL Server Agent由于"The EventLog service has not been started" 启动失败