
現在PL/SQL内にてSELECTを発行しています。
環境はoracle 11g、WinServer2008です。
SQLは下記になります。
SELECT
*
FROM
TABLE_VIEW TV1
WHERE
DAY_F <= kijun_dt AND
DAYT >= kijun_dt ;
kijun_dtは変数で渡しています。
質問は、kijun_dtを変数で渡すと処理が5秒くらいかかってしまうのですが
'2012/03/01'のように固定すると一瞬で返ってきます。
型は日付型できちんとわたっており、
他のテーブル(view)でも同じように変数で渡している箇所が
あるのですが、結果は一瞬え返ってきます。
統計情報の更新、マテリアライズド・ビューを作成し使用などしてみましたが
どうしても遅くなる原因が特定できません。
似たような現象になった、または何か情報をお持ちの方、
ご回答を宜しくお願い致します。
足りない情報等御座いましたら書ける範囲で出しますので
よろしくおねがいします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1さんに加えて。
統計情報があるため、固定値のリテラルではインデックスが効いて、バインド変数ではフルスキャンしている、などが考えられます。
(その日付項目のカーディナリティにより、逆の結果になる事もある)
また、件数の増減が激しいテーブルであれば、統計情報取得タイミングも考えないとダメでしょう。
リテラル版とバインド版で、それぞれトレースを取り、実行計画を比較してください。
施策の一つとしてはリテラル版に近い実行計画になるようなオプティマイザヒントを付与する事です。
トレースやオプティマイザヒントに関しては、OTNでパフォーマンスチューニング関係のマニュアルがダウンロードできるので、そちらを参考に。
実施環境が本番なのか、テスト環境なのか、も考慮する必要があります。
テスト環境で遅くても本番では速いかもしれないし、逆もまた然り。
No.1
- 回答日時:
とっさに思いつくのは
・テーブル側の型と変数の型が一致していない
・TABLE_VIEWの構造が複雑
・ここに書いていない条件がある
・テーブルのサイズ(列・行ともに)がおっきい
かな
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WHERE句の実行順序
-
TeXの索引作成に関して
-
問題解決のストーリーにて PDCA...
-
Oracleで検索すると、フリーズ...
-
キャッシュを使わずにSELECTを...
-
Accessのマクロでモジュールを...
-
日付型カラムへのデータINSERT
-
今日の日付が入った行のデータ...
-
Statement ignored というエラー
-
Access VBAで行ラベルが定義さ...
-
Excel VBAで「プログラム実行」...
-
ODBCリンクの際にACCESSでは読...
-
PL/SQLカーソルの2重FORループ...
-
ACCESS マクロをモジュールに変...
-
Accessでグローバル変数を宣言...
-
ストアド実行時のエラー「参照...
-
百の位での四捨五入について
-
PL/SQLでのSQL文法
-
SQL*Plusの終了はquit?exit?
-
SQL文のエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
likeとsubstrの使いわけについて
-
Like文の速度について教えてく...
-
ヒント句が無効になります
-
WHERE句はJOIN結合前結合後どち...
-
INDEX作成による更新系の影響範囲
-
実行計画HASH JOIN RIGHT OUTER
-
あいまい検索のパフォーマンス...
-
Oracleでデータ取得処理を高速...
-
アナライズでほとんどの処理が...
-
SQL ORDER BYにおける条件について
-
oracleのanalyzeと処理時間につ...
-
PDCAを回すって?
-
Oracleで検索すると、フリーズ...
-
800万件のテーブル読み込み...
-
処理速度の改善について
-
oracle(SQL)のHINT指定について
-
OEMで負荷の少ないSQLの実行計...
-
データ抽出の速度について
おすすめ情報