目次
サンプル | インスタンスとデータベース |
表領域とデータファイル | |
ユーザとスキーマ | |
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つである→カーディナリティは低い |
関連の記事