テーブルスペースは、Oracle データベースがデータを管理するための基本単位です。 Oracle データベースでは、ユーザー データとシステム データの両方が表スペースに格納されます。ユーザーを作成するときは、このユーザーにテーブルスペースを割り当てる必要があります。したがって、Oracle データベースを管理する場合、多くの場合、ユーザーの表スペースと表スペースの使用状況を照会する必要があります。この記事では、Oracle SQL を使用してユーザーのテーブルスペースをクエリする方法を紹介します。
Oracle データベース管理では、表領域はデータベースを複数の論理領域に分割する方法です。各テーブルスペースは、ディスク上に物理的に保存されるデータ ファイルのセットで構成されます。各テーブルスペースには、テーブル、インデックス、ストアドプロシージャなど、関連するデータベースオブジェクトがいくつか含まれています。テーブルスペースを作成するときは、テーブルスペースの名前、データファイル、ストレージパラメータ、その他の情報を指定する必要があります。通常、各ユーザーにテーブルスペースを割り当てます。
Oracle データベースでは、システム テーブル スペースは、データ ディクショナリ、ストアド プロシージャ、内部テーブルなどのシステム オブジェクトを格納するために使用されるテーブル スペースです。特定のユーザーのテーブルスペースにクエリを実行する必要がある場合は、次の手順で実行できます。
ステップ 1: Oracle データベースにログインします
まず、Oracle データベースにログインする必要があります。 Oracle データベース管理システムでは、SQLPlus ツールや Oracle SQL Developer ツールなどを使用できます。 SQLPlus ツールを例として、次のコマンドを入力してログインします。
$ sqlplus / as sysdba
このコマンドは、システム管理者として Oracle データベースにログインします。
ステップ 2: ユーザー表スペースを照会する
次の SQL 照会ステートメントを使用して、特定のユーザーの表スペースを照会できます:
SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME='username';
その中で、USERNAME は次のことを表します。照会されるユーザー名、DEFAULT_TABLESPACE はユーザーのデフォルトの表スペースを表します。
ステップ 3: 表スペースの使用状況をクエリする
特定のユーザーの表スペースの使用状況を知る必要がある場合は、次の SQL クエリ ステートメントを使用できます:
SELECT A.TABLESPACE_NAME, A.BYTES / (1024 * 1024) AS "TOTAL_MB", (B.BYTES - NVL(F.BYTES, 0)) / (1024 * 1024) AS "USED_MB", NVL(F.BYTES, 0) / (1024 * 1024) AS "FREE_MB", (B.BYTES - NVL(F.BYTES, 0)) / A.BYTES * 100 AS "USED_PERCENTAGE", NVL(F.BYTES, 0) / A.BYTES * 100 AS "FREE_PERCENTAGE" FROM (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A, (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES FROM DBA_SEGMENTS GROUP BY TABLESPACE_NAME) B, (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+) AND A.TABLESPACE_NAME = F.TABLESPACE_NAME(+);
この SQL クエリ ステートメントは、各表スペースの合計サイズ (TOTAL_MB)、使用済み領域 (USED_MB)、空き領域 (FREE_MB)、使用済み領域の割合 (USED_PERCENTAGE)、および空き領域の割合 (FREE_PERCENTAGE) を返します。
ステップ 4: 概要
Oracle データベース管理では、表領域は非常に重要な概念です。各ユーザーに表スペースを割り当てる必要があり、多くの場合、ユーザーの表スペースと表スペースの使用状況を照会する必要があります。上記の SQL クエリ ステートメントを使用すると、Oracle データベース内のテーブル スペースに簡単にクエリを実行し、テーブル スペースの使用状況を把握できます。
以上がOracle SQLを介してユーザーの表領域にクエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。