2017-09-07 1 views
0

SQL#1:
SELECT SLIB_DIFF(COLA、COLB、 'MM/DD/YY')からT101 WHERE OBJ_ID =?準備されたSQLに引用符付きのテキストがある場合 - 文の再コンパイルが強制されますか?

SQL#2:
SELECT SLIB_DIFF(COLA、COLB ,?)FROM T101 WHERE OBJ_ID =?

カスタム関数SLIB_DIFFは、最後のパラメータを引用符で囲まれた日付形式にしており、変更されません。
このテキストをバインドされたパラメータにすることは意味がありますか?
クエリで変更されるのはOBJ_IDのみです。
データベースサーバは、(引用符で囲まれたテキストを参照するため)実行ごとにこれを再コンパイルしますか?

つまり、クエリ#2はクエリ#1よりも高速ですか?

答えて

0

クエリで文字列リテラルを使用すると、再コンパイルやパフォーマンスに何らかの影響があるのはなぜわかりません。

私がMS SQLを使用していると思うのであれば、それを数回実行した後にsys.dm_exec_query_statsexecution_countを照会することでこれを確認できます。他のDBMSにも同様の機能があります。

関連する問題