Oracleテーブルスペース、セグメント、エリア、ブロックの概要

アイコン

  • に存在表空间する
  • これは、あるコレクション
  • これは、ある数据块コレクション
  • 数据块 にマッピングされます 磁盘块
    ここに写真の説明を挿入

Oracleストレージモデルをエンティティ関係図の形式で描画します。左側が論理構造、右側が物理構造です。
ここに写真の説明を挿入

  • 点線で描かれた関係があり、これはセグメントとデータファイルの間の多対多の関係を表しています。関係は存在してはならないため、破線は関係を示すために使用されます。優れた関係エンジニアは、多対多の関係を許可するべきではありません。

テーブルスペース

  • テーブルスペーステーブルスペースは、ストレージ構造の最上位の構造です。
  • テーブルスペースを作成するときは、保存するファイルを指定する必要があります。テーブルスペースはクロスフィジカルストレージにすることができますが、テーブルスペースの次のレベルのオブジェクト-データセグメントをそのファイルに保存するように指定することはできません。
  • データオブジェクトがIO負荷分散にアクセスできるようにするには、さまざまなテーブルスペースでさまざまなデータオブジェクトを指定する必要があります。これが、データテーブルとインデックスが異なるテーブルスペースに構築される理由です。
  • テーブルスペースの作成:
メインテーブルスペース 説明
システム 内部テーブルやデータ辞書などを格納するために使用されるシステムテーブルスペース。
SYSAUX Oracle自体によって維持されるシステム補助テーブルスペース
元に戻す 失効情報のあるテーブルスペース
ユーザー ユーザーに推奨されるテーブルスペース
--查询系统表空间信息
SELECT * FROM dba_tablespaces;
SELECT * FROM user_tablespaces;

データセグメント

  • どのタイプのデータベースオブジェクトも、本質的にはデータセグメントです。データテーブル、インデックス、ロールバック、および集計はすべて、データセグメントの明示です。
  • データセグメントは、データオブジェクトの作成時に作成されます。オブジェクトのボリュームが増加すると、複数のエクステントが継続的に管理用に割り当てられます。
--数据段类型
SELECT DISTINCT t.segment_type FROM dba_segments t;

--查询系统段信息
SELECT * FROM dba_segments;
SELECT * FROM user_segments;

--查询区、块信息
SELECT ds.owner,
       SUM(ds.bytes) / 1024 / 1024 "所占空间(单位: MB)",
       SUM(ds.blocks) 数据块,
       SUM(ds.extents) 分区
  FROM dba_segments ds
 WHERE ds.owner = 'SYS'
 GROUP BY ds.owner;

エリア範囲

  • 通常、物理ストレージは随机読み取りと書き込みを行います。同じファイルであっても、同じ情報が完全に連続した物理ストレージスペースに保存されることを保証することはできません。
  • したがって、Oracleにはパーティションエクステントの概念があります。これは、一連の連続したデータブロックコレクションを表します。
SELECT * FROM dba_extents;
SELECT * FROM user_extents;

データブロック

  • データブロックは、Oracleデータ情報の最小の論理単位です。
  • さまざまなオペレーティングシステム(Windows、Linux、Unix)の違いは保護されており、すべてのデータ操作はOracleブロックで実行されます。
SQL> SHOW parameter db_block_size; -- 命令行 查询数据块大小

SQL> SHOW parameter db_file_multiblock_read_count; -- 一次从物理文件中读取数据块的数量

おすすめ

転載: blog.csdn.net/qq_34745941/article/details/100192287