ホームページ >よくある問題 >Oracle テーブルスペースのサイズをクエリする方法

Oracle テーブルスペースのサイズをクエリする方法

zbt
zbtオリジナル
2023-08-03 15:56:284756ブラウズ

Oracle で表スペースのサイズを照会する方法: 1. DBA_TABLESPACE ビューを使用します。このビューには、表スペースの名前、サイズ、残りの使用可能なスペースなどを含むすべての表スペース情報が保管されます。 Oracle プロシージャ DBMS_SPACE.SPACE_USAGE によって提供されるストレージを使用すると、このストアド プロシージャは、テーブル スペースの合計サイズ、使用済みサイズ、残りの空きスペースなどを含むテーブル スペースの詳細情報を返します。

Oracle テーブルスペースのサイズをクエリする方法

このチュートリアルの動作環境: Windows 10 システム、Oracle バージョン 19c、DELL G3 コンピューター。

Oracle は非常に有名なリレーショナル データベース管理システムであり、テーブル スペースのサイズをクエリする便利な方法を提供します。 Oracle では、テーブルスペースは、テーブル、インデックス、その他のオブジェクトを格納するデータベース内の論理構造です。

Oracle では、テーブルスペースのサイズをクエリする方法がいくつかあります。以下に、よく使われる 2 つの方法を紹介します。

最初の方法は、DBA_TABLESPACE ビューを使用することです。このビューには、表スペース名、サイズ、残りの空きスペースなどを含むすべての表スペース情報が保管されます。

以下は、表スペースのサイズをクエリするサンプル SQL ステートメントです。

SELECT tablespace_name,
ROUND(SUM(bytes) / 1024 / 1024, 2) AS "Size(MB)",
ROUND(SUM(bytes - freespace) / 1024 / 1024, 2) AS "Used(MB)",
ROUND(SUM(freespace) / 1024 / 1024, 2) AS "Free(MB)"
FROM (SELECT df.tablespace_name,
df.bytes,
SUM(fs.bytes) AS "freespace"
FROM (SELECT tablespace_name,
ROUND(SUM(bytes) / 1048576) AS bytes
FROM dba_data_files
GROUP BY tablespace_name) df,
(SELECT tablespace_name,
ROUND(SUM(bytes) / 1048576) AS bytes
FROM dba_free_space
GROUP BY tablespace_name) fs
WHERE df.tablespace_name = fs.tablespace_name(+)
GROUP BY df.tablespace_name, df.bytes)
GROUP BY tablespace_name;

上記のクエリ ステートメントは、DBA_DATA_FILES ビューと DBA_FREE_SPACE ビューを接続することによって、表スペースのサイズ情報を取得します。バイト数をカウントし、それをメガバイト (MB) に変換することにより、表スペースのサイズが表示されます。

もう 1 つの方法は、Oracle が提供するストアド プロシージャ DBMS_SPACE.SPACE_USAGE を使用することです。このストアド プロシージャは、テーブル スペースの合計サイズ、使用済みサイズ、残りの空きスペースなど、テーブル スペースに関する詳細情報を返します。

次に、ストアド プロシージャを使用して表スペースのサイズをクエリする例を示します。

SET SERVEROUTPUT ON;
DECLARE
total_size NUMBER;
used_size NUMBER;
free_size NUMBER;
BEGIN
DBMS_SPACE.SPACE_USAGE('TABLESPACE_NAME', total_size, used_size, 
free_size);
DBMS_OUTPUT.PUT_LINE('Total Size: ' || ROUND(total_size / 1024 / 1024, 2) || 
' MB');
DBMS_OUTPUT.PUT_LINE('Used Size: ' || ROUND(used_size / 1024 / 1024, 2) || ' 
MB');
DBMS_OUTPUT.PUT_LINE('Free Size: ' || ROUND(free_size / 1024 / 1024, 2) || ' 
MB');
END;
/

上記のストアド プロシージャは、表スペース名をパラメータとして DBMS_SPACE.SPACE_USAGE に渡します。テーブルスペースの合計サイズ、使用されているサイズ、および残りの空きスペースを返します。クエリ結果は、DBMS_OUTPUT.PUT_LINE ステートメントを使用してコンソールに表示できます。

どの方法を使用する場合でも、これらのクエリは、Oracle データベース内のテーブル スペースのサイズを理解するのに役立ちます。テーブルスペースの使用状況を理解することで、データベースのストレージスペースをより適切に管理および最適化できます。

以上がOracle テーブルスペースのサイズをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。