2017-11-24 12 views
1

パラメータを使用してストアドプロシージャを呼び出すときに、変数を新しい値に再割り当てする必要があるのは疑いがあります。 プロシージャでは、2つの変数が必要です。プロシージャの内部で使用するために変数を再割当てする必要があります。私は信じてSQL Server PROCEDURE変数宣言

+0

コードを表示し、問題を説明してください[ask] – HoneyBadger

+0

[DBMS](https://en.wikipedia.org/wiki/DBMS)製品をお使いですか? Postgres?オラクル? "_SQL_"はクエリ言語であり、特定のデータベース製品の名前ではありません。 –

答えて

0

パラメータスニッフィング

https://blogs.msdn.microsoft.com/turgays/2013/09/10/parameter-sniffing-problem-and-possible-workarounds/

SQL Serverが使用してストアドプロシージャをコンパイルします(スニッフィング) パラメータは、プロシージャがコンパイルされた最初に送信し、に入れますプランキャッシュ。その後、プロシージャが再度実行されるたびに、SQL サーバはキャッシュから実行プランを取得し、使用します( には再コンパイルの理由がない限り)。最初にストアドプロシージャが実行されるときに潜在的な問題が発生する可能性があります。 パラメータは、そのパラメータセットに対して許容可能なプランを生成しますが、他のより一般的なパラメータセットに対しては非常に悪いです。

提供されたリンクの解決策の1つは、ローカル変数を使用することです。たとえば、あなたが何をしているのか

+0

更新ありがとう –

+0

@VenkateshKopulaSivakumar問題はありません、良い一日を。 – user2202098

0

これはあなたの質問に答える(または私はそれについて理解するもの):

Global variables in SQL