امرزوه با پیشرفت در حوزه IT ، شاهد حجم بالا و پیچیدگی زیادی در اطلاعات سازمان ها و مراکز بزرگ و به خصوص پایگاه های داده می باشیم . در این بین یکی از مباحث با اهمیت، ویژگی ها و روش های بهینه سازی دسترسی به داده ها در پایگاه داده از جمله بهینه سازی عملکرد در SQL Server 2008 R2 می باشد.
در بیشتر محیط های حرفه ای ، پایگاه داده های رابطه ای ، هسته برنامه ها و سرویس های تجاری را تشکیل میدهند و هر چه حجم داده ها و و تعداد کاربر ها و برنامه های متکی بر پایگاه داده های رابطه ای افزایش مییابد ، سازمان ها وظیفه دارند از پاسخ و عملکرد بهینه سیستم های داده ای خود اطمینان حاصل نمایند.
SQL Server 2008 شامل بسیاری از روش های بهینه سازی در انواع پایگاه داده مانند دیتابیس هایی از نوع OLAP(Online Transaction Processing و یا دیتابیس هایی از نوع (Online Analytical Processing) OLTP و قابلیت ها و عملکرد های خود همانند استخراج داده( Data extract Functionality)،ترادیسی داده ( Data Transform Functionality ) و بارگزاری داده (Functionality Data Load ) می باشد که میتوان به موارد زیر اشاره نمود .
[irp posts=”۸۵۸۶″ name=”Data Warehouse یا انبار داده چیست و هر آنچه بایستی در مورد تفاوت OLTP و OLAP بدانید”]
موتور پردازش پرس و جو با عملکرد بالا در SQL Server 2008
موتور پردازش پرس و جو با کارایی بالا SQL Server 2008 به کاربر ها این امکان را میدهد که حداکثر کارایی و بهینه سازی را در برنامه های خود پیاده سازی نمایند. این موتور پردازشی بر اساس شاخص ها (index) ها ، انتخاب کلید های اصلی و حجم دیتابیس ، پردازش های خود را کاملا بهینه سازی شده انجام می دهند و همچنین در موتور پردازش پرس جو SQL SERVER 2008 ، مایکروسافت امکان استفاده از مزیت چند هسته ای بودن را جهت پردازش سریع تر پرس و جو ها جهت بالاتر بردن عملکرد پردازش های همروند فراهم نموده است.
معمولا بیشترین هزینه در امر بهینه سازی عملکرد یک دیتا بیس مربوط به عملیات ورودی و خروجی آن بر روی حافظه فیزیکی می باشد ( DISK I/O) که با گنجانده شدن ویژگی (dynamic caching) به SQL Server 2005-2008 و کاهش تعداد دفعات دسترسی ها به حافظه فیزیکی جهت عملیات متداول بازیابی و ویرایش داده ، این هزینه به شدت کاهش خواهد یافت و علاوه بر این موتور پردازش با استفاده از تکنیک هایی مانند (READ HEAD) در این امر بسیار موثر بوده است.
از دیگر ویژگی های موتور پردازش که باعث بهینه سازی و بالا بردن عملکرد خواهد شد میتوان به قابلیت فشرده سازی صفحه های داده که خود به محدود کردن عملیات ورودی و خروجی می انجامد ، اشاره نمود. همچنین در SQL Server 2008 میتوان جهت بهینه سازی به قابلیت چند تکه کردن و ذخیره سازی در نقاط مختلف حافظه فیزیکی و یا چند تکه کردن در قالب یک file group اشاره نمود .
[irp posts=”۹۲۹۷″ name=”مقایسه کاربردی SQL Server 2008 و SQL Server 2008 R2″]
ابزار بهینه سازی عملکرد (SQL Server Profiler ,Database Engine Tuning Advisor)
SQL server 2008 شامل دو ابزار قدرتمند SQL Server Profiler و Database Engine Tuning Advisor جهت بهینه سازی عملکرد است. با استفاده از ابزار SQL Server Profiler میتوانید اتفاقاتی را که در برنامه شما رخ میدهد ،ردیابی کرده و آنها را ذخیره و سپس در برنامه Database Engine Tuning Advisor (برنامه ای جهت ایجاد و پیاده سازی پیشنهادهای بهینه سازی بر اساس ورودی ابزار SQL Server Profiler و یا پردازش پرس و جو ها مبتنی بر ایجاد شاخص ها می باشد) به صورت ورودی وارد نمایید.
پس از ایجاد و پیاده سازی شاخص ها (indexes) و چند تکه سازی های لازم در سیستم بانک اطلاعاتی ، میتوان از SQL Server Agent جهت پیاده سازی یک برنامه تعمیر و نگهداری بر روی پایگاه داده به صورت زمان بندی شده استفاده نموده و بدین صورت از بهینه سازی مستمر پایگاه داده مذکور اطمینان حاصل نمایید.
مدیریت منابع و بهینه سازی عملکرد پایگاه داده در SQL Server 2008
برخی اوقات یک سرور برای میزبانی چندین سرویس داده مورد استفاده قرار می گیرد و اغلب نیز برنامه های بسیاری از این سرویس های داده استفاده می نمایند و تخصیص منابع بین برنامه ها و سرویس های مورد استفاده آنها و تخمین کارایی هر یک بر اساس منابع اختصاص داده شده ، کاری بسیار دشوار و در برخی مواقع دارای پیچیدگی های محاسباتی است.به عنوان مثال اگر بر روی یک سرور چندین برنامه با حجم کاری بالا جهت استفاده از منابع سیستمی و داده ای وجود داشته باشد مدیران SQL Server وظیفه دارند تا از وقوع مشکلاتی چون Query Starving و یا تاثیر منفی پروسه ها و تراکنش هایی با اولویت پایین در پروسه ها و تراکنش هایی با اولویت بالا پیشگیری نمایند.
جهت مدیریت منابع و بهینه سازی عملکرد پایگاه داده در شرایط فوق الذکر ، SQL Server 2008 از قابلیتی نرم افزاری جهت مدیریت منابع اختصاصی خود با نام (Resource Governor) که به مدیران سرور اجازه تعریف و محدود سازی منابع و یا تخصیص اولویت های کاری را میدهد ، استفاده می نماید.
جهت فعال سازی این امکان در SQL Server Management Studio کافیست در پنجره مربوط به Object Explorer بر روی + کنار Management کلیک کرده و سپس بر روی Resource Governor کلیک راست کرده و سپس با کلیک بر روی گزینه enable این امکان را فعال نمایید.
بهینه سازی عملکرد توسط Performance Studio
SQL Server 2008 چهار چوب نرم افزاری ، با عنوان Performance Studio را فراهم مینماید که به شما امکان جمع آوری ، بررسی و آنالیز ، خطایابی و ذخیره اطلاعات را جهت عیب یابی و بهینه سازی عملکرد ۲۰۰۸ SQL Server میدهد. شایان ذکر است که Framework یا چهارچوب نرم افزاری در حقیقت به مجموعهای از دستور العمل ها گفته میشوند که به منظور انجام عملیات پایه و اصلی یکی سیستم هدفمند در زبانهای برنامه نویسی ایجاد میشوند.
[irp posts=”۹۲۹۷″ name=”مقایسه کاربردی SQL Server 2008 و SQL Server 2008 R2″]
Performance Studio در حقیقت امکان مانیتور کردن کارایی و عملکرد SQL Server را بر عهده دارد. از جمله اطلاعاتی که میتوان در Performance Studio مانیتور کرد میتوان به موارد زیر اشاره نمود:
- سربار کاهش یافته (Low-Overhead)
- ذخیره سازی متمرکز (centralized storage)
- گزارش تحلیلی از عملکرد داده ها(analytical reporting of performance data)
جهت مشاهده گزارش عملکرد های فوق در محیط SQL Server Management Studio ، در پنجره مربوط به object explorer بر روی نام بانک اطلاعاتی راست کلیک نمایید و بر روی reports کلیک نمایید و سپس از منوی باز شده بر روی standard reports یا custom reports کلیک نمایید و در پنجره ظاهر شده مربوط به داشبورد عملکرد( Performance Dashboard ) گزارش های مربوط را مشاهده و مانیتور نمایید.(مانند شکل زیر)
سپس با استفاده از Stored Procedure ها و رابط برنامه نویسی (API) برنامه Performance Stutdio اقدام به بهینه سازی عملکرد پایگاه داده نمایید.در حقیقت Performance Studio این امکان را به شما میدهد تا مجموعه ای پایا از اطلاعاتی چون فعالیت های موجود بر روی SQL Server ، آمار پرس جو ها (sql statistics) و میزان فضای مصرفی از حافظه (Disk usage) برای آنالیز کردن و بهینه سازی عملکرد ، در اختیار داشته باشید.
برای کسب اطلاعات در حوزه SQL Server Management Studio چیست به شما پیشنهاد میشود مقاله ما را مطالعه نمایید.