서브쿼리 & 세미 조인(SEMI -JOIN)
サブクエリ – 定義:1つのSQL文内で括弧付きの別途のクエリブロック(Query Block) – 分類:1. インラインビュー: from 節に現れるサブクエリ2. 重複したサブクエリ(Nested subquery):結果のセットを限定するためにWhere節に使用されたサブクエリ3. スカラーサブクエリ:1レコードあたり正確に1つのカラム値のみをリターンするのが特徴で、主にselect – リストで使用されますが、いくつかの例外がある場合はカラムがある場合があるほとんどの場所で使用可能なサブクエリを解く2つか。 クエリ変換 1.サブクエリ Unnesing : 重畳されたサブクエリと関連 2. ビューマージング(View Merging) : インラインビューと関連サブクエリ Unessingの意味 nest : ボックスなどをきちんと重ねる (重畳)unnest : 重畳された状態を解く サブクエリ Unnesting : 重畳されたサブクエリを解くこと empawhereexists(1/*+rule*/fromdeptcwherec.deptno=a.deptno)とsal>(empbwhereexists(sal)から/*+rule*/avg(sal)を選択)から1を選択します(sから1を選択します)d.losalとd.hisalの間のb.salとd.grade=4())行のソース操作———————————————————————————————0ステートメント4フィルタ(cr=52pr=0pw=0time=0us)14TABLEACCEFULLEMP(cr=4pr=0pw=0time=13us)3TABLEACCESSFULLDEPT(cr=9pr=0pw=0time=0us)1SORTAggregate(cr=39pr=0pw=0time=0timeus)5FILTER(cr=39pr=0pw=0time=16us)14TABLEACCEFUSSFULLSALGRADE(cr 重複したサブクエリメインクエリ、子という従属的で階層的な関係が存在するため、IN、EXITSTSを問わずフィルター方式、すなわちメインクエリで読まれるレコードごとにサブクエリを繰り返し遂行しながら条件に合わないデートを選び出すが、サブクエリを処理するにあたってフィルター方式が常に最適な遂行速度を保障するわけではないため、オプティマイザーは以下のいずれかを選択1。 同じ結果を保障する調印文に変換してから最適化 – サブクエリUnnestingせずに元通りに置いた状態で最適化されたサブクエリUnnestingする。 Another subqueries, generating optimization technique used in the wheel condition sub queries is not […]
서브쿼리 & 세미 조인(SEMI -JOIN) Read More »