2017-09-18 10 views
0

私は私のユースケースの一つに、ユーザーが検索したデータを表示したり、データをダウンロードするオプションがあり、MS SQL Serverとの接続にADO.NETを使用してアプリケーションに取り組んでいます、ベースのどこに同じ検索条件に基づいて句、異なる選択クエリ

検索条件には約25-30個のオプションがあるため、where句が複雑になっています。ユーザーがデータを表示したい場合は7列を選択する必要がありますが、ユーザーがダウンロードしたい場合は150列程度のものがあります。オンライン検索から

私は句と唯一のオプションは、動的SQLここで同じと異なる選択クエリを持っていることは不可能であることを考え出しました。

私の質問は、パフォーマンスの観点から良くなる、のいずれかの動的SQLを使用し、7に選択した列の数を減らした場合にのみ表示するか、動的SQLを使用せずに、すべての場合で150列を選択するためにどのオプションです。

、ユーザーがデータを表示するために検索されるほとんどの時間、ダウンロードはあまり使用されています。事前

+1

これは実際には曖昧です。しかし、必要なときには常に150列を選択しないでください。パイプを介してすべてのデータをプッシュして放棄しています。 –

+0

.netアプリケーションでビルドされているのは、実際には動的SQLではありません。あなたの質問は、SQLがどのように構築され、実行されたかは言及していません。 –

答えて

0

ありがとうございます1は、7列を返すために、もう1つは150個の列を返すために、2つのストアドプロシージャを使用することができます。彼らはパラメータとして検索基準を受け入れることができ、コードはユーザの入力に基づいてどちらを使用するかを決定することができます。アプリケーションとして

0

は、サイズが大きくなるだけで7列を選択するよりもパフォーマンスが低い選択肢かもしれない(その種類や含有量に応じて)すべてのそれらの列を引っ張っ。

関連する問題