PDA

View Full Version : گذاشتن Index بر روی چند ستون از جدول



JaVa
جمعه 27 بهمن 1391, 17:19 عصر
سلام و درود بر شما.


دوستان در جدولی با عنوان TBL_Book قراره که نام کتاب در طی باز بودن برنامه بارها جستجو بشه ؟

تعداد رکوردها هم 4،000 تا هستن و بصورت صعودی هم افزایش پیدا می کنن.

گذاشتن ایندکس بر روی نام کتاب ها کار درستی هست یا خیر ؟

آیا برای گذاشتن اندیکس (که هدف بالا رفتن سرعت جستجو برای داده هاست) دارای قاعده خاصی هست ؟

لطفا توضیحات کامل رو ارائه بدید

با تشکر.:تشویق:

حمیدرضاصادقیان
جمعه 27 بهمن 1391, 21:03 عصر
سلام.
ببینید یکی از اصول قرار دادن ایندکس بر روی یک فیلد این هست که در شرط هاخیلی استفاده میشه. دومین موردی که باید مد نظر داشته باشید این هست که عملیات Modification بر روی فیلدهای مورد نظر کم باشه.چون اگر مخصوصا از نوع Clustered Index باشه اونوقت در عملیات Modification دچار کندی خواهد شد.
اگر ID کتاب از نوع Clustered هست و بیشتر در جستجوها شرکت میکنه نیازی نیست روی این فیلد ایندکس بذارید .برای تستش نیز میتونید Execution Plan یک query مربوط به این جدول رو نیز تهیه کنید و ببینید ایا از Index ها استفاده میشه یاخیر.

JaVa
جمعه 27 بهمن 1391, 21:31 عصر
سلام.
ببینید یکی از اصول قرار دادن ایندکس بر روی یک فیلد این هست که در شرط هاخیلی استفاده میشه. دومین موردی که باید مد نظر داشته باشید این هست که عملیات Modification بر روی فیلدهای مورد نظر کم باشه.چون اگر مخصوصا از نوع Clustered Index باشه اونوقت در عملیات Modification دچار کندی خواهد شد.
اگر ID کتاب از نوع Clustered هست و بیشتر در جستجوها شرکت میکنه نیازی نیست روی این فیلد ایندکس بذارید .برای تستش نیز میتونید Execution Plan یک query مربوط به این جدول رو نیز تهیه کنید و ببینید ایا از Index ها استفاده میشه یاخیر.

بودنش یا نبودنش هم زیاد فرقی نداشت.

این موضوع ایندکس گذاری فکر کنم فقط زمانی مورد استفاده قرار می گیره که تعداد رکوردهامون از مرز هزار یعنی میلیون باشه استفاده کنیم بهتره/

اینجور نیست ؟:متفکر:

محمد سلیم آبادی
شنبه 28 بهمن 1391, 09:20 صبح
اینجور نیست ؟
زمانی که حجم داده ها بسیار کم باشد تفاوت query ای که از یک index مناسب بهره مند شده با query که بدون استفاده از index مناسب اجرا شده چشم گیر نخواهد بود. چرا که ممکن است بطور مثال اولی در زمان 20 میلی ثانیه و دومی در 200 میلی ثانیه اجرا شوند که هر دو در کمتر از یک پلک زدن نتیجه را برگشت خواهند داد.