、私は非常に高価なSQLビューを呼び出しているクローズドソースのASP.NETシステムを持っているとの見解を置き換える:SQL Serverがストアドプロシージャ
SELECT TOP 100 PERCENT *
FROM [v]
WHERE [u] = 9999
ORDER BY [ID]
私はデータベースへのアクセス権を持っているので、私はビューを変更することができます - ビューをより速くする簡単な方法はありません。
どのIISサーバーが要求を実行しているかに基づいて、プログラムのビューの動作を変更したいと考えています。
これは可能ですか?
など。ビューから呼び出されるストアドプロシージャを作成したいと思います。このストアドプロシージャは現在のビューを模倣したテーブルを返しますが、特定のIISサーバーから呼び出された場合は別のものが返されます。
asp.netコードを変更する必要がないようにストアドプロシージャを呼び出すようにビューを変更することはできますか?
他のスタックオーバーフローの記事からビューからストアドプロシージャを呼び出す方法はありますが、ストアドプロシージャ内のwhere句にはどのようにアクセスできますか?
「ビューからストアドプロシージャを呼び出す」とはどういう意味ですか?それはまったく意味がありません。ビューの代わりにストアドプロシージャを使用すると、これを魔法のように速くすることはありません。適切なインデックス作成を追加する可能性が最も高くなります。テーブルとインデックスの定義を投稿してください。 –
「トップ100パーセントを選ぶ」?これはまずは愚かです。内側のビューからprocsを呼び出すことができます(したがって、前のコメント)。ストアドプロシージャを作成してサーバー名を渡し、そのパラメータに基づいて異なる選択を実行することができます。ビューの代わりにプロシージャを呼び出すには、.NETコードを変更する必要があります。短い答え、あなたがしようとしていることは私の知るところでは実現できません。 –
ビューは、SQLがクエリのロジックをカプセル化するという点で、テーブルに似た処理(多くの例外)を行う構造化クエリです。ビューの構造を変更するprocを呼び出すことはできませんが(それはビューではありません)、procを使って必要なように動作するクエリを返すことができます。私はあなたが永続的なクエリが必要なのかという疑問を思いますか?必要なレポート作成ツールがありますか?また、次回はDDLに関してMSDNに相談してください。この[クエリ対ビュー](http://stackoverflow.com/questions/324177/query-vs-view)は良いですが –