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

نام تاپیک: مشکل در خواندن تعداد محدود رکورد از بانک اطلاعاتی با رکورد بالا

  1. #1

    مشکل در خواندن تعداد محدود رکورد از بانک اطلاعاتی با رکورد بالا

    با سلام
    من از یک بانک اطلاعاتی تحت sqlserver 2000 استفاده می کنم که نزدیک 15 میلیون رکورد دارد و مشکلی که در این رابطه دارم این است که زمانی که از طریق کوئری آنالیزر حتی یک کوئری با select خواندن مثلا 15 رکورد را می نویسم علاوه بر مدت زمان زیاد در پاسخ دهی،مقدار زیادی از Ram را اشغال کرده و همچنین مقدار فضای اشغال شده رم برگشت ندارد،یعنی خالی نمی شود.
    لطفا در حل این مشکل من را راهنمایی کنید

    با تشکر مرزبان

  2. #2
    دوست عزیزم،
    زمانی که شما ایندکسهای مناسب نداشته باشین، SQL Server ناچاره با Scan کردن کل اطلاعات، گزارش مورد نظر شما رو تامین کنه. Scan کردن مساویست با واکشی کردن کل جداول مربوطه به حافظه، و انجام پردازش گسترده روی تعداد زیادی از رکورد. این فرایند دقیقا سه پارامتر پردازنده، دیسک و حافظه رو به شدت تحت تاثیر قرار میده.
    اما داشتن ایندکس مناسب یعنی نیاز به دسترسی به قسمت کمتری از اطلاعات و پردازش کمتر (و آسانتر).
    اگرچه شما فقط 15 رکورد رو نیاز دارید، اما SQL Server در صورت نامناسب بودن وضعیت دیتابیس ناچاره عملیات سنگینی انجام بده.

  3. #3
    با تشکر از دوست عزیز AminSobati
    اما مشکل من در این است که ایندکس رو وقتی می توانم استفاده کنم که یک فیلد مورد نظر در اولویت جستجو باشد ولی مشکل من در این است که بعضی اوقات جستجو بر اساس یک فیلد با اولویت پایین اجرا می شود چگونه می توانم این مشکل را حل کنم
    با تشکر مرزبان

  4. #4
    کاملا حق با شماست. مثلا در حالتی که روی چندین فیلد به کاربر امکان جستجو میدیم چنین مساله ای پیش میاد. من شخصا روی حالتهایی که بیشتر رخ میده ایندکس میسازم و حالتهای نادر شاید ارزش ساخت ایندکس رو نداشته باشه! اما اگر داشتن تعداد ایندکس بیشتر و محدوده ویرایش اطلاعات برای شما دغدغه محسوب نمیشه، میتونین ایندکسهای سبک تر (با تعداد فیلد کمتر) حتی برای حالتهای خاص داشته باشید

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

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