مثال 1 : فرض کنید 1000000 کارمند وجود دارند و از بین آنها میخواهیم فردی را انتخاب کنیم که دارای حقوق 20 میلیون تومان میباشد . در صورتی که تنها یک نفر این حقوق را دریافت کند ،
Selectivity ما برابر با 1 تقسیم بر 1000000 میباشد که بسیار نزدیک به صفر است .
Cardinality برابر است با تعداد کل رکورد ها ضربدر Selectivity .
در این مثال Cardinality=1 میباشد.
;Select * from Employee where salary=20000000
مثال 2 : فرض کنید در دانشگاهی 1200 درس توسط 200 استاد تدریس می شود . در این مثال برای فیلد نام استاد ،
Num Distinct=200 میباشد . در صورتی که بخواهیم لیست دروسی را انتخاب نماییم که استاد X تدریس میکند دستور مورد نظر به شکل زیر میباشد :
Select lesson,teacher from lessons where teacher=X;
در این مثال Selectivity=1/200 است. از آنجا که تعداد کل رکوردها برابر 1200 عدد بوده است
Cardinality = 1/200 * 1200 = 6
با توجه به اینکه یکی از مهم ترین آیتم ها در محاسبه Query COST ، کاردینالیتی میباشد ، میتوان نتیجه گرفت هرچه Selectivity به صفر نزدیکتر باشد در نتیجه مقدار Cardinality کمتر و نتیجه Query سریعتر به دست خواهد آمد .
- ۹۶/۱۰/۱۳
- ۶۶۷ نمایش