خوش آمديد!
16:54 سه شنبه 2 خرداد ماه ، 1391
تبلیغات راست
پکیج آموزش جامع دوره مهندسی شبکه مایکروسافت MCSE
خبر خوان

خبر خوان

دسته بندی مقالات
وب
  مقالات HTML
  مقالات PHP
  مقالات ASP.NET
  مقالات CSS
  مقالات XML
  مقالات JavaScript
  مقالات CMS
  مقالات Dreamweaver
  مقالات ColdFusion
  مقالات IIS
  مقالات Apache
  مقالات AJAX
  مقالات Flex
  مقالات AIR
  مقالات Expression Web
  مقالات SEO
  مقالات عمومی وب
برنامه نویسی
  مقالات C / C++
  مقالات C#
  مقالات VB.NET
  مقالات VB6
  مقالات دلفی
  مقالات VbScript
  مقالات اکشن اسکریپت
  مقالات Python
  مقالات سیلور لایت
  مقالات عمومی برنامه نویسی
سخت افزار
  مقالات CPU
  مقالات RAM
  مقالات دیسک سخت
  مقالات MainBoard
  مقالات کیبورد
  مقالات کارت گرافیک
  مقالات چاپگر
  مقالات عمومی سخت افزار
سیستم عامل
  مقالات ویندوز سون
  مقالات ویندوز ویستا
  مقالات ویندوز XP
  مقالات لینوکس
  مقالات سیستم عامل مک
  مقالات عمومی سیستم عامل
گرافیک دو بعدی
  مقالات فتوشاپ
  مقالات Illustrator
  مقالات Corel
  مقالات Painter
  مقالات QuarkXpress
  مقالات InDesign
  مقالات Fireworks
  مقالات Lightroom
  مقالات Bridge
  مقالات آکروبات
  مقالات فلش
  مقالات Expression Medial
  مقالات Expression Blend
  مقالات عمومی گرافیک دو بعدی
گرافیک سه بعدی و انیمیشن سازی
  مقالات تردی مکس
  مقالات مایا
  مقالات اتوکد
  مقالات عمومی گرافیک سه بعدی
میکس و مونتاژ
  مقالات After Effects
  مقالات پرمیر
  مقالات ادیوس
  مقالات SoundBooth
  مقالات Apple Reason
  مقالات Corel Video Studio
  مقالات Audition
  مقالات Pro Tools
  مقالات FLStudio
  مقالات SoundFordge
  مقالات عمومی ویرایش صوت و فیلم
پایگاه داده
  مقالات SQL Server
  مقالات اکسس
  مقالات MySQL
  مقالات اراکل
  مقالات عمومی پایگاه داده
شبکه
  مقالات اکسچنج سرور
  مقالات SharePoint Server
  مقالات ویندوز سرور 2003
  مقالات ویندوز سرور 2008
  مقالات ISA Server
  مقالات VMware
  مقالات MS Virtualization
  مقالات MCSE
  مقالات MCITP
  مقالات CCNA
  مقالات CCNP
  مقالات CCIE
  مقالات مایکروسافت System Center
  مقالات Wireless
  مقالات Wi-Fi
  مقالات WiMax
  مقالات Citrix
  مقالات DSL
  مقالات BizTalk
  مقالات Commerce Server
  مقالات Forefront
  مقالات Groove
  مقالات Communication Server
  مقالات Project Server
  مقالات Storage Server
  مقالات امنیت شبکه
  مقالات VoIP
  مقالات عمومی شبکه
آفیس و برنامه های تجاری
  مقالات Word
  مقالات Excel
  مقالات Access
  مقالات PowerPoint
  مقالات Visio
  مقالات OneNote
  مقالات Publisher
  مقالات Outlook
  مقالات Amalga
  مقالات Dynamics AX
  مقالات Dynamics CRM
  مقالات Dynamics GP
  مقالات Dynamics NAV
  مقالات Dynamics POS
  مقالات Dynamics RMS
  مقالات Dynamics SL
  مقالات عمومی آفیس و برنامه های تجاری

8 نکته برای بهینه سازی دستورات SQL Server

8 نکته برای بهینه سازی دستورات SQL Server

SQL Server همراه دستورات Select و DML که اجرا میکند، تعداد ردیف هایی که تحت تاثر دستور قرار گرفته اند را نمایش میدهد. مثلا اگر یک درستور Select اجرا کنید که نتیجه آن شامل 10 رکورد باشد، با رفتن به قسمت Message مشاهده میکنید که پیغام "(10 row(s) affected)" چاپ شده است. اما اگر از دستور Set Nocount ON استفاده کنید، پیغام "Command(s) completed successfully." چاپ خواهد شد. این اطلاعات هنگامی که در حال دیباگ کردن برنامه هستیم مفید است، اما بعد از آن، در بسیاری از موارد، این اطلاعات بی فایده است.


1- از SET NOCOUNT ON استفاده کنید:
SQL Server همراه دستورات Select و DML که اجرا میکند، تعداد ردیف هایی که تحت تاثر دستور قرار گرفته اند را نمایش میدهد. مثلا اگر یک درستور Select اجرا کنید که نتیجه آن شامل 10 رکورد باشد، با رفتن به قسمت Message مشاهده میکنید که پیغام "(10 row(s) affected)" چاپ شده است. اما اگر از دستور Set Nocount ON استفاده کنید، پیغام "Command(s) completed successfully." چاپ خواهد شد. این اطلاعات هنگامی که در حال دیباگ کردن برنامه هستیم مفید است، اما بعد از آن، در بسیاری از موارد، این اطلاعات بی فایده است. این درحالی است که اگر در یک حلقه از دستورات استفاده کنیم، بدست آوردن این اطلاعات سربار زیادی روی سیستم خواهد داشت و با خاموش کردن آن، میتوان به کارایی بهتری دست یافت. برای استفاده از این امکان به صورت زیر عمل کنید:
CREATE PROC dbo.ProcName
AS
SET NOCOUNT ON;
--کدهای اجرایی دلخواه اینجا میآید مانند کد زیر
SELECT column1 FROM dbo.TblTable1
-- و مجددا برای استفاده های بعدی این امکان را فعال کنید.
SET NOCOUNT OFF;
GO 
2-از نام schemaها همراه با نام اشیا استفاده کنید.
همراه نام SPها و سایر اشایی که در یک SP استفاده میکنید، حتما از نام Schema استفاده کنید. با این کار، هنگام اجرا به جای اینکه در تمام جاهایی که امکان وجود شی وجود دارد،SQL Server جستجو شود، مستقیما به سراغ شی مورد نظر میرود. به مثال زیر دقت کنید:
SELECT * FROM dbo.MyTable -- از این روش استفاده کنید
-- بجای
SELECT * FROM MyTable -- از این روش استفاده نکنید.
--و در نهایت برای اجرای رویه ذخیره شده از روش زیر استفاده کنید
EXEC dbo.MyProc -- از این روش استفاده کنید
--بجای
EXEC MyProc -- از این روش استفاده نکنید.
3-به هیچ وجه از پیشوند sp_ برای نام گذاری رویه های ذخیره شده استفاده نکنید.
در صورتی که نام یک رویه با پیشوند SP_ شروع شود، SQL Server برای اجرای رویه ابتدا سراغ دیتابیس Master می رود، و درصورتی که رویه را آنجا پیدا نکند به سراغ دیتابیس جاری میرود. این جستجوی اضافه 2 اشکال دارد، اولی صرف زمان بیشتر برای پیدا کردن رویه در پایگاه داده است و دومی که بسیار مهم است، اگر رویه در دیتابیس Master نیز وجود داشته باشد، نتیجه اشتباهی دریافت خواهیم کرد.
4-از IF EXISTS (SELECT 1) به جای (SELECT *) استفاده کنید:
زمانی که از IF EXISTS استفاده میکنیم، میخواهیم بررسی کنیم که به ازای شرایط خاصی در جدولی دیگری رکوردی وجود دارد یا خیر، نتیجه این که دستور Select داخلی به ما میدهد اهمیتی ندارد( این نتیجه میتواند یک ستون باشد، یک عدد ثابت یا لیستی از تمامی ستونی های جدول مورد نظر)، زیرا IF EXISTS تنها وجود نتیجه را بررسی میکند، و در صورتی که نتیجه ای وجود داشته باشد، True برمیگرداند. پس در این شرایط برای دستیابی به عملکرد بهتر میتوان از روش زیر استفاده کرد:
IF EXISTS (SELECT 1 FROM sysobjects
WHERE name = 'MyTable' AND type = 'U')
5-برای اجرا دستورات به جای Execute از sp_executesql استفاده کنید:
sp_executesql پارامتر پذیر است.بنا بر این استفاده از sp_executesql قابلیت استفاده مجدد را برای ما فراهم میکند. execution plan برای دستورات پویای SQL تنها در صورتی قابلیت استفاده مجدد دارد که تمامی کاراکتر های موجود در کد مشابه همدیگر باشند. برای مثال به قطعه کد زیر دقت کنید:
DECLARE @Query VARCHAR(100)
DECLARE @Age INT
SET @Age = 25
SET @Query = 'SELECT * FROM dbo.tblPerson WHERE Age = ' + CONVERT(VARCHAR(3),@Age)
EXEC (@Query)
حال اگر ما مجددا کوئری را اجرا کنیم و برای @ Age به جای 25 مقدار 20 را ارسال کنیم، اجرا دستور باعث ایجاد یک execution plan جدید میشود و از execution plan قبلی استفاده نمیشود. اگر قطعه کد بالا را به صورت زیر بنویسیم:
DECLARE @Query NVARCHAR(100)
SET @Query = N'SELECT * FROM dbo.tblPerson WHERE Age = @Age'
EXECUTE sp_executesql @Query, N'@Age int', @Age = 25
اولین باری که دستور اجرا میشود execution plan ایجاد میشود و از این به بعداز این execution plan استفاده میشود حتی اگر مقدار پارامتر عوض شود.استفاده از execution plan به جای ایجاد آن باعث بهبود کاراریی میشود.
6-در صورت امکان از cursorها استفاده نکنید:
کرسر های برای نگهداری موقعیت رکورد جاری در مجموعه رکورد هایی که در حال حاضر مشغول کار کردن روی آنها هستیم، از منابع زیادی استفاده میکنند. و باعث کاهش کارایی میشوند. در صورتی که نیاز به پردازش تک تک رکورد ها در یک حلقه باشد میتوان از دستور While استفاده کرد. هرجا که ممکن باشد باید به جای استفاده از دستورات cursor-based از روش های SET-based استفاده کنیم زیرا SQL Server طوری طراحی شده است که بتواند دستورات SET-based را بهینه کند.
7-تراکنش ها را در حد امکان کوتاه نگه دارید:
با بزرگ شدن اندازه تراکنش ها، انسداد و بن بست بیشتر میشود. تا زمانی که یک تراکنش باز باشد، منابع را برای خود قفل شده نگه میدارد و در بعضی موارد ممکن است منابعی که در حال حاضر در دست یک تراکنش است، مورد نیاز تراکنشی دیگر باشد، و این مطلب باعث به وجود آمدن انسداد میشود. وقتی تعداد انسداد ها زیاد میشود، ممکن است بن بست بوجود آید و تراکنش 1 منتظر منابعی شوند که در اختیار تراکنش 2 است و تراکنش 2 نیز منتظر منبع مورد استفاده در تراکنش 1 شود.
8-از TRY-Catch برای مدیریت خطا ها استفاده کنید:
تا قبل از SQL Server 2005 مکانیزم خوبی برای مدیریت خطا ها در SQL Server وجود نداشت و مجبور بودیم بعد از هر عبارتی وضعیت خطا ها را به طور دستی بررسی کنیم. این کار با افزایش حجم کدها باعث استفاده از منابع و از دست رفتن زمان میشد. از زمان SQL Server 2005 به بعد برای مدیریت خطا ها روش جدیدی ارائه شد که استفاده از آن به روش زیر میباشد.
BEGIN TRY
--Your t-sql code goes here
END TRY
BEGIN CATCH
--Your error handling code goes here
END CATCH  


ارسال شده در مورخه : يكشنبه، 19 تير ماه ، 1390   چاپ مطلب

آموزش ویرایش ویدیو با افتر افکت


مرتبط با موضوع :

 ويژگيهاي جديد SQL Server 2012  [دوشنبه، 28 فروردين ماه ، 1391]
 روشی ساده برای import داده ها در SQL Server  [يكشنبه، 27 فروردين ماه ، 1391]
 نکات شرینک کردن فایل های دیتابیس در SQL Server  [يكشنبه، 14 اسفند ماه ، 1390]
 ایجاد پکیج های SSIS با SQL Server Management Studio  [شنبه، 10 دي ماه ، 1390]
 نسخه آزمایشی SQL Server 2012 در دسترس علاقه مندان  [چهارشنبه، 23 آذر ماه ، 1390]
 دیتابیس های پیشرفض در SQL Server  [شنبه، 18 تير ماه ، 1390]
 مقدمه ای بر Resource Governor در SQL Server 2008  [سه شنبه، 14 تير ماه ، 1390]
 VertiPaq, Apollo, Denali و آینده قابل ستایش SQL Server  [يكشنبه، 29 خرداد ماه ، 1390]
 چگونه از SVN جهت به روز رساني يك سايت استفاده كنيم؟  [دوشنبه، 9 خرداد ماه ، 1390]
 Restore کردن تکه تکه (Piecemeal) دیتابیس با اسکیوال سرور  [شنبه، 31 ارديبهشت ماه ، 1390]


تبلیغات چپ
پکیج Windows Server 2008 MCITP Enterprise Administ
آخرین مقالات
· ۱۴ تغییراتی احتمالی که در iPhone 5 خواهید دید!
· روشهایی برای افزایش عمر باتری موبایل
· p1000 پرفروش ترین تبلت سامسونگ
· خالی کردن فضای هارد دیسک
· ۷ دلیل برای خرید مطمئن سامسونگ Galaxy Note
· معرفی لایف بوک ها ویژگی های مربوط به آنها
· معرفی ۱۰ فناوری برتر ماه گذشته در عرصه آی تی
· معرفی دلایلی برای خرید گوشی با قابلیت ویندوز فون
· SCX-4729FD چاپگر چندکاره سامسونگ
· تعریف سیستم عامل اندروید و مهمترین ویژگی های آن
· لپ تاپ های Samsung Series 7 Game 3D
· پرطرفدارترین موبایل های هوشمند تا بهار ۲۰۱۲
· Sony Unveila Xperia Sola و صفحه نمایش شناور
· کنترل دستگاه اندرویدی توسط دسکتاپ
· 10 تبلت برتر بهار سال 2012
· Optimus 3D Max دومین گوشی سه بعدی ال جی به عنوان محصولی بی همتا
· G6-1160EE لپ تاپ باقابلیت و پرمخاطب HP
· راه های افزایش امنیت در اینترنت
· آموزش مراحل پاک کردن آرشیو یاهو مسنجر
· مانیتورهایی مخصوص بازی های ویدئویی و گیمرها
· نکات مهم در مورد سرچ گوگل
· معرفی بهترین تبلت های بازار از نظر کیفیت نمایشگر
· معرفی رایانه ها و تبلت های سازگار با ویندوز ۸
· ویژگی های Galaxy note 10.1 شرکت سامسونگ
· مهمترین دلایل خرابی سریع لپ تاپ ها

[ موارد بیشتر در بخش اخبار و تازه ها ]
پربیننده ترین مقالات
· استاندارد های ISO/IEC 17799 و BS7799-2
· توصیه های مهم امنیتی در مورد لینوکس و یونیکس
· گرما در cpuها
· معماری client/Server در اینترنت
· آشنایی با سیستم فایل GNU/Linux
· یک MAC BOOK PRO جدید در بازار ایران
· معرفی دو مدل لپ تاپ با قابلیت سونی سری F
· F137HG/B، لپ تاپ سایز بزرگ سونی در بازار داخلی
· اندر احوالات کرک و کپی رایت
· EE31FX/BJ، لپ تاپ ارزان قیمت سونی در بازار داخلی
· معرفی z216 FX/L از لپ تاپ های سونی
· مدل MD313LL/A ، Macbook ارزان قیمت در بازار داخل
· تاریخچه کامپیوتر
· مشاهده آنلاین سوابق بیمه شدگان
· چگونگی اختصاص دادن یک آدرس IP استاتیک به یک رایانه در شبکه در ویندوز Xp ، Vista یا Seven
· آشنایی با روتر و سوئیچ(router and switch)
· الگوریتم های مرتب سازی آرایه ها
· تاریخچه ی پیدایش زبان های برنامه نویسی شی گرا
· GPS چیست؟
· به روز رسانی ویندوز 7 با نرم افزار Windows Update
· پایگاه داده های سیار Mobile database
· بازیابی رمز عبور در ویندوز 7
· معماری سرویس گرا Service Oriented Architecture چیست؟
· انتقال اطلاعات با Replication در SQL Server
· آموزش نرم افزار Virtual Box

[ موارد بیشتر در بخش اخبار و تازه ها ]
مقالات تصادفی
· اپل بالاتر از 300 میلیارد دلار
· لامبورگینی دنیای دیجیتال
· برای تعمیر فایل های آسیب دیده چه کاری انجام می دهید؟
· استیو در کربونایت
· کمترین مصرف انرژی در میان مرورگرها با اینترنت اکسپلورر ۹
· Lytro اولین دوربین Light Field دنیا را با قیمت 399 دلار وارد بازار می کند
· ارزان ترین کارت های گرافیک
· استراتژی های سرمایه گذاری در سال 1390
· کنترل موس و تایپ با یک دست با فناوری KeyGlove
· ابداع چاپگری که پوست چاپ می کند!
· فناوری اطلاعات (IT) چیست؟
· نخستین گوشی با دوربین مجهز به مادیون قرمز
· آشنایی با User Mode Linux
· 4 مشکل بزرگ کینکت مایکروسافت!
· اینتل از دو فناوری جدید پرده برداشت: Smart Connect و Rapid Start
· سرویس آموزشی گوگل برای عرب ها
· اطلاعات خود را برای همیشه حفظ کنید!
· چگونه یک صفحه کلید مناسب انتخاب کنیم؟
· Xbox 360، پرفروش ترین کنسول بازی جهان!
· نکته ها و ترفند ها
· عیب یابی شبکه ها
· معرفی پیر امیدیار، موسس ایرانی eBay - بخش اول
· مدیریت شبکه های کامپیوتری SNMP
· Business خودرا آنلاین کنید
· آموزش رجیستری

[ موارد بیشتر در بخش اخبار و تازه ها ]
امتیاز دهی به مطلب
امتیاز متوسط : 0
تعداد آراء: 0

لطفا رای مورد نظرتان را در مورد این مطلب ارائه نمائید :

عالی
خیلی خوب
خوب
متوسط
بد

آموزش فتوشاپ ، آموزش رتوش