私は自分のDelphi 2006のアプリケーションは、(実際に、それは当然のことながら、より複雑である)このようなSQL文を使用してTSimpleDataSet
にデータを読み込み、そこからのOracle 9データベースがあります。DelphiのSimpleDataSetでOracleバインド変数を使用するにはどうすればよいですか?
select * from myschema.mytable where ID in (1, 2, 4)
私のアプリケーションが起動し、このクエリーは、毎回、多くの場合、in
節に異なる値で実行されます。
私のDBAは、毎回実行するたびにクエリが再解析されるため、これがデータベースサーバーに強制的に負荷をかけていることを通知しました。彼らは、クライアントでSQLステートメントを作成するのではなく、bind variablesを使用するように提案しました。
私はDelphiでパラメータ化されたクエリを使用することに慣れていますが、上記にリンクされた記事から、バインド変数が正確ではないという感覚が得られます。また、私は、これらの準備済みのステートメントがアプリケーションの異なる実行間で動作する必要があります。
in
句を含む文をデータベースで一度作成し、TSimpleDataSet
から渡された異なるパラメータで実行させる方法はありますか?そのため、アプリケーションを実行するたびに再解析する必要はありませんか?
TSimpleDataSetまたはdbExpressを本当に使用する必要がありますか?パフォーマンスが重要な場合は、ネイティブのOracle専用DBコンポーネントに切り替える必要があり、dbExpressとTSimpleDataSetを削除する必要がありますか? –
@WarrenP可能であれば、私はdbExpressにとどまりたいので、他のコンポーネントがたくさん集まっています。しかし、好奇心の念から、Oracle固有のネイティブなDBコンポーネントは何でしたか? – PersonalNexus
商業的かつ非常に高い性能:http://www.devart.com/odac/ –