افزایش سرعت
افزایش سرعت SQL Server با ارائه راهکارهای حرفهای اعم از ایندکس، پارتیشن بندی و... بانک اطلاعاتی شما را بهینه خواهد کرد.

افزایش سرعت بانک اطلاعاتی در SQL Server
در اغلب سازمانهای بزرگ افزایش تعداد کاربران و همچنین Requestهای بانک اطلاعاتی برابر با کاهش سرعت بانک اطلاعاتی میباشد. در این هنگام بیشتر مدیران در جهت افزایش سرعت به دست به کارهایی جالبی میزنند که از نمونه آنها میتوان به موارد زیر اشاره کرد.
۱٫ SQL Server بانک اطلاعاتی بسیار ضعیفی است. ما باید به سراغ Oracle و یا DB2 برویم.
۲٫ سرورهای ما به شدت ضعیف هستند باید سرورهای قویتری تهیه کنیم.
۳٫ و…
نمودار زیر نشان میدهد که سختافزار، نرمافزار، تنظیمات بانک اطلاعاتی و… چقدر تاثیر مثبت در کارایی SQL Server دارد.

بررسی نمونهای از قابلیتهای SQL Server در جهت افزایش کارایی
۱٫ استفاده از ایندکسهای جدید : عموماً زمانی که زمانی که اسم ایندکس را خیلی از دوستان میشنوند یاد این موضوع میافتند که ایندکس عاملی در جهت افزایش سرعت میباشد. اما باید این نکته را در نظر داشته باشید که ایندکسها در SQL Server انواع مختلفی دارند که از نمونه آنها میتوان به موارد زیر اشاره کرد.
۲٫ پارتیشنبندی جداول : یکی از تکنیکهای خوب در جهت افزایش عملکرد بانک اطلاعاتی پارتیشنبندی جداول بزرگ آن است. در این تکنیک یک کلید مناسب برای پارتیشنبندی انتخاب شده و جدول بر اساس آن پارتیشن میشود. مزیت عمده پارتیشنبندی جداول این است که این تکنیک باعث میشود که دادههایی که کوئریهای شما درگیر آن میشوند کمتر شده و IO مربوط به کوئریها کاهش مییابد.
۳٫ استخراج کوئریهای کُند در SQL Server: ما دیتابیسهای سازمان را بررسی میکنیم و کوئریهایی که مدت زمان اجرای آنها زیاد است را استخراج میکنیم. جدول ذیل برای یکی از مشتریان است که سرعت کوئریهای آن دسته بندی شده است.

۴٫ وجود مشکل Parameter Sniffing در کوئریها : کوئریهای موجود که در سیستم با استفاده از Entity Framework ایجاد شده است را بررسی میکنیم و اگر دارای مشکل Parameter Sniffing میباشد که این موضوع باعث استفاده از Planهای غیر مفید برای برخی از کوئریها خواهد شد. توجه داشته باشید که برای رفع این مشکل در سیستم از ویژگی Recompile استفاده شده است که این موضوع خود باعث بوجود آمدن مشکلاتی دیگر نیز شده است.
۶٫ وجود Blocking: به علت ضعف برخی از کوئریها و همچنین وجود مشکل در برخی از ایندکسهای Clustered و NonClustered موجود بر روی بانک اطلاعاتی Blocking زیادی بر روی سرور رُخ میدهد.
۷٫ و…
فعالیتهایی در جهت افزایش سرعت بانک اطلاعاتی
برای افزایش سرعت و کارایی بانکهای اطلاعاتی فعالیتهایی در ۴ حوزه انجام خواهد شد.
۱٫ حوزه Database و SQL Server
۲٫ حوزه برنامه کاربردی
۳٫ حوزه سیستم عامل سرور
۴٫ حوزه سخت افزار سرور و Virtual Machineها

بررسی تنظیمات افزایش سرعت حوزه Database و SQL Server
۱) استخراج Queryهایی که دارای سرعت اجرای پایین هستند:
استخراج کوئریهایی که سرعت اجرای آنها پایین است با استفاده از Trace و Extended Event انجام خواهد شد.
۲) تحلیل خروجی Trace و Profiler:
پس از استخراج لیست کوئریهایی که سرعت آنها پایین است باید نتایج بدست آمده تحلیل شده تا بتوانیم سرعت اجرای کوئریها را در بانک اطلاعاتی بالا ببریم.
۳) اعمال ایندکسهای نسل جدید در SQL Server:
برای افزایش سرعت کوئریها از نسل جدید ایندکسها در SQL Server استفاده خواهد شد.
۴) اعمال تنظیمات صحیح Fill Factor:
در جهت کاهش Fragmentation جداول و ایندکس اعمال تنظیمات مربوط به Fillfactor باید به صورت اصولی انجام گردد تا جداول و ایندکسها کمتر دچار مشکل Fragmentation شوند. لازم به ذکر است این تنظیم باید به ازای تمامی جداول و ایندکسها اعمال گردد.
۵) کاهش تعداد Pageهای تخصیص داده شده به ازای جداول:
با بررسی انجام یافته به ازای جداول سنگین سیستم مشخص گردید که امکان کاهش تعداد Pageهای مربوط به آنها وجود دارد.
۶) استخراج لیست عوامل Blocking:
یکی از عوامل کندی موجود در سیستم Blocking است. برای کشف عوامل Blocking اعمال Trace و Extended Event بر روی سیستم ضروری میباشد.
۷) تحلیل نتیجه Blocking:
آنالیز نتیجه Blocking تاثیر بسیار در کارایی SQL Server دارد. رفع مشکلات Blocking باعث افزایش سرعت اجرای کوئریها و… در بانک اطلاعاتی میشود.
۸) تحلیل Deadlockهای سیستم:
یکی از مهلکترین خطاهای بانک اطلاعاتی در سیستمهای بزرگ Deadlock است. وجود Deadlock در بانکهای اطلاعاتی عوامل متعددی دارد. برای رفع Deadlock روشهای متنوعی وجود دارد که ما در طی این پروژه هر کدام از آنها را با توجه به شرایط مختلف استفاده خواهیم کرد.
۹) بررسی Waitهای موجود در سیستم:
عواملی که باعث بوجود آمدن انتظار در بانک اطلاعاتی میشوند را Wait مینامند. Waitها انواع مختلفی دارند که منشاء هر کدام از آنها با توجه شرایط مختلف متفاوت میباشد. برای بررسی Waitهای موجود در سسیتم نیاز به تهیه Baseline از عملکرد بانک اطلاعاتی خواهیم بود.
۱۰) تنظیم Statistics:
استفاده از Statistics و موضوع Cardinality Estimation باعث تخمین درستی از وضعیت تعداد رکوردها خواهد شد. چنانچه نتیجه تخمین بر روی سرور درست اعمال گردیده و استفاده از ایندکسهای مناسب در دستور کار قرار گیرد عملکرد SQL Server تا حد مناسبی بهبود خواهد یافت. برای کمک به این موضوع ما تنظیمات ویژهای به ازای Statistics جداول انجام خواهیم داد.
۱۱) پارتیشنبندی جداول و ایندکسهای سیستم:
یکی از تکنیکهای افزایش سرعت اعمال پارتیشنبندی به ازای جداول و ایندکسهای بزرگ میباشد. برای اعمال پارتیشنبندی باید کلیدی مناسب را جهت پارتیشنبندی انتخاب و این کلید را در کوئریهای پر استفاده لحاظ نمود.
۱۲) اعمال تنظیمات ویژه به ازای بانکهای اطلاعاتی سیستمی:
بانکهای اطلاعاتی سیستمی یکی از مهمترین بانکهای اطلاعاتی است که تنظیم دقیق آنها باعث افزایش کارایی بانک اطلاعاتی خواهد شد.
۱۳) اعمال تنظیمات ویژه در سطح بانک اطلاعاتی:
در جهت عملکرد بهتر بانک اطلاعاتی تنظیمات ویژهای برای هر کدام از بانکهای اطلاعاتی فعال خواهد شد که وجود این تنظیمات باعث افزایش کارایی بانک اطلاعاتی خواهد شد.
۱۴) حذف ایندکسهای بلا استفاده در سیستم:
با توجه به اینکه در بانک اطلاعاتی سیستم ایندکسهایی از قبل وجود دارد. نیاز به بررسی دقیق هر کدام از این ایندکسها خواهیم داشت تا بتوانیم ایندکسهایی ایندکسهای بلا استفاده را پیدا کرده و حذف نماییم.
۱۵) حذف ایندکسهای تکراری در سیستم:
با توجه به اینکه در بانک اطلاعاتی سیستم ایندکسهایی از قبل وجود دارد. نیاز به بررسی دقیق هر کدام از این ایندکسها خواهیم داشت تا بتوانیم ایندکسهایی که دارای کلید تکراری در سطوح مختلف هستند را استخراج و آنها را مورد تحلیل دقیق قرار دهیم تا بتوانیم ایندکسهای تکراری را حذف کنیم.
۱۶) تنظیم دقیق Data File و Log File:
Data File و Log File هر دو از فایلهای حساس یک بانک اطلاعاتی هستند اعمال تنظیمات مناسب به ازای هر کدام از آنها تاثیر مناسبی در عملکرد SQL Server خواهد داشت.
۱۷) اعمال تنظیمات ویژه به ازای Instance:
پیکربندی صحیح Instance تاثیر مناسبی در عملکرد SQL Server خواهد داشت. این تنظیمات با توجه به وضعیت هر کدام از سرورها مورد بررسی بر روی Instance اعمال خواهد شد.
همین الان درخواست خود را ارسال کنید
اگر میخواهید سرعت SQL Server و دیتابیس را در سازمان خود راهاندازی کنید، درخواست خود را همین الان ثبت کنید.
خواننده گرامی، اگر میخواهید سرعت بانک اطلاعاتی را در SQL Server افزایش دهید و دچار تردید هستید، کافی است دکمه بالا را کلیک کنید و درخواست خود را ثبت کنید تا کارشناسان بخش فروش/فنی با صبر و حوصله فراوان به سوالات شما پاسخ دهند تا هر گونه ابهامی برطرف شود.