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 EINNER 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資料庫當中,我們即可找出一個資料檔案中保存有哪些物件, 又可以通過物件名(表名、索引名)定位到當前物件分布在哪些資料檔案當中,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/18435.html
標籤:Oracle
上一篇:[20200223]關于latch and mutext的優化.txt
下一篇:Connect SQL Server from Linux Client using Windows Authentication and troubleshoot steps
