SQL Engine Reference (v11)

用語

ここでは、この章の複雑で技術的な題材についての理解を助けるための定義や例を示します。

インデックス

インデックスは、テーブル内の 1 つ以上の列に関連付けられた構造で、データベース エンジンが効率的に検索と並べ替えを実行できるようにするものです。インデックスを利用すると、データベース エンジンはテーブル内のすべての行を調べる代わりに検索条件を満たす特定の行のみを読み取ることができ、検索パフォーマンスを向上させることができます。また、インデックスを利用すれば、行を取得した後で効率の悪い技術を使って並べ替えしなくても、SQL クエリで指定した順序で行を取得できます。

結合条件

結合条件は、<、<=、=、>=、> の比較演算子を使用して、あるテーブルの列を別のテーブルの列と比較する述部です。

たとえば、次の述部は結合条件です。

t1.c1 = t2.c1 
t1.c1 > t2.c2 

式は、制限で使用できるブール代数で構成されます。少なくとも 1 つ以上の完全な述部を含む制限全体または制限の一部が式です。

集計関数

集計関数は、クエリの SELECT または HAVING 句の値のグループを使用して単一の値を生成します。集計関数には、COUNT、AVG、SUM、STDEV、MAX、MIN、および DISTINCT があります。

述部

述部は、AND または OR の論理演算子を含まない論理式です(BETWEEN は除く)。

たとえば、次の式は述部です。

(c1 = 1) 
(c1 LIKE "abc") 
(c1 BETWEEN 1 AND 2) 

次の例は述部ではありません。

(c1 > 1 AND c1 < 5)  
(c1 = 1 OR c1 = 2) 

制限

制限は SQL クエリの WHERE 句全体です。

先頭セグメント

インデックス セグメントのグループが、インデックスの最初の n 列(n はインデックスの総セグメント数以下の任意の数値)で構成されている場合、このグループは先頭セグメントです。たとえば、インデックスが列 c1、c2、c4 をセグメントとして定義されている場合、c1 は先頭セグメントと呼ばれます。また、c1 と c2 を合わせても先頭セグメント、3 つすべて合わせても先頭セグメントと言いますが、c2 単独では先頭セグメントと言いません。これは、c2 の前にあるセグメント c1 が除外されているためです。列 c1 と c4 を合わせても先頭セグメントとは言いません。c4 の前にある c2 が除外されているためです。

閉じた範囲

閉じた範囲とは、AND 演算子で結合された 1 組の開いた範囲です。開いた範囲は両方とも同じ列を参照し、一方は < または <= 比較演算子を含み、もう一方は >= または > 演算子を含む必要があります。BETWEEN 句も閉じた範囲を定義します。

たとえば、次の式は閉じた範囲です。

c1 > 1 AND c1 <= 10 
c1 BETWEEN 1 AND 10 

開いた範囲

開いた範囲は、<、<=、>= または > のいずれかの比較演算子を持つ述部です。さらに、述部のオペランドの 1 つは単一の列で構成され、もう一方のオペランドはほかのテーブルの単一の列またはリテラルで構成されている必要があります。

たとえば、次の式は開いた範囲です。

c1 > 1 
c1 <= 10 
t1.c1 > t2.c1 

変形論理積標準形(変形 CNF)

変形論理積標準形内の論理積標準形(CNF)内の式と似ていますが、各論理和閉じた範囲に加えて述部を含む点が異なります。

たとえば、次の式は変形 CNF です。

c1 = 2 AND c2 < 5  
(c1 = 2 OR (c1 > 4 AND c1 < 6) OR c1 = 10) AND (c2 = 1 OR c3 = "efg") 

変形論理和

変形論理和は論理和と似ていますが、閉じた範囲に加えて述部を含む点が異なります。

たとえば、次の式は変形論理和です。

c1 = 2 OR (c1 > 4 AND c1 < 5) 
(c1 = 2 OR (c1 > 4 AND c1 < 5)) OR c2 = "abc" 

論理積

論理積は、2 つ以上の述部が AND 演算子で結合された式です。たとえば、次の制限は論理積です。

c1 = 2 AND c2 < 5 
c1 > 2 AND c1 < 5 AND c2 = "abc" 

論理積標準形(CNF)

あるが AND 演算子で結合された 2 つ以上の論理和を含む場合、それは論理積標準形です。たとえば、次の式は CNF です。

c1 = 2 AND c2 < 5 
(c1 = 2 OR c1 = 5) AND (c2 < 5 OR c2 > 20) AND (c3 = "abc" OR c3 = "efg") 

論理和

論理和は、2 つ以上の述部が OR 演算子で結合されたです。たとえば、次の式は論理和です。

c1 = 2 OR c2 = 5 
c1 = 2 OR c1 > 5 OR c2 = "abc" 

論理和標準形(DNF)

あるが OR 演算子で結合された 2 つ以上の論理積を含む場合、それは論理和標準形です。たとえば、次の式は DNF です。

c1 = 2 OR c2 < 5 
(c1 = 2 AND c2 = 5) OR (c2 > 5 AND c2 < 10) OR c3 = "abc" 


行の事前取得

DSN と ODBC アドミニストレーター