• ۲۳ بهمن ماه ۱۴۰۰ ساعت ۲۰:۲۲ دقیقه
    • مدیر سایت
      ۱
      ۵
      ۳
      ۰
    • ترفندهای زیادی وجود دارد که می توانید هنگام نوشتن کد 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.GetAddress @id bigint
      AS
      SET NOCOUNT ON
      SELECT *
      FROM WEBINUX_TABLE
      WHERE ID = @id
      GO
      

تماس سبد خرید بالا