質問: 私はDapper.net&micro ORMを初めて使用しています。 彼らはしばしばストアドプロシージャで使用されるようです。 SQLインジェクション攻撃を防ぐために、ストアドプロシージャを使用する必要があります(SQLクエリをDALに直接書き込むのではなく)。 パフォーマンスもはるかに優れていますか? Dapperと他のマイクロORMを使用するベストプラクティスは - ストアドプロシージャに、ストアドプロシージャには何がありますか?
回答: いいえ、注射を防ぐためにストアドプロシージャは必要ありません。直接クエリでパラメータを適切に使用するだけで安全です。 SPのパフォーマンスは向上*する可能性*がありますが、私はしばしばそれらが悪化していることが分かりました。これは意味がありませんが、Googleの「パラメータスニッフィング」であり、クエリオプティマイザがSPで賢明すぎると痛いほど遅く実行されて終了する - これのための回避策がありますが、私は可能な限りストレートSQLを使用し、必要に応じてSPを補足する - 。