PDA

View Full Version : سوال: FORCESEEK و Index Seek



sknsphr
دوشنبه 14 بهمن 1387, 12:23 عصر
سلام

اينجا: http://www.sqlservercentral.com/articles/SQL+Server+2008/65539/

نوشته كه تو SQL 2008 با FORCESEEK، در كوئري فقط Index Seek انجام ميشه. فرق Index Seek و Index Scan چيه؟ غير از اين دو تا و Table Scanموارد ديگه هم هست؟

ممنون

AminSobati
دوشنبه 14 بهمن 1387, 18:45 عصر
سلام دوست عزیزم،
Scan زمانی هست که کل ایندکس از اول تا آخر خوانده میشه و اون ایندکس در این حد کارآیی نداشته که SQL Server دقیقا به رکورد مورد نظر هدایت بشه. بالعکس، Seek یعنی ایندکس در حدی کارا بوده که SQL Server دقیقا به رکورد مورد نظر راهنمایی شده و نیاز به خواندن کل ایندکس برای بدست آوردن جواب نبوده.
گاهی اوقات Query Processor در تشخیص دچار اشتباه میشه و در حالیکه یک ایندکس کارا هست و رکوردهای کمی هم قرار استخراج بشه، باز هم Scan صورت میگیره. در اینجا شما با آگاهی از Execution Plan، میتونین FORCESEEK استفاده کنین تا Query Processor راهنمایی بشه که Seek سرعت بیشتری به کار خواهد داد.