SQLのパフォーマンスチューニングを行うには実行計画と統計情報を確認するという作業が必須になってきます。 INDEXを使ってSQLが実行されているかを実行計画で確認できます。また、SQLのコストが高い、低いも実行計画で確 […]
2018年4月
NOT EXISTSとLEFT JOINの処理速度検証
前回の記事でNOT EXISTSはLEFT JOINで実現できると紹介しましたが、どちらの方が速いのか、検証してみました。
NOT EXISTSを使わない
OracleのSQLではNOT EXISTSという便利な命令が使用できます。NOT EXISTS句の副問合せ条件に一致しなければ結果を返却してくれます。 また、NOT EXISTS句を使わなくてもLEFT JOINで代用 […]
MINUSの注意点
MINUS(マイナス)は落とし穴があるので気を付けて下さい。 MINUSは最初のSELECT文が母数になるようです。そのため、MINUSを使ってデータの差分を抽出したい場合、データ件数が多い方のテーブルを最初にSELEC […]
MINUSを使って差分を出力する
MINUS(マイナス)の使い方になります。 2つのSELECTの出力結果を比較して、差分があるレコードを抽出してくれます。 データ移行やデータパッチ作業で作業結果を確認するために重宝します。 基本的な使い方のサンプルです […]
ALL_TAB_COLUMNS
システムの保守をしていると、テーブルのカラムサイズを拡張したいという要件が発生することが多々あります。 そういった場合、既存システムの影響機能を調査することになりますが、設計書やプログラムを地道に調査するのは手間がかかり […]
UPDATE文で複数レコードを更新・3回目
ワークテーブルを利用して複数レコードを更新する方法。 WK_PATCH_DATAテーブルに格納しているキー情報を基にTB_CUSTOMERテーブルの各レコードを更新しています。 EXISTSを使ってUPDATEしていると […]
UPDATE文で複数レコードを更新・2回目
ワークテーブルを利用して複数レコードを更新する方法。 UPDATE文に副問合せを利用しているところがポイントです。 WK_PATCH_DATAテーブルに格納しているキー情報を基にTB_CUSTOMERテーブルの各レコード […]
UPDATE文で複数レコードを更新・1回目
UPDATE文で複数レコードを更新する方法を紹介していきます。 今回は基本中の基本、ノーマルな複数レコードのUPDATEです。 基本構文 UPDATE テーブル名 SET カラム名1 = ‘<値1>’ ,カラ […]
最近のコメント