سبد خرید 0

وبلاگ

تفاوت Stored Procedure و Function در SQL Server

Stored Procedure های اشیایی هستند که در اولین بار کامپایل شده و  فرمت آن ذخیره می شود (کد کامپایل شده) و در دفعات بعدی میتوان آن را فراخوانی کرد و این مورد خود باعث افزایش سرعت اجرای آن می شود . اما Function  ها  در هر بار فراخوانی آنها ، ابتدا می بایست کامپایل شوند  و سپس اجرا میشوند .

تفاوت های پایه:

  1. Function ها حتما باید مقداری را به عنوان خروجی برگردانند در صورتی که در Stored Procedure ها اختیاری می باشد (Procedure می تواند صفر یا n مقدار برگرداند).
  2. Function های فقط می توانند پارامترهای ورودی داشته باشند در صورتی که Stored Procedure ها می توانند پارامتر های Input و Output داشته باشند .
  3. Function ها میتوانند از داخل یک Stored Procedure فراخوانی شوند در حالی که نمیتوان در داخل یک Function اقدام به فراخوانی یک Procedure کرد .

 

تفاوت های پیشرفته :

  1. Stored Procedure ها اجازه استفاده از دستور SELECT را به خوبی می دهند و همچنین دستورات (DML(insert,update,delete در حالیکه Function ها فقط اجازه استفاده از دستور SELECT را دارند .
  2. Stored Procedure ها نمی توانند در داخل دستورات SELECT استفاده شوند درحالیکه Function می تواند در داخل دستورات SELECT جاسازی شود .
  3. Stored Procedure ها نمی توانند در هر جای دستورات SQL استفاده شوند ، برای نمونه نمی توانند در قسمت های WHERE/HAVING,SELECT استفاده شوند در حالیکه این محدودیت برای Function وجود ندارد .
  4. می توان در داخل Stored Procedure ها استثنا ها را با استفاده از بلوک های try-catch مدیریت کرد در حالیکه در داخل Function نمی توان بلوک های try-catch را مورد استفاده قرار داد .
  5. Function ها می توانند یک Table را در خروجی برگردانند که این Table میتواند در داخل دستورات Join با جداول دیگر مورد استفاده قرار گیرد .
  6. مهمترین ویژگی Stored Procedure ها نسبت به Function ها نگهداری و قابلیت استفاده مجدد execution plan می باشد درحالیکه برای Function ها هربار کامپایل می شود .
اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

دیدگاهتان را بنویسید

keyboard_arrow_up