トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション
Oracleキーワードから学ぶ、逆引き! SQL Server入門
文=株式会社CSK 教育サービス事業部
第5回
アーキテクチャ編(3)
スペシャルキーワード:索引
このコーナーでは、毎回Oracleの重要なキーワードをピックアップして、それぞれに対応するSQL Serverの用語や機能を解説していきます。Oracleを基準とした逆引き形式なので、これまでにマスターしたOracleの知識を最大限に生かしながら、スムーズにSQL Serverを習得できます!
特に重要な“スペシャルキーワード”は、さらに詳しく別ページを設けて解説しています。
◎アーキテクチャ編(3)◎
今回も、Oracle Serverアーキテクチャに関連したキーワードを集めてみました。OracleでもSQL Serverでも、そのアーキテクチャからしっかりと理解しておくことが、結局はスキル習得の早道となります。

索引


Oracleでは「セグメント」単位にデータが管理されています。社員表などの「表」や「索引」といった単位はセグメントにあたります。セグメントは1つ以上の「エクステント」から構成され、セグメント単位にエクステントサイズを設定できます。エクステントはさらに細かい単位である「データブロック」から構成されます。
SQL Serverには、Oracleのセグメントに相当するような言葉はありません。
「テーブル(表)」や「インデックス(索引)」は、Oracleのデータブロックに相当する「ページ」で構成されます。ページはメモリとディスクの最低入出力単位で、サイズは8Kバイト固定です。ページが8つ連続した領域が「エクステント」で、64Kバイト固定です。テーブルを作成すると最初はページ単位で領域が確保されますが、テーブルサイズが大きくなるとエクステント単位で領域が取られます。

☆さらに詳細はこちら→


Oracle Net Services


クライアントからOracle Serverへの接続は、「Oracle Net Services」というネットワークコンポーネントによって行われます。Oracle Net Servicesは、クライアントからのさまざまなプロトコルを介した要求をOracle Serverに伝えることができます。
一方、SQL Serverのネットワークコンポーネントは、「Net-Library」を使用します。Net-Libraryは、Oracle Net Servicesとほぼ同等の機能を提供します。
なお、Oracle Net Servicesのセットアップでは、クライアント側にネットサービス名の設定が必要ですが、Net-Libraryでは特に設定はありません。

一時表


計算した結果を一時的に格納したい場合、「一時表」を使用します。Oracle Serverの一時表の作成方法は、CREATE GLOBAL TEMPORARY TABLE文で作成します。Oracle Serverの一時表は、複数ユーザで同時に一時表を使用できますが、データの共有はありません。データの存在している期間をトランザクション単位とセッション単位から選択します。一時表を明示的に削除しない限り、データベース上に存在しています。
SQL Serverの一時表は、SELECT * INTO #一時表名…で作成することができます。一時表名が「#一時表名」のときはローカルな一時表となり、作成したセッションでのみ使用可能となります。また、「##一時表名」のときはグローバルな一時表となり、一時表およびデータも共有可能になります。一時表はtempdbに作成されますが、セッションが切断されたときに削除されます。

ソート


Oracle Serverでのソート処理は、各サーバープロセスごとに用意されるメモリ領域PGAの中で行われます。ソートのために使用される領域は、SORT_AREA_SIZEパラメータにてサイズを調整することができます(Oracle9iからは、PGAを自動調節する機能が付加されました)。ソート対象のデータがPGAの領域だけで足りない場合は、一時表領域もソート処理で使用します。
一方、SQL Serverでのソート処理もOracleと同じようにSQL Serverのメモリ内のソート領域で行われます。メモリ内のソート領域のサイズは自動調節となっており、事前にパラメータで設定する必要はありません。また、ソート対象のデータが大量にある場合は、「tempdb」データベースを作業領域として使用します。

PCTFREE


I/Oの最小単位であるデータブロックの領域使用率パラメータとして、Oracle Serverには「PCTFREE」があります。PCTFREEはデータブロック内のUPDATE(索引ではUPDATEとINSERT)のための空き領域であり、領域を効率よく使用するためにはこのパラメータを最適に設定する必要があります。
SQL Serverでは、「インデックス」(1つめのキーワード「索引」参照)の作成時にのみ設定できる「FILLFACTOR」というオプションがあります。機能はOracle ServerのPCTFREEと同じですが、PCTFREEとは反対に充てん率(0〜100までの値)を指定します。デフォルトではFILLFACTORは0(ゼロ)ですが、これは「100%使用する」という意味になります。

管理者ユーザー


Oracle Serverを起動するときは、オペレーティングシステムまたはパスワードファイルで認証された「管理者」ユーザーで操作します(サービスによる自動起動でない場合)。
SQL Serverの起動はサービスの起動と完全に連動しており、サービスの起動権限はWindowsの管理者が所有しています。また、Oracle Serverでデータベース作成後に自動作成される「sys」、「system」に相当する管理者ユーザーは、SQL Serverではデータベースユーザーである「dbo」です。Oracle Serverではsysdba権限でログオンするとsysスキーマに対応付けられるように、SQL Serverではデータベースを作成すると、作成したユーザーがデータベース内でのすべての権限をもつdboとして自動的に登録されます。




・ 第1回 基本用語編:データベースオブジェクト
・ 第2回 ユーティリティ編:SQL*Plus
・ 第3回 アーキテクチャ編(1):インスタンスとデータベース
・ 第4回 アーキテクチャ編(2):セグメント/エクステント/データブロック
・ 第5回 アーキテクチャ編(3):索引
・ 第6回 プログラミング編:カーソル
・ 第7回 トランザクション/ロック編:読み取り一貫性
・ 第8回 バックアップとリカバリ編:スタンバイ・データベース
・ 第9回 ユーザー管理編:ロール
・ 第10回 パフォーマンスチューニング編:EXPLAIN PLAN(実行プランの表示)



← 特集!DBバイリンガル 目次

PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.