نمایش نتایج 1 تا 5 از 5

نام تاپیک: نحوه ایندکس گذاری صحیح

  1. #1
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Cave
    پست
    550

    Tick نحوه ایندکس گذاری صحیح

    با سلام و خسته نباشید

    سیستمی دارای یک Table مرکزی هست که بیشتر عملیات در اون انجام میشه و بیشتر گزارشات هم از اون تهیه میشه.(ویرایش و حذف و اضافه زیاد و همچنین Query برای گزارشات زیاد)
    بیش از 20 فیلد در این Table موجود هست با یک فیلد کلاستر شده.

    حال سوال من این هست که با توجه به اینکه هم حجم ویرایش ها و هم حجم گزارشات در این Table زیاد هست چگونه ایندکس گذاری کنم؟
    میشه گفت که گزارشات روی اگثر فیلد ها انجام میشه (یعنی اکثر قریب به اتفاق فیلد ها در WHERE ظاهر میشن)
    راه حل و پیشنهاد شما برای ایندکس گذاری چیست؟

  2. #2
    دوست عزیزم،
    در طراحی و پیاده سازی دیتابیس، ساخت ایندکس بعد از بدست آمدن همه Queryها انجام میشه. یعنی تا Query نباشه، نمیتونیم ایندکس مناسب و کارآمد رو تشخیص بدیم. به عبارت بهتر، اصلا ایندکس "برای" Query ساخته میشه

  3. #3
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Cave
    پست
    550
    ضمن تشکر از آقای ثباتی عزیز
    Query ها همه آماده هست و تهیه شده .
    مسئله این هست که طبق فرمایشات گذشته شما, استفاده از Index باید با احتیاط خاصی باشه.جداولی که زیاد ویرایش و حذف و اضافه در اونها اتفاق می افته نباید زیاد ایندکس بشن؟ همون طوری که بنده در پست اول هم گفتم در این Table هم Query زیاد هست و هم عملیات درج و حذف .
    حالا به نظر شما تکلیف چیست؟ با توجه به زیاد بودن عملیات INSERT , DELETE من از ایندکس زیاد استفاده نکنم؟(هر فیلدی که در WHERE دیدم رو ایندکس نکنم؟و فقط فیلد های مهم تر رو ایندکس کنم؟)
    یا اینکه به خاطر وجود Query های زیاد هر فیلدی که در WHERE و ORDER ظاهر شد رو بدون توجه به عملیات درج و حذف ایندکس کنم؟

  4. #4
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Cave
    پست
    550
    آقای ثباتی و دیگر دوستان سوالات بنده جوابی نداره؟

  5. #5
    در سیستمهایی که نوعا من و شما کار میکنیم، سربار یک ایندکس در مقابل منفعتش بسیار ناچیزه. مثلا وجود یک ایندکس شاید چند صدم ثانیه یک insert رو کند کنه اما نبودنش ممکنه باعث بشه 30 ثانیه Query طولانی تر بشه. این درست نیست که بگیم جداولی که زیاد ویرایش میشن نباید ایندکس داشته باشند. منظور من از "احتیاط" این هست که ایندکسی بسازیم که واقعا به حال یک یا چند Query مفید باشه، نه اینکه فقط سربار سیستم باشه.
    اینکه هر فیلد موجود در WHERE کاندید برای ایندکس هستش، یک دستورالعمل بسیار ابتدایی و کلی هست که "گاهی" به هدف میخوره!

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •