مقدمه

یک سیستم مدیریت پایگاه داده رابطه ای (RDBMS) است که توسط مایکروسافت برای ویندوز و برای لینوکس توسعه یافته است. SQL Server چندین راه را برای پیکربندی منابع در اختیار شما قرار می‌ دهد و می ‌توانید جداول را به جای روی دیسک در حافظه ذخیره کنید و پردازنده، رم و دستگاه‌ های ذخیره‌ سازی را کنترل کنید. این انعطاف ‌پذیری خوب در مدیریت منابع نیازمند مانتیورنیگ خوب نیز هست. مقاله پیش ‌رو راهنمای آموزشی مانیتور MS SQL است که همه فاکتورهای مهم مانیتور کردن SQL را در اختیار شما قرار می‌ دهد. با ما همراه باشید.

اجزای SQL Server

تسلط بر معماری SQL Server به درک اینکه چه چیزی و چرا باید مانیتور شود، به شما در تحلیل و مانیتور MS SQL کمک خواهد کرد. قرار نیست که کاملا بر اجزا و مفاهیم معماری SQL Server مسلط باشید، فقط بدانید هر بخش چیست و چگونه کار می‌ کند.

  1. پروتکل یا شبکه

این بخشی است که به ما امکان می ‌دهد کلاینت ‌ها را به SQL Server متصل کنیم. ما ترافیک شبکه را کنترل می ‌کنیم تا بدانیم چه زمانی مسائل مربوط به شبکه با عملکرد تداخل دارد. ما همچنین بر فعالیت شبکه نظارت می‌ کنیم تا نشانه‌ هایی از مشکلات مربوط به نحوه تعامل برنامه‌ ها یا کاربران با سرور را جستجو کنیم.  SQL Server از پروتکل‌ های مختلف پشتیبانی می ‌کند و از طریق شبکه با استفاده از جریان داده ‌های جدولی (TDS) ارتباط برقرار می‌ کند. در اکثر  مواقع شما با TCP/IP سروکار خواهید داشت، سایر پروتکل های پشتیبانی شده Named Pipes و Shared Memory هستند. پروتکل حافظه اشتراکی را فقط می ‌توان برای کلاینت ‌هایی که در همان میزبانی که نمونه SQL Server اجرا می ‌کنند استفاده کرد

  1. موتور ذخیره سازی

موتور ذخیره سازی SQL Server مواردی مانند تراکنش ‌ها، فایل ‌ها و دسترسی به اشیاء مختلف پایگاه داده را مدیریت می‌ کند. بدون موتور ذخیره سازی پایگاه داده نمی ‌تواند تراکنشی (Transactiona) یا همزمان (Concurrent) باشد، از طرفی قابلیت حفظ داده‌ ها نیز قابل ارائه نخواهد بود.

معیارهایی که ما در مانیتور MS SQL برای موتور ذخیره سازی استفاده می ‌کنیم شامل ظرفیت و عملکرد ذخیره سازی، دسترسی به فایل و تخصیص فضای ذخیره سازی است.

  1. پردازشگر پرس و جو

همانطور که از نامش مشخص است یک پردازشگر پرس و جو، پرس و جوها را پردازش و اجرا می‌ کند. مفهوم و ساختار این بخش کاملاً پیچیده است، اما هدف آن کاملا مشخص است. پرس و جوهایی را که برنامه ‌های کاربردی به SQL Server ارسال می ‌کنند، تجزیه، برنامه ریزی و اجرا می ‌کند. برای مانیتور MS SQL در این بخش، ما فعالیت پردازشگر پرس و جو را آنالیز پرس و جوهای در حال پردازش، مدت زمان آن‌ ها و منابعی که استفاده می کنند، بررسی می‌ کنیم.

  1. SQLOS

SQLOS بخشی از SQL Server است که شباهت زیادی به یک سیستم عامل دارد. توابع تشکیل دهنده SQLOS متعدد هستند. سایر اجزای SQL Server از طریق یک API با SQLOS تعامل دارند. SQLOS مواردی مانند زمان‌بندی CPU، threading، مدیریت حافظه، I/O منطقی و فرآیندهای پس ‌زمینه را مدیریت می‌ کنند.  هنگامی که ما بر فعالیت CPU، تخصیص حافظه، مسدود کردن و قفل کردن سطح بالاتر نظارت می‌ کنیم، موارد مربوط به SQLOS را مورد بررسی قرار می ‌دهیم.

نکته جالب در مورد SQLOS این است که دارای یک مدیر حافظه کامل است. بسیاری از برنامه ‌ها برای این کار به سیستم عامل میزبان متکی هستند، اما SQL Server مدیریت حافظه خود را انجام می‌ دهد.

چه معیارهایی برای مانیتور MS SQL مهم هستند؟

اجزای معماری SQL Server با هم کار می کنند تا یک پلت فرم پایگاه داده رابطه ‌ای قدرتمند ارائه دهند، بنابراین هنگام مانیتور MS SQL باید عملکرد کل سیستم را در نظر بگیریم. تفاوت های ظریف وجود دارد که حتی منطق را به چالش می ‌کشد. به عنوان مثال، عملکرد کند ذخیره سازی پایدار می ‌تواند نشان دهد که باید تنظیماتی در حافظه موجود انجام شود. در ادامه به بررسی معیارهای مهم نظارت بر SQL SERVER خواهیم پرداخت.

نظارت بر منابع

منابع ظرفیت محاسباتی در دسترس SQL Server هستند. به صورت کلی، منابع به عنوان اجزای سخت افزاری در یک سیستم کامپیوتری در نظر گرفته شده ‌اند اما امروزه، به دلیل پیشرفت مجازی ‌سازی و پردازش ابری، تعریف ما از منابع کمی تغییر کرده است. در هر صورت نظارت بر منابع مورد نیاز SQL Server بسیار مهم است. شما می ‌توانید مدیریت صحیح منابع، بهره‌وری در عملکرد قابل ملاحظه ‌ای دست آورید.

ترافیک شبکه

ترافیک ورودی، خروجی و کل را کنترل کنید. در صورت امکان، باید میزان ترفیک را برای واسط ‌های شبکه جداگانه ثبت کنید. این کمک خواهد کرد که مشخص شود آیا رابط شبکه خود یک گلوگاه است یا خیر. توجه داشته باشید که ممکن است این اطلاعات در مورد SQL Server مبتنی بر PaaS به راحتی جمع آوری نشود.

ترافیک شبکه SQL Server باید به عنوان درصدی از کل ترافیک شبکه در نظر گرفته شود. این امر تشخیص اینکه آیا فرآیندهایی که با SQL Server مرتبط نیستند منابع شبکه را مصرف می ‌کنند بسیار آسان می ‌کند.

مجازی سازی

مدیریت منابع محاسباتی در محیط‌ های محاسباتی مدرن بدون در نظر گرفتن مجازی سازی ناقص خواهد بود. یک سرور مجازی شده از یک هایپروایزر برای جداسازی و نمایش منابع به عنوان سیستم های مستقل استفاده می ‌کند. این به یک سرور اجازه می دهد تا به گونه‌ ای عمل کند که گویی واقعاً سرورهای زیادی در اختیار شما است.

هایپروایزرهای تجاری پیشرو ESX از VMware و Hyper-V از مایکروسافت هستند. متخصصان داده از یک دیدگاه منبع محور سطح بالا از عملکرد هایپروایزر بهره خواهند برد. آن‌ها باید بتوانند در یک نگاه میزان استفاده از CPU، حافظه و منابع IO مشترک را در یک میزبان بسنجند. آن‌ ها همچنین باید در مورد رویدادهایی مانند انتقال یک VM به یک میزبان جدید یا تغییرات در پیکربندی میزبان یا VM مطلع شوند.

تخصیص حافظه

ظرفیت کلی حافظه و میزان استفاده از سرور میزبان SQL Server را در صورت امکان نظارت کنید و به اندازه و فعالیت مانیتور برای بافرهای حافظه SQL Server. به حافظه کش بافر توجه ویژه ای داشته باشید. دیسک به طور کلی منبعی کندتر از حافظه است. کش بافر اطلاعات ذخیره شده در حافظه را نشان می ‌دهد. هر چه داده های پراستفاده ‌تر بیشتری را بتوانید در کش بافر نگه دارید، SQL Server کمتر به دیسک مراجعه خواهد کرد و در نتیجه سرعت افزایش پیدا می ‌کند. همچنین حواستان به کش پلن باشد، کش پلن ممکن است متورم شود که حافظه موجود برای کش بافر را کاهش می دهد.

SQL Server یک شمارشگر عملکرد به نام “Page Life Expectancy” (PLE) دارد. شمارنده نشان دهنده مدت زمانی است که یک صفحه داده باید قبل از حذف شدن در حافظه پنهان بافر بماند. شما باید این شمارنده را برای نوسانات کنترل کنید.

گنجایش ذخیره‌ سازی

تمام شدن غیرمنتظره فضای ذخیره‌سازی، روز سختی را برای مدیریت پلت فرم داده شما رقم خواهد زد. نظارت بر فضای خالی و میزان مصرف برای ذخیره‌ سازی به شما کمک می‌ کند تا از وقوع این مشکل جلوگیری کنید.SQL Sentry قابلیت‌های پیش بینی مبتنی بر یادگیری ماشین را برای برنامه ریزی ظرفیت ذخیره سازی فراهم می ‌کند. اگر قادر به برنامه ریزی ظرفیت با آن سطح از پیچیدگی نیستید، باید روند رشد اطلاعات را بررسی کنید.

پرس و جوهای سنگین

منابع مورد نیاز سنگین‌ ترین پرس و جوها را ضبط و تجزیه و تحلیل کنید. شما باید به طور مداوم برای بهبود ده تا پرمصرف ‌ترین پرس وجوها تلاش کنید. در حالت ایده ‌آل، می ‌توانید طرح‌ های پرس ‌و جویی را که این پرس ‌و ‌جوها در هر اجرا استفاده م ی‌کنند نیز ثبت کنید.

مزایای مانیتور MS SQL

حوادث و قطعی مربوط به عملکرد را کاهش دهید

حوادث مربوط به عملکرد برای کسب و کار شما بسیار پرهزینه است. نظارت پیشگیرانه عملکرد SQL Server از حل مشکل، پس از وقوع آن بسیار کم‌ هزینه تر خواهد بود

هزینه زیرساخت کمتر

با حصول اطمینان از دستیابی برنامه‌ ها به بهترین عملکرد، سرمایه گذاری های زیرساختی را به حداکثر برسانید. هنگامی که نیاز به ارتقاء خدمات یا سخت افزار ابری دارید، می ‌توانید این کار را با اطمینان خاطر انجام دهید که این یک تصمیم عالی خواهد بود.

ریسک را مدیریت کنید

مانیتور MS SQL به شکل مداوم، به اجرای روان پلت فرم داده شما کمک می‌ کند و خطر خرابی را کاهش می ‌دهد. زمانی که پایگاه داده شما دچار مشکل شود، بهره‌وری کسب‌و‌کار شما کاهش می ‌یابد و تیم پلت فرم داده را در وضعیت نابهنجاری قرار می ‌ دهد.

اشتباهات رایج در مانیتور MS SQL Advanced

داده های بیش از حد

داده‌های بیش از حد شما را گیج می‌کند، چرا که فیلتر و تحلیل کوهی از داده‌ های غیرمرتبط زمانبر و حتی غیرممکن خواهد بود. راه حل نظارتی شما باید، جزئیات غنی و به موقع اطلاعات عملکرد قابل اجرا را ارائه دهد.

جزئیات ناکافی

اطلاعات بسیار کم منجر به نتیجه گیری نادرست یا ناقص می‌ شود که می ‌تواند نتایج ناگواری به همراه داشته باشد. تصور کنید زمان و سرمایه زیادی را برای حل مشکلی که هرگز یک مشکل واقعی نبود، صرف می ‌کنید. مانیتورینگ صحیح، به شما تصویر کاملی از عملکرد می ‌دهد تا شما را به نتیجه گیری دقیق راهنمایی کند.

سربار  بالا

موتور نظارتی که سربار زیادی ایجاد می ‌کند به جای کمک به حل مشکل، به مشکل شما می ‌افزاید. یکی از  هدف ‌های نهایی نظارت، یعنی استفاده درست از منابع را خراب می ‌کند و شما را مجبور می ‌کند که منابع را برای مانیتنورینگ به شکلی بیهوده استفاده کنید.

استفاده از افراد غیرمتخصص

زمانی که از افراد غیر متخصص برای مانیتور MS SQL استفاده شود، مشکلات مداوم و ناهماهنگی ‌های زیادی رخ خواهد داد. مشکلات زمانی به وجود می ‌آیند که شما به یاد نمی ‌آورید چه کاری را انجام داده ‌اید و چطور پایگاه داده را مدیریت و مانیتور کرده‌ اید، در چنین شرایطی کاستی ‌های زیادی در عملکرد سیستم پدیدار می ‌شود.

تنها به آمار انتظار تکیه نکنید

در این مقاله سعی کردیم تا مهم‌ترین مواردی که در مانیتور MS SQL  باید بدانیم به شما بگوییم. تجزیه و تحلیل آمار انتظار به شما کمک می‌کند تا بفهمید که از کجا باید به دنبال مشکلات باشید. اما توجه داشته باشید که لزوما مانیتورینگ به تنهایی شما را به دلیل اصلی یا حل مشکل عملکرد راهنمایی نمی ‌کند. سپس از یک متخصص کمک بگیرید تا بتوانید آمار بدست آمده از مانیتورینگ را تجزیه و تحلیل کنید.