【转】查看修改表空间sql语句

--所有表ower, 表名,表空间名
select owner,table_name,tablespace_name from dba_tables;
--每个表的大小
SELECT   t.segment_name,TO_CHAR(SUM(BYTES)/(1024*1024),'999G999D999')   CNT_MB   
  FROM   user_segments   t
  WHERE      SEGMENT_TYPE   LIKE   'TABLE%'   
  GROUP   BY   t.segment_name order by 2 desc;
--查看表空间名称,大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
FROM dba_tablespaces t, dba_data_files d 
WHERE t.tablespace_name = d.tablespace_name 
GROUP BY t.tablespace_name;
 --表空间使用情况
SELECT a.tablespace_name, 
a.bytes total, 
b.bytes used, 
c.bytes free, 
(b.bytes * 100) / a.bytes "% USED ", 
(c.bytes * 100) / a.bytes "% FREE " 
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
WHERE a.tablespace_name = b.tablespace_name(+) 
AND a.tablespace_name = c.tablespace_name(+); 
--1、查看表在那个表空间

  select tablespace_name,table_name from user_talbes where table_name='employ';
--2、获取用户的默认表空间

  select   username,   DEFAULT_TABLESPACE     from   dba_users where username='scott';
--3、查看表空间所有的文件  

  select from dba_data_files where tablespace_name='USERS';
--4、查看表空间使用情况:
    SELECT tbs 表空间名,                                    
    sum(totalM) 总共大小M,                                    
    sum(usedM) 已使用空间M,                                    
    sum(remainedM) 剩余空间M,                                    
    sum(usedM)/sum(totalM)*100 已使用百分比,                            
    sum(remainedM)/sum(totalM)*100 剩余百分比                            
    FROM(                                            
     SELECT b.file_id ID,                                    
     b.tablespace_name tbs,                                    
     b.file_name name,                                    
     b.bytes/1024/1024 totalM,                                    
     (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,                        
     sum(nvl(a.bytes,0)/1024/1024) remainedM,                            
     sum(nvl(a.bytes,0)/(b.bytes)*100),                                
     (100 - (sum(nvl(a.bytes,0))/(b.bytes)*100))                            
     FROM dba_free_space a,dba_data_files b                            
     WHERE a.file_id = b.file_id                                
     GROUP BY b.tablespace_name,b.file_name,b.file_id,b.bytes                    
     ORDER BY b.tablespace_name                                
    )                                            
    GROUP BY tbs                                        
                                                
--5、扩展表空间 

  alter database datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' resize 50m;
  --自动增长  

  alter database datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' autoextend on next 50m maxsize 500m;    
  --增加数据文件

   alter tablespace yourtablespacename add datafile 'd:\newtablespacefile.dbf' size 5m;

 

猜你喜欢

转载自bigdragon.iteye.com/blog/2207803