دستور SET NOCOUNT ON در SQL Server

دستور SET NOCOUNT ON در SQL Server

توسط admin | گروه SQL Server | 1399/02/31

نظرات 0

 بررسی اجمالی SET NOCOUNT ON

ترفندهای زیادی وجود دارد که می توانید هنگام نوشتن کد T-SQL برای کاهش بار دیتای ارسالی و دریافتی بر روی Server پایگاه داده از آنها استفاده کنید. یکی از این موارد کاهش داده های شبکه برای هر جمله T-SQL  یا همان کوئری در حال اجرا است که بصوت Storedprocedure ذخیره شده است. هر بار که یک دستور SQL اجرا می شود ، تعداد ردیف هایی را که تحت تأثیر قرار گرفتند  به صورت یه پیام متنی برمی گرداند.

با استفاده از تنظیم SET NOCOUNT ON در پروسیجر خود می توانید نمایش این پیام ها را غیر فعال کرده و بخشی از ترافیک Server را کاهش دهید. البته نمایش این پیامها نیز گاهی باعث دردسر برای کاربران نهایی نرم افزارهایی که به SQL Server متصل هستند نیز می شود. به این صورت که ممکن است با پیغامهای خطای عدم اجرای دستوارت SQL مواجه شویم.

توضیح
همانطور که در بالا ذکر شد ، هیچ لزومی برای بازگشت پیام در مورد آنچه در SQL Server اتفاق می افتد هنگام اجرای یک Stored procedure وجود ندارد. اگر کوئری یا پرس و جو را از پنجره پرس و جو اجرا می نمایید ، این گزینه ممکن است مفید باشد ، اما اکثر کاربران نهایی که از طریق یک برنامه دستورات را اجرا می کنند ، هرگز این پیام ها را نمی بینند و لزومی نیز به دیدن آنها برای کاربران نهایی وجود ندارد.
البته شما هنوز هم می توانید از
@@ROWCOUNT
 
استفاده کنید تا تعداد ردیف هایی که تحت تأثیر یک جمله SQL  قرار گرفته اند را بدست آورید ، بنابراین استفاده از SET NOCOUNT ON این رفتار را تغییر نخواهد داد.

مثال :

-- using SET NOCOUNT ON

CREATE PROCEDURE dbo.uspGetAddress @City nvarchar(30)

AS

SET NOCOUNT ON

SELECT *

FROM Person.Address

WHERE City = @City

GO

 
 

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر

اطلاعات تماس

  • آدرس:اصفهان-خیابان ام کلثوم غربی - بعد خیابان تخم چی - بیست متر بعد از پیتزا ننه شب - کوچه تعمیر گاه سمار زغالی - پلاک 354 - درب مشکی - طبقه هفتم
  • آدرس ایمیل:najafzade@gmail.com
  • وب سایت:http://www.a00b.com/
  • تلفن ثابت:(+98)9131253620
  • تلفن همراه:09131253620