سلام
می خواستم بدونم چرا آیکن Nested Loops در پلن اجرا وجود داره؟
سلام
می خواستم بدونم چرا آیکن Nested Loops در پلن اجرا وجود داره؟
سلام..
این به این دلیل است که شما یک ایندکس دارید بر روی فیلد CIty ولی در Select از ID,FirstName استفاده کردید که داخل Index شما نیست و برای اینکه بتونه اونو پیداکنه مجبور شده یک عملیات Key lookup رخ بده که ابتدا تمام رکوردهای شما یکبار توسط index که بهش Inner میگویند انجام میشه و توسط Outer یا همون key lookup میاد و با استفاده از PK به ازای هررکورد روی ورودی های شما که همون Index Seek اولیه هست جستجو انجام میده و مجبوره اینجا یک Nested Loops رخ بده .
شما برای اصلاح این قضیه Ix_OneIndex_City رو اصلاح کنید ودر Inlcude فیلدهای Id,city رو قرار بدید. با این موضوع مشکل حل خواهد شد و پلن شامل یک Select و یک Index seek خواهد شد.
Telegram : @SQL_Server
با سلام و خسته نباشید خدمت شما
1-واقعا عالی توضیح دادید اما یک سئوال دارم آیا هزینه Nested Loops زیاد هست یا نه؟
2-اگر Nested Loops اتفاق بیفتد حتما باید index یا کوئری خودمونو باید اصلاح کنیم یا نه در بعضی از موقع ها مشکلی به وجود نمی آورد؟
ممنون می شوم پاسخ دهید
با تشکر
آخرین ویرایش به وسیله hassanzarabi : یک شنبه 14 خرداد 1396 در 07:12 صبح