oracle資料庫表大小
『壹』 怎麼查看oracle資料庫表的大小
1. 查看所有表空間大小 sql> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files 2 group by tablespace_name; 2. 已經使用的表空間大小 SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space 2 group by tablespace_name; 3. 所以使用空間可以這樣計算 select a.tablespace_name,total,free,total-free used from ( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files group by tablespace_name) a, ( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space group by tablespace_name) b where a.tablespace_name=b.tablespace_name; 4. 下面這條語句查看所有segment的大小。 Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name 5. 還有在命令行情況下如何將結果放到一個文件里。 SQL> spool out.txt SQL> select * from v$database; SQL> spool off
『貳』 如何修改Oracle資料庫表的大小
Oracle資料庫實際應用中,很多人可能會遇到這樣的問題。處於性能或者其他方面的考慮,需要改變某個表或者是某個用戶的所有表的表空間。通常的做法就是首先將表刪除,然後重新建表,在新建表時將表空間指定到我們需要改變的表空間。cuug將為大家詳細講解如何修改Oracle資料庫表的大小。
如果該用戶已經保存了大量數據,這種辦法就就顯得不是很方便,因為有大量數據需要提前備份出來。下面介紹一種利用資料庫的導出/導入功能來實現重新組織資料庫表空間的方法。
下面是一個簡單的例子,假定要將用戶db_zgxt下的全部表從表空間A轉換到表空間B,具體步驟(在Oracle 8.0.5 for NT環境)如下:
1、導出db_zgxt下的所有表(Dos控制台下)
EXP80 OWNER=db_zgxt FILE=Exp0326.DMP LOG=Exp0326.LOG
系統提示輸入用戶名和口令,回答完畢,系統就開始將db_zgxt下的所有表都導出到一個叫Exp0316.dmp的文件中。
2、刪除db_zgxt下的所有表(在SQL/PLUS中)
可以採用批處理的方式刪除掉db_zgxt下的所有表,生成批處理的語句如下:
select 』drop table 』||user_tables||』;』 from user_tables;
3、採用導入參數 INDEXFILE導入db_zgxt用戶下的所有表(Dos控制台下)
IMP80 FULL=Y FILE=Exp0326.DMP INDEXFILE=db_zgxt.SQL LOG=Imp0326_1.LOG
系統提示輸入用戶名和口令,回答完畢,系統就開始將文件Exp0326.dmp導入到db_zgxt用戶下。
其中,指定參數INDEXFILE後,系統就將創建表和索引的語句寫到一個文件,這里是db_zgxt.sql中。該文件中包含了所有創建索引(CREATE INDEX)語句和創建表(CREATETABLE)語句,但是這里所有創建表的語句均加了注釋標志。在任何文本編輯器中打開並編輯該文件,去掉所有創建表語句的注釋標志,將所有的表空間名稱由A替換為B,同時對所有的創建索引語句加上注釋標志。這些工作作完以後,在SQL/PLUS中運行該腳本文件,這些表就被創建,其表空間由A變為B。
4、採用導入參數INDEXES=N 和IGNORE=Y將db_zgxt用戶的表數據導入庫中(Dos控制台下)
IMP80 FULL=Y INDEXES=N FILE=Exp0326.DMP IGNORE=Y LOG=Imp0326_2.LOG
其中,參數INDEXES=N是指將數據導入資料庫中時不加索引。IGNORE=Y是指在導入數據過程中,忽略表已經存在(table already exists)的錯誤。這樣Oralce就將數據和一些約束條件導入到第3步創建的表中。
5、創建索引
在文本編輯器中重新打開在第3步中創建的db_zgxt.sql腳本文件,這次,將所有創建表(CREATE TABLE)的語句加上注釋標志,然後將所有的創建索引(CREATE INDEX)語句去掉注釋標志。在SQL/PLUS中再次運行該腳本文件。
至此,已經成功的完成了將db_zgxt用戶下的全部表從表空間A轉換到表空間B的工作。
『叄』 oracle資料庫如何查看錶空間大小
1.查看Oracle資料庫中表空間信息的工具方法: 使用oracle enterprise manager console工具,這是oracle的客戶端工具,當安裝oracle伺服器或客戶端時會自動安裝此工具,在...
2.查看Oracle資料庫中表空間信息的命令方法: 通過查詢資料庫系統中的數據字典表(data dictionary tables)獲取表空間的相關信息,首先使用客戶端工具連接到資料庫,這些工具可以是SQL..
『肆』 oracle中怎麼查看錶的大小
可用如下語句查看:
selectround(BYTES/1024/1024,2)||'M'fromuser_segmentswheresegment_name='表名';
注意:表名需要用英文大寫。
如要查詢資料庫中emp表的大小,用如下語句:
select round(BYTES/1024/1024,2)||'M' from user_segments where segment_name='EMP';
查詢結果:
查詢結果代表EMP表所佔空間大小為0.06M。