我有Oracle的权限,想知道怎样查询其中的所有表空间
是sqlplus的,没有可视化的窗口

解决方案 »

  1.   

    SELECT tablespace_name,file_name FROM dba_data_files;
      

  2.   

    select * from dba_tablespaces
      

  3.   

    SQL> select name from v$tablespace;NAME
    ------------------------------
    SYSTEM
    UNDOTBS1
    SYSAUX
    USERS
    TEMP
    EXAMPLE6 rows selected.
      

  4.   

    select * from dba_tablespace;
      

  5.   

    select * from dba_tablespaces
      

  6.   


    凑个热闹..SELECT F.TABLESPACE_NAME, 
    TO_CHAR ((T.TOTAL_SPACE - F.FREE_SPACE),'999,999') "USED (MB)", 
    TO_CHAR (F.FREE_SPACE, '999,999') "FREE (MB)", 
    TO_CHAR (T.TOTAL_SPACE, '999,999') "TOTAL (MB)", 
    TO_CHAR ((ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100)),'999')||' %' PER_FREE 
    FROM ( 
    SELECT TABLESPACE_NAME, 
    ROUND (SUM (BLOCKS*(SELECT VALUE/1024 
    FROM V\$PARAMETER 
    WHERE NAME = 'db_block_size')/1024) 
    ) FREE_SPACE 
    FROM DBA_FREE_SPACE 
    GROUP BY TABLESPACE_NAME 
    ) F, 

    SELECT TABLESPACE_NAME, 
    ROUND (SUM (BYTES/1048576)) TOTAL_SPACE 
    FROM DBA_DATA_FILES 
    GROUP BY TABLESPACE_NAME 
    ) T 
    WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME 
    AND (ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100)) < 80; 8个DBA最常用的监控Oracle数据库的常用shell脚本
    http://blog.csdn.net/tianlesoftware/archive/2009/11/10/4792798.aspx