امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
بحثی بر سر کاربرد sp -ایا sp یک مزیت است؟
نویسنده پیام
saed2006 آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 3
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 2
( 0 تشکر در 0 ارسال )
ارسال: #1
بحثی بر سر کاربرد sp -ایا sp یک مزیت است؟
با سلام
در مورد کاربرد store perocdure ها بحث های زیادی مطرح شده اینکه سرعت را بالا میبرد امنیت را و ....
ایا برای هر دستور ساده sp نوشتن توصیه شده است؟
عده ای بر این باور هستند که sp را باید برای کارهای محاسباتی در دیتا بیس نوشت و بس و عدهای دیگر معتقدند sp در هر حال یک مزیت هست برای هر عملی روی دیتا بیس sp مفید است
به هر حال بحث فنی روی این موضوع جالب به نظر میرسد
با تشکر
(آخرین ویرایش در این ارسال: ۰۶-اردیبهشت-۱۳۸۸, ۱۹:۲۳:۰۲، توسط saed2006.)
۰۶-اردیبهشت-۱۳۸۸, ۱۸:۵۰:۱۴
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: بحثی بر سر کاربرد sp -ایا sp یک مزیت است؟
(۰۶-اردیبهشت-۱۳۸۸, ۱۸:۵۰:۱۴)saed2006 نوشته است: با سلام
در مورد کاربرد store perocdure ها بحث های زیادی مطرح شده اینکه سرعت را بالا میبرد امنیت را و ....
امنیتی که میگن به خاطر این هست که اطلاعات به صورت پارامتر بهش ارسال میشه اگه مون پارامتر رو هم چک نکنین میشه یه کارهایی کرد
لزوما استفاده از sp دلیل بر بالا بدن سرعت نیست مثلا
در داخل يك SP بهتر است به جاي اينكه داخل آن از دو دستور Select استفاده كرد، هركدام را در داخل يك SP قرار داده و آنرا به هنگام نياز اجرا كنيم دليل استفاده از كد زير چيست و نسبت به كد بالا چه مزيتي دارد؟در داخل هر sp فقط يك Query ميتواند در داخل cache SQL قرار ميگيرد . و چون در داخل SP اول دو query هستند هر دفعه كه اين SP اجرا شود مجدد SP كامپايل خواهد شد و همين سرعت آنرا خواهد گرفت
نقل قول: ایا برای هر دستور ساده sp نوشتن توصیه شده است؟
خیر
نقل قول: عده ای بر این باور هستند که sp را باید برای کارهای محاسباتی در دیتا بیس نوشت و بس و عدهای دیگر معتقدند sp در هر حال یک مزیت هست برای هر عملی روی دیتا بیس sp مفید است
sp بشتر برای کارهایی که رکوردی رو برمیگردونه مناسبه مثل select ها و معولا برای یه insert توصیه نمیشه چون نیازی به ایجاد یک record set نیست
۰۷-اردیبهشت-۱۳۸۸, ۰۰:۱۶:۰۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : far_222000
saed2006 آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 3
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 2
( 0 تشکر در 0 ارسال )
ارسال: #3
RE: بحثی بر سر کاربرد sp -ایا sp یک مزیت است؟
نقل قول: sp بشتر برای کارهایی که رکوردی رو برمیگردونه مناسبه مثل select ها و معولا برای یه insert توصیه نمیشه چون نیازی به ایجاد یک record set نیست
اولا ما راجع به یک زبان خاص مثل vb یا هر چیز دیگر صحبت نمیکنیم بحث روی استفاده از یک روش روی هر زبانی هست دوما نمیتوان گفت sp نوشتن برای insert کار درستی نیست به جهت انکه به هر حال یک روش بهینه هست ولو در Insert
بنابر این شما معایب استفاده از sp برای عمل insert رو باید بر شمارید تا موضع روشن شود
با تشکر
(آخرین ویرایش در این ارسال: ۰۷-اردیبهشت-۱۳۸۸, ۱۱:۰۰:۰۵، توسط saed2006.)
۰۷-اردیبهشت-۱۳۸۸, ۱۰:۴۷:۱۹
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #4
RE: بحثی بر سر کاربرد sp -ایا sp یک مزیت است؟
(۰۷-اردیبهشت-۱۳۸۸, ۱۰:۴۷:۱۹)saed2006 نوشته است: اولا ما راجع به یک زبان خاص مثل vb یا هر چیز دیگر صحبت نمیکنیم
منم حرفی از زبان خاص نزدم
نقل قول: بحث روی استفاده از یک روش روی هر زبانی هست دوما نمیتوان گفت sp نوشتن برای insert کار درستی نیست به جهت انکه به هر حال یک روش بهینه هست ولو در Insert
شما چطور میگین یه sp بهینه تره؟
این بهینه سازی رو شمای کد نویس انجام میدین
در ضمن پست من رو خوب بخونین تا متوجه بشین که sp به خودی خود بهینه نیست بلکه طراحش اونو بهینه میکنه
(همون استفاده از sp تو در تو به جای یک sp طولانی)
در حالت شبکه استفاده از sp به خاطر اینکه فقط پارامترها به سرور ارسال میشن سرعت بالاتری دارن
(آخرین ویرایش در این ارسال: ۰۷-اردیبهشت-۱۳۸۸, ۱۵:۲۳:۵۷، توسط lord_viper.)
۰۷-اردیبهشت-۱۳۸۸, ۱۵:۰۳:۳۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : far_222000
esmaeily-hosein آفلاین
كاربر دو ستاره
**

ارسال‌ها: 232
موضوع‌ها: 12
تاریخ عضویت: دى ۱۳۸۴

تشکرها : 6
( 91 تشکر در 46 ارسال )
ارسال: #5
RE: بحثی بر سر کاربرد sp -ایا sp یک مزیت است؟
نقل قول: هینه سازی رو شمای کد نویس انجام میدین
در ضمن پست من رو خوب بخونین تا متوجه بشین که sp به خودی خود بهینه نیست بلکه طراحش اونو بهینه میکنه
به این دلیل میگن sp بهینه است که برای بار اول که اجرا میشه خود sql اونو compile میکنه در صورتی که در dynamic query اینگونه نیست .
sql پارامتر های مختلف در sp رو cache میکنه و متناظر با اون جواب هاب مرتبط پاس میده در sql 2005 با استفاده از sp_executesql این عمل انجام داد .
با استفاده از sp میتوان کنترل شبکه را کنترل کرد .
در sp چیزی به اسم sql injection نداریم و نخواهیم داشت (دلیل امنیتی).

هر بار microsft بخواد جایی از sql بهینه کنه اولین جا شک نکنید sp هاشه چون بیشترین مورد استفاده رو داره .
در هر صورت استفاده از Sp مزیت میباشد و به برنامه نویس هم هیچ ربطی نداره البته نوع نوشتن هم مهمه .

فقط به نطر من در مورد کارهای محاسباتی سنگین باید مراقب بود یادمه در پروژه لیزینگ کارآفرین به قدری محاسبات پیچیده داست یک report که sp اون یه چیزی در حد 500 خط شده بود و از تمام table ها مقادیر باید میاورد و یه سری محاسبات سود و زیانی میکرد .
و اگر 10 کاربر همزمان این گزارش فراخونی میکردن server میخوابید برای حل این مشکل مجبور شدم محاسبات به سمت client ها آوردم تا مشکل حل شه همون کاری که بانک مرکزی مجبور شد برای دستگاه های ATM بکنه . در کل sp همیشه مزیته .

هر چی روش خوبه توش خوب نیست!
۲۴-اردیبهشت-۱۳۸۸, ۱۱:۲۹:۵۰
ارسال‌ها
پاسخ
تشکر شده توسط : amirjan


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  نحوه ی کاربرد فیلد(مجازی) در اس کیو ال فاطمه وطن دوست 3 5,675 ۰۳-آبان-۱۳۸۸, ۰۰:۰۸:۲۳
آخرین ارسال: فاطمه وطن دوست

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS