2013-12-09 25 views
-1

我的web應用程序運行非常緩慢,看起來像是由於數據庫用盡了表空間。目前,我正在使用SYSTEM用戶將我的網絡應用程序連接到數據庫,我知道這不是一種好的做法,但現在這是如此。任何人都知道如何使用Query增加SYSTEM用戶表空間?也許可以做些什麼來清理一些SYSTEM表空間?關閉審覈?爲系統用戶增加表空間使用查詢

獲取表空間統計查詢:

SELECT a.tablespace_name, 
     ROUND (((c.BYTES - NVL (b.BYTES, 0))/c.BYTES) * 100,2) percentage_used, 
     c.BYTES/1024/1024 space_allocated, 
     ROUND (c.BYTES/1024/1024 - NVL (b.BYTES, 0)/1024/1024,2) space_used, 
     ROUND (NVL (b.BYTES, 0)/1024/1024, 2) space_free, 
     c.DATAFILES 
     FROM dba_tablespaces a, 
      ( SELECT tablespace_name, 
         SUM (BYTES) BYTES 
       FROM dba_free_space 
      GROUP BY tablespace_name 
      ) b, 
      ( SELECT COUNT (1) DATAFILES, 
         SUM (BYTES) BYTES, 
         tablespace_name 
       FROM dba_data_files 
      GROUP BY tablespace_name 
     ) c 
     WHERE b.tablespace_name(+) = a.tablespace_name 
     AND c.tablespace_name(+) = a.tablespace_name 
    ORDER BY NVL (((c.BYTES - NVL (b.BYTES, 0))/c.BYTES), 0) DESC; 

查詢結果:

TABLESPACE_NAME PERCENTAGE_USED SPACE_ALLOCATED SPACE_USED SPACE_FREE DATAFILES 
SYSTEM   97.45   380   370.31  9.69   1 
SYSAUX   94.48   740   699.19  40.81 1 
UNDOTBS1 83.44   40   33.38  6.63   1 
USERS   2.56   100   2.56  97.44 1 
TEMP    0 
+1

什麼使你認爲97%的系統表空間使你的系統變慢?這有很多可能的原因。順便說一句,你可能有autoextend數據文件。你會不時收集統計數據? –

+0

@RobertMerkwürdigeliebe我猜測了一下,我不是DBA。使用SQL開發人員更新(SQL更新和直接更新行)不會被提交。性能也惡化,而且沒有任何代碼更改 – c12

+0

您知道您必須在sqldeveloper中進行顯式提交嗎? –

回答

1
SELECT FILE_NAME, TABLESPACE_NAME,BYTES 
FROM DBA_DATA_FILES 
WHERE TABLESPACE_NAME = 'SYSTEM'; 

ALTER DATABASE DATAFILE '<FILENAME>' RESIZE 500M; 

例如:

ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf' 
    RESIZE 100M;