PDA

View Full Version : سوال: چند سوال راجع به DynamicSQL



SQLMAN
یک شنبه 26 آبان 1387, 10:09 صبح
سلام
چند تا سوال راجع به DynamicSQL داشتم که با شماره مشخص می کنم
دوستان اگر لطف کنند با مشخص کردن اون شماره راهنمایی کنند ممنون میشم
1-آیا SP که با چنین روشی نوشته می شه از نظر Performance ایرادی نداره؟از Plan قبلی بعد از اولین اجرا استفاده می شه؟
2- فرق exec (@sq)l ,exec sp_executesql @sql غیر از استفاده از پارامتر چیه؟
3-آیا روش دیگه (بهتری) هم وجود داره که از داخل برنامه متغیر نام فیلد یا شرط WHERE را
به SP پاس داد؟

AminSobati
دوشنبه 27 آبان 1387, 12:51 عصر
سلام دوست عزیزم،
1) وقتی EXEC میکنین، فقط در صورتی Plan قبلی Reuse میشه که عینا Query از نظر ساختار و پارامترها مثل قبلی باشه
2) لذا در sp_executesql خودمون Query رو Parameterize میکنیم تا اگر باز هم همون Query ولی با مقادیر جدید در جستجو Submit شد، از Plan قبلی استفاده بشه.
3) بهترین روش sp_executesql هست، چرا که خطر Injection هم نداره