PDA

View Full Version : تفاوت بین procedure و view



javad_r_85
جمعه 05 شهریور 1389, 21:19 عصر
شاید این سوال من تکراری باشه ولی گشتم و به جوابم نرسیدم توی قسمت sql هم پرسیدم ولی ماشالله اینقدر فعالن که هیچکی جواب نداد.
من میخوام بدونم تفاوت بین
procedure و view ها در چیست البته خودم یه چیزای میدونم ولی دوست دارم از نظر تخصصی بفرمایین که کجا من باید از پروسیجر ها و کجا از ویو ها استفاده کنم و سرعت کدومشان بیشتر است .مثلا من می خوام با دستور select داده ها را از جدول بخونم به نظر شما از ویو استفاده کنم یا پروسیجرها.

sinashahab
جمعه 05 شهریور 1389, 21:42 عصر
دوست عزیز اینو بخون شاید به دردت بخوره

http://www.how2learnASP.NET/article.aspx?code=26b376f2-9a53-4bd6-b79e-4dc2366e3f4eبعدش من داشتم می خوندم به چند مطلب رسیدم که اینو می رسوندن :

SP سرعتش در حد 0.001 ثانیه (یه چیز تو همین مایه ها:لبخند:) بیشتر هست .
استفاده ی بهینه از CPU و RAM می کنه .
اطلاعات رو توی رم نگه می داره و سرعتش تا حدودی بیشتر هست .
-----------------------------
programming.ramiz.ir
خبر آمد سایتی در راه هست !!

javad_r_85
جمعه 05 شهریور 1389, 23:35 عصر
با سلام .

بعد یک ساعت بحث با یکی از مدیران سایت sajjadlove) ) در مورد روالهای ذخیره شده SP و دیدها View به نتایج جالبی رسیدم که برای شما مینویسم امیدوارم مفید واقع شود در ابتدا یه تو ضیحی در مورد روالهای ذخیره شده میدم.

یه روال مانند تابع در زبان برنامه نویسی است که یه بار می نویسیم و چند بار اجرا میکنیم برای این روالها میتوانیم پارامتر تعریف کنیم و یا سطح دسترسی را مشخص کنیم که هر کاربری قارد به مشاهده و اجرای آن نباشد روالهای ذخیره شده هم توسط دستورات TSQL و هم توسط CLR میتواند ایجاد شود در زیر چند روال مهم اس کیو ال را نام میبرم

Exec db_rename’table’ تغییر نام پایگاه داده

Exec sp_helpdb ‘database’ اطلاعاتی در باره بانک

Exec sp_dbremove 'table’ حذف پایگاه

exec sp_help ‘table’ اطلاعاتی در باره جدول

برای ایجاد روال از دستور زیر استفاده میکنی


create procedure show


as


select id,tel from costomers

برای فراخوانی آن هم به صورت زیر

Exec show

در صورتی که در روال از پارامتر ورودی استفاده کنیم علاوه بر اینکه کار را ساده تر میکند از حملات sql injection نیز جلوگیری میکند که البته ماشالله هیچ کدوم از سورسای که من دانلود کردم از سایت این مورد را رعایت نکرده بودند یعنی خیلی راحت با این کد تونستم بدون داشتن یوزر پس وارد برنامه شوم

User:fjdasfdsafj

Pas:fjadkfd’ or ‘1’=’1

این یه نمونه حمله sql injection می باشد.

روالها چون کامپایل میشن دارای سرعت با لاترو امنیت بیشتر نیز می باشند.



و اما دیدها view : یک دیدگاه در واقع یک کوئری ذخیره شده می باشد که می تواند داده ها را از یک یا چند جدول بگیرد و آنها را در یک جدول نشان دهد و کاربر نیز قارد خواهد بود تا به آن دسترسی داشته باشد select * from viewname

یا داده را در ان وارد یا حذف نمایید البته از این کار هم می شه جلو گیری کرد بسته به کاری که شما می خواهید انجام دهید.

دیدگاه کار برنامه نویس را خیلی راحت میکند در واقع موقعی که شما چندین جدول دارید که بایکدیگر رابطه دارند را می تونید در یک دیدگاه به هم join کرده و نمایش دهید و حتی داده را وارد کنید به جای اینکه در تک تک جداول اینکار را انجام دهید که کار سختی می باشد و یا اینکه یک دیدگاه ایجاد کرده بسته به نیاز داده ها را نشان دهید مثلا:select name from view

Select Name,Family from view

و... که این کار رابرای برنامه نویس خیلی راحت تر می کند حتی شما میتونید روالهای ایجاد کنید که این کار را در دیدگاه انجام دهدوامنیت برنامه خودتون رابالا ببرید و اسمی از جداول اصلی برده نشود و تنها با دیدگاه ها کار کنید.

دوستان برای کسب اطلاعات بیشترمیتونن سرچ کنن ،به نکات جالبی دست پیدا خواهید کرد.

در آخر هم دوباره از دوست عزیزم sajjadlove تشکر میکنم که وقت گذاشتند وبا صبروحوصله مرا راهنمایی کردند.

vandermond
شنبه 06 شهریور 1389, 03:07 صبح
ممنون دوست عزيز
ميخاي من بقيه آموزش هك رو بدم به دوستان...:متفکر::لبخند:

mmd2009
شنبه 06 شهریور 1389, 03:53 صبح
با سلام.

شما میتونید در این لینک ها هم یه سری چیز جالب بخونید.

http://barnamenevis.org/forum/showthread.php?t=106494

http://www.barnamenevis.org/forum/showpost.php?p=63517&postcount=4

اگر تکراری بود ببخشید