/*備注:
表空間是數據庫的邏輯組成部分
從物理上將:數據庫數據存放在數據文件中
從邏輯上將:數據庫則是存放在表空間中
表空間由一個或是多個數據文件組成
*/
--1.查看用戶下面的所有的表
SELECT * FROM USER_TABLES;
SELECT * FROM DBA_TABLES WHERE OWNER = 'COMM_USER';
--1.1查看表所在的表空間
select TABLE_NAME,TABLESPACE_NAME from dba_tables t where t.table_name='DM_LIST';
--1.2查看用戶所屬的表空間
SELECT DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME = 'COMM_USER';
--1.3.查看所有的表空間
SELECT * FROM DBA_TABLESPACES;
SELECT * FROM V$TABLESPACE;
--1.3查看默認的表空間
select * from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';
--1.4創建索引到指定表空間
create index IDX_DM_FINISHTIME_ORGANID on DM_COMM_PREM_LIST (FINISH_TIME,ORGAN_ID) tablespace TBS_DW_DATA;
--1.5查看表空間下有多少用戶,tablespace_name表空間 的名字一定要大寫
SELECT DISTINCT S.OWNER
FROM DBA_SEGMENTS S
WHERE S.TABLESPACE_NAME = 'TBS_COMM_DATA';
--1.6所有表空間的使用情況
SELECT --B.file_name "文件名",
A.TABLESPACE_NAME "表空間名",
TOTAL "表空間大小",
FREE "表空間剩余大小",
(TOTAL - FREE) "表空間使用大小",
TOTAL / (1024 * 1024 * 1024) "表空間大小(G)",
FREE / (1024 * 1024 * 1024) "表空間剩余大小(G)",
(TOTAL - FREE) / (1024 * 1024 * 1024) "表空間使用大小(G)",
ROUND((TOTAL - FREE) / TOTAL, 4) * 100 "使用率 %"
FROM (SELECT TABLESPACE_NAME,
SUM(BYTES) FREE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME,
-- file_name,
SUM(BYTES) TOTAL
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME/*,file_name*/) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME;
--2、linux中查看服務器硬盤的使用情況
df -k 以KB為單位顯示磁盤使用量和占用率
df -m 以M為單位顯示磁盤使用量和占用率
--3、給表空間新增數據文件並設置30G大小 在命令窗口中執行,數據文件的大小最大不能超過32G,
否則會報錯:ORA-01144: 文件大小 (13107200 塊) 超出 4194303 塊的最大數
方法1)給白空間增加數據文件
SQL> alter tablespace AUDIT add datafile '/pi/app/oracle/oradata/enterprise_tbs05.dbf' size 30G;
alter tablespace 表空間名 add datafile '數據文件存放路徑' size 數據文件大小;
方法2)手動增加數據文件尺寸
SQL>ALTER DATABASE AUDIT '/oracle/oradata/db/GAME.dbf' RESIZE 4000M;
方法3)設定數據文件自動擴展
SQL> ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE 10000M;
執行完上述1、2、3.1)步驟之后:DBA_DATA_FILES中新增的數據文件的bytes的值要比maxbytes的值要大的原因?
原因:當一個datafile 手工resize到一個大於maxsize(maxbytes)的值之后,DBA_DATA_FILES中bytes的值要比maxbytes的值要大。
當該datafile被設置為autoextend on之后,dba_data_files中的maxbytes 值被自動結算為一個非零值。dba_data_files中的bytes是該datafile的當前的大小(以bytes為單位)
不常用查詢:
1)查看oracle數據庫庫對象
SELECT owner, object_type, status, COUNT(*) count# FROM all_objects GROUP BY owner, object_type, status;
2)查看oracle數據庫的版本
SELECT version FROM product_component_version WHERE substr(product, 1, 6) = 'Oracle';
3)查看oracle數據庫的創建日期和歸檔方式
SELECT created, log_mode FROM v$database;
4)查看oracle控制文件目錄
SELECT NAME FROM v$controlfile;
5)查看oracle日志文件目錄
SELECT MEMBER FROM v$logfile;