نحوه مقایسه کارایی دو کوئری – آموزش کوئری نویسی در SQL

آموزش کوئری نویسی در SQL ( نحوه مقایسه  کارایی دو کوئری ) : همونطور که میدونین اگر یک پرس و جو رو به افراد متفاوتی بدیم، ممکنه هر فرد برا ی تولید خروجی مورد نظر، کوئری های متفاوتی طراحی کنه.
یک سؤال که مطرح میشه این هست که چطور این کوئری ها رو مقایسه کنیم و بهترین کوئری ( از دید Performnce) رو انتخاب کنیم.

اولین موردی که برای مقایسه به ذهن هر کسی خطور میکنه، زمان اجرای کوئری یا Execution Time هست. ( که البته مبنای مقایسه اشتباهی هم نیست)
اما اگر بخوایم مقایسه دقیق تری داشته باشیم. ( مثلا اگر زمان احرای چند کوئرد باه برابر باشه). یکی از Option هایی که میتونیم فعال کنیم Statistics IO هست. که میزان IO انجام شده به ازای کوئرد رو نمایش میده.

آموزش کوئری نویسی در SQL :

نمایش آمار IO به ازای اجرای کوئرد:
Set Statistics IO ON
بعد از اجرای دستور بالا، اطلاعات IO اجرای کوئری در قسمت Message به ما نمایش داد می شود که شامل Logical Read – Physical Read , Scan count می باشد.
مقدار Physical Read معرف تعداد صفحه ای (Page) است که از هارد (Physic) خونده میشه و
مقدار Logical Read معرف تعداد صفحه ای (Page) است که از Cache خوانده می شود. (قبلا در حافظه موجود بوده و به هارد مراجعه نمی شود)
پس هر چه مقدار این دو (Physical Read – Logical Read) کمتر باشه، نشون میده که کوئری بهتری برای اجرا خواهیم داشت
مقدار Scan Count رو در ادامه توضیح خواهم داد

آموزش کوئری نویسی در SQL

Physical/Logical Read

نحوه نوشتن query در sql

Set Statistics Io on


دوره آموزشی Sql Server

ورکشاپ رایگان دوره های تخصصی برنامه نویسی

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

درباره‌ی برنامه نویسان

همچنین ببینید

دانلود کتاب ۴۵ نکته برای افزایش کارایی دیتابیس ویژه برنامه نویسان

به عنوان یک برنامه نویس ممکن است نیاز به کوئری نویسی در پایگاه داده داشته باشید …

2 نظر

  1. با سلام و خسته نباشی من در نوشتن برنامه اس کیو ال چند تا سوال که برای هتل است با مشکل مواجه شدم می توانید کمکم کنید لظفا
    ۱-تعداد کل مسافرانی که از ابتدا تا کنون در هر اتاق ساکن بوده ان
    ۲-تعداد کل مسافرانی که هر اتاق در هر سال پذیرایی کرده است
    ۳-نام مسافرانی که در هر سال بیشترین مدت اقامت در هر هتل را داشته اند به همراه تعداد روز اقامت آنها
    ۴-تعداد کل مبلغی که هر کارمند در هر روز از مشتریاندریافت کرده است
    ۵-شماره کارمندانی که تا کنون اتاق ۱۰۱ را رزرو داده اندبه شرط آنکه اتاق ۱۰۲ را رزرو نداشته باشند
    ۶-مجموع درآمدی که هر اتاق در هر سال برای هتل داشته است
    ۷-لیست اتاق عایی که در هر سال خالی منده اند

  2. سلام وقتتون بخیر
    یه سوال راجب کوئری ها در sql server خودم داشتم
    دو جدول دانشجو و ترم رو در نظر بگیرید
    نام نام خانوادگی دانشجویانی که بالاترین نمره رو داشتن؟
    در قسمت max کوئریم بهم خطا میده
    ممنون میشم منو داهنمایی کنید🙏

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *