忍者ブログ

OracleDBAの技術メモ

最近物覚えが悪くなったので 仕事中に調べた後々役立つ情報をメモしております。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

インデックスが使用されないケース

No. ケース SQLの例 対処方法
1 NULL値の検索 列名 IS NULL ・NULL値を別のデータに置き換える
・ビットマップ・インデックスを使用する
2 暗黙の型変換 VARCHAR2列 = 1 ・比較するデータ型を列のデータ型に合わせる
    VARCHAR2列 = TO_CHAR(1)
・INDEXヒントを使用する
 (インデックス列にNOT NULL制約が必要)
3 インデックス列に対して関数や算術を実施 VARCHAR2列 || '様' = '○○様'
NUMBER列 * 20 = 10000
substr(VARCHAR2列,1,2) = 'AB'
・関数、演算を右辺(インデックス列でない方)に移動する
    VARCHAR2列 = '○○'
    NUMBER列 = 10000/20
    VARCHAR2列 LIKE 'AB%'
・関数インデックスを使用する
・INDEXヒントを使用する
 (インデックス列にNOT NULL制約が必要)
4 LIKEの中間一致、後方一致 列名 LIKE '%TEST%'
列名 LIKE '%TEST'
・INDEXヒントを使用する
 (インデックス列にNOT NULL制約が必要)
5 !=、<>の使用
(Not Equals)
列名 != 'A'
列名 <> 'A'
・IN で置き換える(可能な場合)
    列名 IN ('B', 'C')
・INDEXヒントを使用する
 (インデックス列にNOT NULL制約が必要)
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

ブログ内検索

プロフィール

HN:
宇佐 義男
性別:
男性
自己紹介:
都内で活動中のフリーエンジニア
最近はOracle DBに関する作業が主です。

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

最新CM

[08/06 Apagajid]
[06/23 Ajimehof]
[05/28 ovkftcz]
[05/20 Adeepen]
[05/13 Ajirubuy]

バーコード

P R

忍者アナライズ

免責事項

当ブログは日本オラクル株式会社 及びその子会社、関連会社とは一切関係ありません。 当ブログに記述の内容については、実際とは異なる場合があります。 記載しているコマンド、スクリプトを利用したことによって発生した問題、障害等については一切責任を負いません。 利用は自己責任にてお願い致します。