PDA

View Full Version : تعداد رکوردهای بالای یک میلیون و مشکل زمان بالا در select کردن



یاسر مددیان
پنج شنبه 25 اردیبهشت 1393, 00:43 صبح
درود بر دوستان و اساتید انجمن

یه جدول با حدود 15 فیلد که همه فیلد ها از نوع bit و datetime و numeric و nvarchar هستند در اختیار داریم. در این جدول حدود 3 میلیون رکورد وجود داره. حالا من میام یه select میزنم که مثلا 4 تا فیلد رو انتخاب کنه با یک شرط به صورت زیر :


select field1,field2,field3,field4 from table where active=1


این select حدود مثلاً 2 میلیون رکورد رو باید فراخونی کنه، اما مشکلی که هست اینجاست که زمان خیلی زیادی میبره! حدود یک دقیقه زمان میبره که select انجام بشه. از اساتید سوالی دارم که چیکار کنم سرعت فراخونی رو بالا ببرم که این تایم زیاد رو کم کنم؟! آیا روشی هست؟ اگه محبت کنید و راهنمایی کنید ممنون میشم.


سپاسگزارم.

espootin
پنج شنبه 25 اردیبهشت 1393, 11:22 صبح
با سلام.
با توجه به کوری شما و تعداد رکورد هاتون باید از ایندکس استفاده کنید.

در صورتی که از ایندکس استفاده نشود ، باید کل جدول از اول تا آخر بررسی شود( اصطلاحا Full Scan) ، این امر بسیار پر هزینه هست. در صورتی که از این کوری زیاد استفاده می کنید روی ستون Active‌ ایندکس بگذارید.

نکته : در نظر داشته باشید تعداد رکورد و حجم واکشی شده نیز در سرعت اجرای کوری تاثیر دارد.