آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

کاهش مقدار داده ی شبکه برای روش های ذخیره شده ی SQL Server

دوره های مرتبط با این مقاله

کاهش مقدار داده ی شبکه برای روش های ذخیره شده ی SQL Server

تکنیک های زیادی در هنگام نوشتن کد T-SQL وجود دارد. یکی از آنها کاهش مقدار داده ی شبکه برای هر عبارت می باشد که در داخل روش های ذخیره شده ی شما اتفاق می افتند. هر زمان که یک عبارت SQL اجرا می شود، تعداد ردیف هایی را که تحت تاثیر بوده اند، گزارش می دهد. با استفاده از "SET NOCOUNT ON" در داخل روش ذخیره شده می توانید این پیغام ها را مسدود کرده و ترافیک را کاهش دهید.

همانطور که در بالا ذکر شد دلیلی برای گزارش پیغام ها در مورد آنچه در SQL Server در هنگام اجرای روش ذخیره شده اتفاق می افتد، وجود ندارد. اگر موارد را از یک پنجره ی query اجرا می کنید، این برنامه ممکن است موثر باشد. اما بسیاری از یوزرهایی که روش ذخیره شده را از طریق یک برنامه اجرا می کنند، هرگز چنین پیغام هایی را دریافت نخواهند کرد.

شما می توانید از@@ROWCOUNT برای دریافت تعداد ردیف هایی استفاده کنید که تحت تاثیر یک عبارت SQL می باشند، بنابراین بازگشت SET NOCOUNT ON آن رفتار را تغییر نخواهد داد.

استفاده نکردن از SET NOCOUNT ON:

در اینجا مثالی را می بینید بدون SET NOCOUNT ON:

‎-- not using SET NOCOUNT ON ‎
CREATE PROCEDURE uspGetAddress @City nvarchar(30)‎
AS
SELECT * ‎
FROM AdventureWorks.Person.Address
WHERE City = @City
GO

پیغام هایی که گزارش میشوند، مشابه این مورد خواهند بود:

(23 row(s) affected)

استفاده از SET NOCOUNT ON:

در این مثال از SET NOCOUNT ON استفاده شده است، همانطور که در زیر می بینید. قرار دادن آن در ابتدای یک روش ذخیره شده تمرین خوبی است.

-- using SET NOCOUNT ON ‎
CREATE PROCEDURE uspGetAddress @City nvarchar(30)‎
AS
SET NOCOUNT ON
SELECT * ‎
FROM AdventureWorks.Person.Address
WHERE City = @City
GO

پیغام های گزارش شده مانند زیر می باشند:

Command(s) completed successfully.

استفاده ازSET NOCOUNT ON و@@ROWCOUNT :

این مثال از SET NOCOUNT ON استفاده می کند، اما همچنان تعداد ردیف های تحت تاثیر عبارت قبل را گزارش می دهد و این نشان می دهد که هنوز کار می کند.

‎-- not using SET NOCOUNT ON ‎
CREATE PROCEDURE uspGetAddress @City nvarchar(30)‎
AS
SET NOCOUNT ON
SELECT * ‎
FROM AdventureWorks.Person.Address
WHERE City = @City
PRINT @@ROWCOUNT
GO

پیغام های گزارش شده مانند مورد زیر می باشند:

23

تنظیم NOCOUNT روی Off

اگر بخواهید این رفتار را غیر فعال کنید فقط کافیست از فرمان "SET NOCOUNT OFF" استفاده کنید.

  • 1962
  •    678
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .