こんにちは、私は、テーブルの主キーにTO_NUMBER()を使用して他のテーブルを結合するビューを含むOracleシステムへのクエリを持っています。JDBCでJavaでのクエリが遅いが、他のシステムでは実行されない(TOAD)
TOADを使用してクエリを実行すると、クエリは非常に高速です(800回のregに対して1秒)。私は、JDBCの文字列リテラル(パラメータ化されていないクエリ)でjavaプログラムで同じクエリを行う場合、時間も良いです。
しかし、私がPreparedStatementによってパラメトリッククエリを使用する場合、クエリは同じレジスタをフェッチするのに1分かかります。私は定数値を使用すると、パラメータを使用するよりも別の実行計画が生成されることを知っています...しかし、私はビューの結合でTO_NUMBER関数を削除すると、パラメトリッククエリも高速です。
- パラメータ/ TO_NUMBER()共用体は、結合テーブルのPKインデックスを使用できませんか?
- これを解決するための回避策があります(クエリとTO_NUMBER関数のパラメータが必要です)。
P.D.私の悪い英語のために泣いてしまいました
は分割されたテーブルですか? – skaffman