
Oracle SQLチューニング(第13回)「スカラーサブクエリの理解と効率的なSQLの作成」(3/5)
今回は、スカラーサブクエリでデータが抽出されないことについてです。
SQLチューニングのためには、そのSQLがどのように動いていて、データベースにどのように影響しているのか、を把握する必要があります。『MaxGauge』があれば簡単に状況が把握でき、適切なSQLチューニングができるようになります。
『MaxGauge』の資料はこちらから。
3.1.1.3 データが抽出されなくてもよい
スカラ副問い合わせはNULLデータを抽出してもSQLの実行に影響を与えない。もし、スカラ副問い合わせでNULLデータを任意の値に置換したい場合は、以下のSQLのようにNVL関数を使用すればよい。
これまで調べてみたサブクエリの特性を総合的にみれば、スカラーサブクエリは最大結果件数回反復実行して、抽出件数は常に1件以下であり、NULLデータを抽出する場合にも実行が可能だということが分かる。
「常に1件以下のデータの抽出」と「NULLデータの抽出が可能」という2つの特徴は、スカラーサブクエリは、SQLの抽出件数に影響を与えないことを意味する。そこで、この2つの特徴のために、スカラーサブクエリを結合に変更する場合、必ず結合接続カラムが重複した値を持たないようにしなければならず、結合はOuter Joinを行わなければならない。
今回はここまでです。次回は、スカラーサブクエリと結合についてです。ご期待ください。では、また。
See You ^^
SQLチューニングのためには、そのSQLがどのように動いていて、データベースにどのように影響しているのか? を把握する必要があります。『MaxGauge』があれば簡単に状況が把握でき、適切なSQLチューニングができるようになります。
『MaxGauge』の資料はこちらから。