Oracleの概要と基本用語

目次

サンプル インスタンスとデータベース
表領域とデータファイル
ユーザとスキーマ
Oracleのバージョンを調べる
データベースの用語

インスタンスとデータベース

◯インスタンス

インスタンスは、メモリ領域(SGA)とプロセス(バックグラウンドプロセス)から構成され、データベースを管理します。

インスタンスは1台のサーバに複数作成できます。

 

メモリ領域(SGA)

共有プール SQL文やPL/SQLや実行計画を保持します。
同じSQL文は再利用されます。バインド変数も共有プールで使用します。
データベース・バッファ・キャッシュ 高速化のためデータをキャッシュします。
REDOログバッファ コミット前の更新の履歴を保持します。コミット時にREDOログファイルに書き込みます。
ラージプール 汎用的に使用されます。

 

プロセス(バックグラウンドプロセス)

DBWn
(データベースライター)
データファイルに書き込みます。
LGWR(ログライター) REDOログファイルに書き込みます。
CKPT
(チェックポイント)
データの整合性を見ます。
PMON
(プロセスモニター)
障害時にリソースを開放等します。
SMON
(システムモニター)
障害時にリカバリを実施します。
ARCn(アーカイバプロセス) ログスイッチ時にREDOログファイルをコピーします。

https://docs.oracle.com/cd/E16338_01/server.112/b56311/bgprocesses.htm

 

◯データベース

データベースは、インスタンスの配下に1つあります。各種ファイルから成り立っています。

データファイル データを格納します。
REDOログファイル 変更情報を保持します。障害時の復旧はこのファイルを使用します。
制御ファイル データベースの情報を保持します。データベース名等。

※SQLServerは1インスタンスに複数のデータベースの構成が可能です

 

リスナー(TNSLSNR)

ユーザプロセス(SQLPlus等)の接続を受けてインスタンスのプロセスに接続します。

インスタンスのプロセスとは別に独立していますが、インスタンスとひも付きます。

例:WindowsのOracle19cのリスナー

OracleOraDB19Home1TNSListener

 

SID

SID(システム識別子)は、インスタンスにアクセスする識別子です。

SIDを確認するSQL

select instance_name from v$instance;

結果例

instance_name
orcl


Windowsのサービスでは、OracleServiceの後のORCLがSIDです。
OracleService<SID>

 

表領域とデータファイル

概念図

表領域は、論理(概念)で、データファイルは物理(ディスク)です。

表領域 論理です。複数のテーブルを作成できます。
セグメント エクステントの塊です。テーブルやインデックスにあたります。
エクステント 連続したブロックです。
ブロック 最小単位です。2K、4K、8K(デフォルト)、16、32Kのどれかを指定します。
サイズが大きいと一度で多くのデータを読み込めますが逆に不要なデータまで読み込んでしまう可能性もあります。
データファイル 物理です。

 

ユーザとスキーマ

ユーザを作成すると同じ名前のスキーマが自動で作成されます。

スキーマとは、あるユーザが持つテーブル等のオブジェクトの集合です。

データベースに接続すると、ログインしたユーザと同じ名前のスキーマに接続され、そのスキーマのすべての権限を持ちます。

ユーザAがユーザBのスキーマにアクセスする場合はユーザBから権限を付与してもらい、かつsql文でもテーブル名の前にユーザBのスキーマ名を指定します。

select * from dbuser1.employee;

(dbuser1スキーマのemployeeテーブルにアクセスする)

ユーザーを削除するとスキーマも削除されます。

 

Oracleのバージョンを調べる

SELECT * FROM v$version;

上記sqlを実行すると以下のように表示されます。

BANNER BANNER_FULL BANNER_LEGACY CON_ID
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production 0

Oracle Database 18c Express Editionと表示されています。

 

データベースの用語

オプティマイザ SQLの実行計画を作成します
実行計画 SQLで処理する順番
テーブルのアクセス順序やインデックスの使用やテーブルの結合方法を決める
CBO コストベース・オプティマイザ
統計情報等を元にコストを計算して実行計画を作成する
RBO ルールベース・オプティマイザ
Oracle 10g以降はサポート対象外
ハッシュ結合 テーブル結合処理のひとつ。
1.テーブルAの列からハッシュテーブルを作成する。
2.テーブルBの列からハッシュ値を算出してハッシュテーブルと比較して結合する
利点:結合条件が「一致する」の場合は速い
ソート処理が不要
カーディナリティ データの一意性を指す
姓名・・・値はほぼ異なる→カーディナリティは高い
性別・・・値は男または女の2つである→カーディナリティは低い

関連の記事

Oracle SQL Plusを使用するサンプル

△上に戻る