چگونه اقدام به کشف کوئری های کند کنیم؟ برای پاسخ به این سوال و یافتن راهکارهایی برای افزایش سرعت دیتابیس و پیدا کردن کوئری های کند، بد نیست ابتدا بدانید کوئری چیست. معنی لغوی کوئری (query) به معنای درخواست اطلاعات است. زمانی که از این واژه در برنامه نویسی استفاده میشود نیز دقیقا همچین معنا و مفهومی دارد. به عبارتی هر کوئری، درخواست یکسری اطلاعات است که از پایگاه داده یا دیتابیس بازیابی میشود.
برنامه نویسان از زبان کوئری برای نوشتن کوئریها استفاده میکنند. نوشتن هر کوئری باید از قوانین خاصی پیروی کند در غیر این صورت دیتابیس قادر به درک اطلاعات درخواست شده و اجرای دستورالعمل لازم نخواهد بود. وظیفه کوئریها معنادار کردن کدها و قابل فهم کردن آنها برای پایگاه داده است. SQL که مخفف Structured Query Language است، به زبان استاندارد مدیریت دیتابیس معروف است.
حال که با مفهوم و کاربرد کوئریها آشنا شدید، میخواهیم راجعبه کشف کوئری های کند که موجب کاهش سرعت دیتابیس میشوند صحبت کنیم. همانطورکه میدانید پایین بودن سرعت سایت، یکی از مهمترین مواردی است که میتواند بر روی تجربه کاربری تاثیر منفی بگذارد. اگر کدنویسی سایت شما بهگونهای صورت گرفته باشد که فرایند ارسال یک درخواست به دیتابیس و دریافت پاسخ طولانی شود، سرعت سایتتان به طرز چشمگیری کاهش مییابد.
یکی از دلایل کاهش سرعت دریافت پاسخ از دیتابیس، وجود کوئریهای کند است به همین خاطر کشف کوئری های کند از اهمیت زیادی برخوردار میشود. ابزارها و تکنیکهایی وجود دارد که از طریق آنها میتوانید کوئری های کند سایت را پیدا کنید. اگر سایتتان به صورت اختصاصی کدنویسی شده است میتوانید از ابزارهای زیر برای افزایش سرعت دیتابیس استفاده کنید:
- Activity Monitor
- Query Store
- ApexSQL Plan
علاوه بر ابزارهای فوق، افزونههای کاربردی نیز وجود دارد که برای افزایش سرعت دیتابیس سایتهای وردپرسی میتوان از آنها استفاده کرد. افزونه Debug Bar و افزونه Query Monitor دو مورد از رایجترین افزونههای جستجو و پیدا کردن کوئریهای کند سایتهای وردپرسی هستند. پس از آنکه با کمک این افزونهها اقدام به کشف کوئری های کند وردپرس کردید، باید با یک رویکرد موثر مشکل موجود را برطرف کنید.
ابزار و تکنیک ها
چگونه وضعیت کوئری های سایت را بررسی کرده و کوئری های کند را پیدا کنیم؟ برای کشف کوئری های کند ابزار و تکنیکهای متفاوتی وجود دارد. ابتدا باید ببینید سایت شما توسط یک سیستم مدیریت محتوا مانند وردپرس کدنویسی شده یا از طریق کدنویسی اختصاصی طراحی شده است؟ اگر سایتتان وردپرسی است، افزونههای متفاوتی جهت کشف کوئری های کند وجود دارد که میتوانید از آنها استفاده کنید. اما اگر سایتتان به صورت اختصاصی کدنویسی شده است، باید از دولوپر سایت درخواست کنید کوئری های سایت را بررسی کرده و کوئری هایی که عملکردی کند دارند را پیدا کند.
باتوجه به اینکه اغلب سایتها وردپرسی هستند و وجود کوئری های کند در دیتابیس سایتهای وردپرسی، عملکرد و سرعت این سایتها را با کاهش چشمگیری مواجه میکند، در انتهای مقاله به نام برخی از بهترین افزونههای وردپرس و ابزارهایی که میتوانید برای کشف کوئری های کند سایت از آنها کمک بگیرید اشاره کردهایم.
بررسی کوئری های دیتابیس با Activity Monitor
یکی از ابزارهای خوب که برای افزایش سرعت دیتابیس و کشف کوئریهای کند از آن استفاده میشود، ابزار Activity Monitor است که به آن ابزار کنترل فعالیت یا اکتیویتی مانیتور نیز گفته میشود. این ابزار بطور کلی برای دریافت یک آمار تحلیلی کلی در مورد فرایندهای sql server مورد استفاده قرار میگیرد. در این ابزار نمودارهایی را مشاهده خواهید کرد که با تحلیل و بررسی آنها، به اطلاعات مهمی خواهید رسید. نمودارها شامل درخواستهایی که در لیست انتظار هستند، زمان پردازش و درخواستهای دستهای هستند.
هرچه ارقام این نمودارها پایینتر باشد، به این معنی است که کوئری های سایت در وضعیت مطلوبی قرار دارند. توجه داشته باشید که اگر ارقام نمودار مقادیر بالایی داشت، همیشه به معنای کارایی پایین سایت یا وجود کوئری های کند نیست. این مقادیر باید نسبت به حجم دیتای سایت سنجیده شوند. برای مثال در سایت یک سازمان بزرگ که حجم بالایی از دیتا دارد، طبیعی است که نمودار درخواستهای دستهای و زمان پردازش مقادیر عددی بیشتری را نشان دهد.
اما چگونه با کمک این ابزار اقدام به کشف کوئری های کند سایت کنیم؟ برای پیدا کردن کوئری هایی که وضعیت مطلوبی ندارند توسط این ابزار، باید بررسی دقیقتری بر روی تعداد پردازشهایی که منتظر اجرا شدن هستند یا پردازشهایی که بلاک شدهاند داشته باشید. از این طریق میتوانید وضعیت کوئری ها را چک کنید. کشف کوئرهای کند و پیدا کردن علت بروز مشکل در پردازش هر کوئری یک اقدام تخصصی است و به دانش برنامه نویسی نیاز دارد. به همین خاطر اگر خودتان تخصصی در این حوزه ندارید، بهتر است انجام این کار را به یک متخصص بسپارید.
بررسی کوئری های دیتابیس با Query Store
یکی دیگر از ابزارهایی که امکان پایش دیتابیس در SQL Server را به شما میدهد، ابزار Query Store است. اگر دانش کار با این ابزار را داشته باشید، امکان استخراج اطلاعات خوبی را به شما میدهد که به راحتی میتوانید اقدام به کشف کوئری های کند سایت کنید. وظیفه اصلی این ابزار جمعآوری یک تاریخچه کلی از اجرای درخواستها، پلنهای اجرایی و تهیه یک گزارش جامع است که در نهایت میتوان از آن برای افزایش سرعت دیتابیس کمک گرفت.
اگر میخواهید از طریق دادههای این ابزار به نتیجه و تحلیلهای واقعیتری برسید، بهتر است حداقل 24 ساعت به این ابزار فرصت دهید تا کوئری ها را بررسی کند. سپس گزارشی در اختیارتان قرار میدهد که به با بررسی آن به اطلاعات مفیدی دست خواهید یافت. یکی از کاربردیترین موارد این ابزار، نمایش کوئری هایی است که بیش از سایر کوئری ها اقدام به مصرف منابع میکنند.
با پیدا کردن این کوئری ها عملکرد و سرعت دیتابیس به راحتی افزایش مییابد. کار با این ابزار و دادههای آن نیز به تخصص و مهارت در این حوزه نیازمند است. اگر فکر میکنید علت کاهش سرعت سرعت، وجود مشکلی در کوئریهای سایت است اما خودتان تخصصی برای بررسی عملکرد آنها ندارید، توصیه ما این است که از یک کدنویس یا دولوپر سایت خود بخواهید تا نگاهی به دادههای این ابزار بیندازد.
بررسی کوئری های دیتابیس با ApexSQL Plan
ApexSQL Plan نام یکی دیگر از ابزارهایی است که برای کشف کوئری های کند از آن استفاده میشود. این ابزار به صورت رایگان قابل دسترس است. از مزیتهای این ابزار میتوان به قابل درک بودن دادههای آن اشاره کرد. با تحلیل و بررسی دادههایی که این ابزار در اختیارتان قرار میدهد، به اطلاعات کاربردی دست خواهید یافت که با کمک آنها میتوانید اقدام به بهبود عملکرد دیتابیس کنید.
توجه داشته باشید که برای پیدا کردن کوئری های مشکلدار سایت هیچ راه سادهتری وجود ندارد. در نهایت شما باید به کار با دادههای یکی از این ابزارها تسلط داشته باشید تا متوجه شوید چرا کوئری های سایتتان به مشکل خورده یا دچار افت سرعت شدهاند.
جستجو کوئری های کند در دیتابیس وردپرس
همانطور که میدانید اگر تنها یک درخواست SQL در دیتابیس حین پردازش عملکرد ضعیفی داشته باشد، ممکن است موجب بروز اختلال در کل قسمتهای سایت شود. بنابراین برای جلوگیری از کاهش سرعت سایت های وردپرسی، میتوانید از افزونههای مخصوص کشف کوئری های کند و برطرف کردن مشکل آنها استفاده کنید. برای جستجو کوئری های کند در وردپرس دو گام مهم باید بردارید:
- ابتدا کوئری های کند سایت وردپرسی خود را شناسایی کنید.
- سپس اقدام به پیدا کردن کدهایی کنید که این کوئریها را ایجاد کردهاند.
در ادامه به رایجترین و بهترین افزونههای وردپرس اشاره کردهایم که با کمک آنها میتوانید به راحتی کوئری های کند دیتابیس وردپرس را جستجو کرده و برای رفع آنها اقدام کنید.
بررسی کوئری های وردپرس با Debug Bar
Debug Bar یکی از افزونههای کاربردی وردپرس است که کمک میکند درخواستهای کند وردپرس را شناسایی کنید. وظیفه این افزونه کاربردی این است که یک گزارش جامع راجعبه درخواستهایی که در هر صفحه اجرا میشوند را در اختیارتان بگذارد. یکی از مزیتهای این افزونه که آن را کاربردیتر کرده است، امکان اضافه کردن ویژگیهای بیشتر به آن است. به عبارتی افزونه Debug Bar وردپرس طوری طراحی شده است که با کمک چند افزونه جانبی دیگر میتوانید امکانات ویژهتری به آن اضافه کنید.
از جمله کاربردهای این افزونه میتوان به ارائه اطلاعاتی از قبیل درخواست اطلاعات کوئریها، امکان مشاهده درخواستهای پردازش شده در SQL صفحهای که در آن قرار دارید و مشاهده پارامترهای WP_Query اشاره کرد. با توجه به قابلیتهای کاربردی این افزونه میتوان آن را یکی از بهترین افزونههایی دانست که از آن برای انجام بررسیهای دقیق روی دیتابیس وردپرس استفاده میشود.
بررسی کوئری های وردپرس با Query Monitor
از دیگر افزونههای وردپرس برای جستجو کوئریهای کند افزونه Query Monitor است. از طریق این افزونه میتوانید به اطلاعات خوبی راجعبه صفحهای که در آن قرار دارید دست یابید. همچنین از طریق دادههایی که این افزونه در اختیارتان قرار میدهد، متوجه خواهید شد کدام یک از توابع وردپرس در اجرای کوئریهای sql زمان بیشتری به خود اختصاص داده است. همچنین میتوانید بفهمید کدام یک از کوئریها از همه طولانیتر است. برای کشف کندی کوئری های وردپرس و رفع آنها باید بدانید کوئریهای کدام بخش از وردپرس عملکرد ضعیفی دارند. کوئریهای قالب وردپرس؟ افزونههای وردپرس یا هسته وردپرس؟ این اطلاعات نیز از طریق این افزونه کاربردی در دسترس خواهد بود.
رفع کوئری های کند در وردپرس
در قسمت قبل دو افزونه وردپرس را معرفی کردیم که با کمک آنها میتوانید کوئری های کند وردپرس را پیدا کنید. پس از کشف آنها، چگونه باید اقدام به رفع و برطرف کردن مشکلات این کوئریها کنیم؟ دلایل متفاوتی ممکن است باعث شده باشند که مدت زمان اجرای کوئری ها طولانی شود. ایجاد اختلال در سایت توسط یک افزونه خاص، قالب سایت یا بهینه نبودن کدها همگی از دلایلی هستند که میتوانند در نهایت منجر به کندی کوئریها در وردپرس شوند.
برای برطرف کردن مشکل در چنین شرایطی سه راه حل دارید. یا اقدام به تغییر کوئری کنید، یا اقدام به افزودن شاخص یا Index کنید و یا با کش نتایج کوئری مشکل کندی را برطرف کنید. توجه داشته باشید که این موارد ذکر شده تنها راهکارهای حل کندی کوئری های وردپرس نیستند بلکه رویکردهای بیشتری نیز وجود دارد. در رابطه با تغییر کوئریها که راهکار خوبی به نظر میرسد، در مواقعی ممکن است بازنویسی مجدد کدها منجر به نتیجه مثبت نشود بنابراین باید رویکرد دیگری را پیش بگیرید.
در رابطه با افزودن شاخص نیز نگرانیهایی راجعبه موقتی بودن راهکار پیش گرفته شده وجود دارد. چراکه باید مواردی را در نظر داشته باشید. برای مثال اگر آپدیت یا اضافه کردن یک شاخص خاص باعث کند شدن دیگر کوئریها شود، چاره رفع مشکل چیست؟ در رابطه با راهکار سوم یعنی کش نتایج کوئری نیز در میان دیگر راهکارهای ذکر شده، کمترین میزان تاثیر را در برطرف شدن کندی کوئری های وردپرس دارد. نکتهای که باید به آن توجه داشته باشید این است که کشف کوئری های کند وردپرس و در پیش گرفتن یک راهکار برای برطرف کردن مشکل، در همه سایتهای وردپرسی یک نتیجه یکسان ندارد. همه چیز به شرایط سایت شما از جمله وضعیت کدنویسی و طراحی آن بستگی دارد.