افزایش سرعت دیتابیس در sql server

افزایش سرعت دیتابیس در sql server

یکی از چالش های مهمی که شرکت های بزرگ با آن دست به گریبان هستند افزایش سرعت دیتابیس در sql server و کشف کوئری های کند بر روی سرور است. اغلب برنامه نویس ها برای برقراری ارتباط میان بانک های اطلاعاتی یا دیتابیس ها و محیط کاربری نیاز به استفاده از دستورات SQL دارند. یافتن کوئری هایی که کند اجرا می شوند و علت این کندی ها می تواند به افزایش سرعت دیتابیس در sql server کمک کند. این کار چندان مشکل نبوده و نیاز به کمی توجه دارد. مدیران بانک ها اطلاعاتی معمولا دسترسی به تکنیک های مختلف و ابزار های کمکی زیادی دارند تا بتوانند به خوبی سیستم را عیب یابی کرده و علت اصلی کند بودن کوئری ها را دریابند.

ابزارهایی برای افزایش سرعت دیتابیس در sql server و کشف کوئری های کند

همان طور که اشاره شد ابزارهای مختلفی برای افزایش سرعت دیتابیس در sql server و کشف کوئری های کند وجود دارد که آشنایی با آن‌ها برای مدیران بانک های اطلاعاتی اهمیت ویژه ای دارد. دانلود تعدادی از این ابزارها رایگان بوده و یا اینکه بر روی سیستم شما وجود دارند. ابزارهای که در ادامه به معرفی آن می پردازیم جزو رایج ترین روش های مورد استفاده جهت افزایش سرعت دیتابیس در sql server و کشف کوئری های کند هستند و استفاده از آن‌ها نتایج خوبی را به همراه داشته است.

روش های مورد نظر برای بررسی وضعیت کوئری های دیتابیس شامل زیر است:

* استفاده از Activity Monitor

* استفاده از Query Store

* استفاده از ApexSQL Plan

افزایش سرعت دیتابیس در sql server و کشف کوئری های کند

برخی از نشانه های تعیین کننده علت کندی سرعت کوئری

برای افزایش سرعت دیتابیس در sql server و کشف کوئری های کند در گام اول باید علت کندی کوئری را تعیین کرده و بر این اساس روش های اصلاحی مانند ایجاد و با اصلاح ایندکس ها و ساختار جدول ها و یا بازنویسی برخی از دستورات T-SQL را پیاده نمود.

برخی نشانه ها در Execution Plan وجود دارند که دانستن آن‌ها به مدیران بانک اطلاعاتی کمک می کند علت کندی سرعت کوئری ها را پیدا نمایید. اولین نشانه کندی سرعت کوئری علامت هشدار است که به شکل یک علامت تعجب داخل یک مثلث زرد رنگ است و در کنار یک آیکون دیده می شود و یکی از علل آن ناهماهنگی است که میان طراح دیتابیس و برنامه نویس وب سایت وجود دارد. به عنوان دومین نشانه می توان به وجود فلش های دارای ضخامت زیاد در Execution Plan اشاره نمود که نشان دهنده تعداد خروجی ها از یک آیکون است و باید بین تعداد رکورد های خروجی تناسب معقولی برقرار باشد. سومین علامت کندی سرعت کوئری وجود عملیات اسکن یا خواندن تمام اطلاعات موجود در یک جدول یا ایندکس است البته این علامت همیشه هم نشان دهنده کندی کوئری ها نبوده و می تواند گاهی اوقات نشان دهنده شرایط خوب کوئری نیز باشد. به عنوان چهارمین نشانه می توان به وجود تعداد زیاد آیکون ها اشاره نمود. پنجمین مورد در خصوص اختلاف قابل توجه میان Actual Row Number با Estimated Row Number است. در واقع به این معنا که نتایج پیش بینی تعداد رکوردها پیش از اجرای کوئری با نتایج تعداد واقعی رکوردها اختلاف زیادی داشته باشد و همین مشکل می تواند موجب کندی کوئری ها گردد. ششمین مورد از علائم بروز کندی در کوئری ها می توان به Residual Predicate یا عملیات جستجوی اضافه اشاره نمود که علت آن می تواند استفاده از محاسبات و توابع خاص در شرط کوئری و همچنین عدم وجود ایندکس مرکب روی ستون های موجود در شرط باشد. هفتمین و آخرین علامت این مشکل عملگراهایی با بیشترین هزینه هستند که باید آن ها را یافته و بهینه نمایید.

افزایش سرعت دیتابیس در sql server

راهنمایی های مفید برای افزایش سرعت دیتابیس در sql server و کشف کوئری های کند

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

* بررسی و بهینه سازی کوئری ها هم می تواند در افزایش سرعت دیتابیس اهمیت زیادی داشته باشد. برای این کار باید درک صحیحی از کوئری و نتایج آن داشته باشید. یکی از دستورهایی که می توان برای بررسی کوئری مورد استفاده قرار داد دستور Explain است.

* راه حل بعدی برای افزایش سرعت دیتابیس استفاده از کش کوئری است. برای سرعت بخشیدن به ارسال کوئری یک راه حل استفاده از سیستم ذخیره سازی حافظه توزیع شده Memcached است و عملکرد آن بر اساس کاهش بار پایگاه داده است.

* استفاده از LIMIT تقریبا ضروری است. اگر شما یک پایگاه داده با اطلاعات بسیار زیادی دارید، نیازی نیست در هر بار نمایش تمام آن اطلاعات از پایگاه داده خوانده شود و گاهی فقط برخی از این اطلاعات مثلا 10 رکورد آخر مورد نیاز است. استفاده از LIMIT این قابلیت را فراهم می کند تا فشار از روی سروری برداشته شود.

* از ایندکس برای افزایش سرعت دیتابیس در sql server می توانید بهره ببرید. ایندکس ها شاخص هایی برای شناسایی سریع تر دیتاها هستند و می توانند برای یک ستون منفرد از جدول داده ها و یا ترکیبی از ستون ها استفاده شوند. اگر می خواهید اطلاعات موجود در دیتابیس را مرتب نمایید و یا قصد جستجو و Join کردن اطلاعات را دارید استفاده از ایندکس کمک بزرگی خواهد بود.

* برای نشان دادن رکورد هایی از 2 یا بیشتر معمولا از OR استفاده می شود اما اگر می خواهید افزایش سرعت دیتابیس در sql server را تجربه کنید بهتر است از UNION به جای OR استفاده نمایید.

* می توانید از قابلیت فشرده سازی دیتا در نسخه 2008 sql server استفاده نمایید. این قابلیت یک ویژگی جدید است و با فشرده سازی بک آپ کاملا متفاوت است. با این کار اندازه دیتابیس را کاهش داده و در نتیجه سرور حجم کمی از اطلاعات را منتقل می کند. با این روش معمولا بین 50 تا 70 درصد کاهش حجم در دیتابیس روی می دهد؛ اما مشکلی که وجود دارد این است که مصرف پردازنده بالاتر می رود و گاهی خارج از توان CPU خواهد بود.

نوشته های مشابه