5

Oracle XEの概要ページに記載されているとおり:

Oracle Database XEは、任意の数のCPU(マシンごとに1つのデータベース)を備えた任意のサイズのホストマシンにインストールできますが、XEは最大4GBのユーザーデータを格納し、最大1GBのメモリを使用し、ホストマシンで1つのCPUを使用します。

データベースを監視して、使用中のユーザーデータの量や、データベースが使用しているメモリの量を確認したい場合、どうすればよいですか?Oracle Application Expressからこれらの値を監視することは可能ですが、集中監視システムからデータベースを監視したいと思います。Oracle XEのドキュメントには、フラッシュリカバリ領域の使用量を返すクエリが示されているため、ユーザーデータの使用量についても同様のクエリがあると思います。

SELECT
NAME,
TO_CHAR(SPACE_LIMIT, '999,999,999,999') AS SPACE_LIMIT,
TO_CHAR(SPACE_LIMIT - SPACE_USED + SPACE_RECLAIMABLE,'999,999,999,999')
   AS SPACE_AVAILABLE,
ROUND((SPACE_USED - SPACE_RECLAIMABLE)/SPACE_LIMIT * 100, 1)
   AS PERCENT_FULL
FROM V$RECOVERY_FILE_DEST;

また、ユーザーデータが制限を超えるとどうなりますか?

4

2 に答える 2

6

Oracle FAQ Webサイトから恥知らずに取得した、テーブルスペースごとに使用済みスペースをチェックするクエリは次のとおりです。

SELECT /* + RULE */  df.tablespace_name "Tablespace",
       df.bytes / (1024 * 1024) "Size (MB)",
       SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
       Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
       Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
  FROM dba_free_space fs,
       (SELECT tablespace_name,SUM(bytes) bytes
          FROM dba_data_files
         GROUP BY tablespace_name) df
 WHERE fs.tablespace_name (+)  = df.tablespace_name
 GROUP BY df.tablespace_name,df.bytes
UNION ALL
SELECT /* + RULE */ df.tablespace_name tspace,
       fs.bytes / (1024 * 1024),
       SUM(df.bytes_free) / (1024 * 1024),
       Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
       Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
  FROM dba_temp_files fs,
       (SELECT tablespace_name,bytes_free,bytes_used
          FROM v$temp_space_header
         GROUP BY tablespace_name,bytes_free,bytes_used) df
 WHERE fs.tablespace_name (+)  = df.tablespace_name
 GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used
 ORDER BY 4 DESC;

デフォルトでは、ユーザーデータはテーブルスペースで使用されるUSERSスペースです。

あなたが限界に達したときに何が起こるかについては、私はそれを推測することしかできません:

  • データを挿入しようとすると、スペース不足エラーが発生します(いずれにせよ、一部のOracleエラーメッセージは常にスペース不足から発生しているようです;-)
  • あなたはあなたの人生で最大のチェックに参加しているかもしれません...
于 2011-03-27T10:46:56.800 に答える
1

密接に関連する問題:ユーザーによるテーブルスペースの使用(スペースの行き先を確認するため):

select owner,tablespace_name,
sum(bytes)/1024/1024 as mbytes
from dba_segments
group by owner,tablespace_name
order by mbytes desc;
于 2015-04-28T15:56:27.490 に答える