PDA

View Full Version : آیا استفاده از فیلدهای زیاد در جدول با کاهش سرعت برنامه در ارتباط هست؟



javad_r_85
چهارشنبه 14 اردیبهشت 1390, 22:57 عصر
سلام.
من یه جدول دارم با 20 فیلد . ولی یکی از اساتیدم گفتند که تعداد فیلدها زیاد هست و برای برنامه سربار زیادی به همراه داره و سرعت را کاهش می ده خواستم بدونم که آیا تعداد فیلدهای زیاد مانند بالا می تواند برای برنامه کاهش سرعت به همراه داشته باشد این فیلدها ضروری هستند و باید باشند ؟؟؟؟

محمد سلیم آبادی
جمعه 16 اردیبهشت 1390, 13:06 عصر
سلام،
الزاما تعداد ستون زیاد نمی تونه منجر به کاهش سرعت بازیابی اطلاعات بشه، چرا که شما همیشه به همه ی آنها احتیاج نخواهید داشت. در نتیجه برای Query های پر کاربرد شاخص هایی رو تعریف می کنید که تمام ستون های مورد نیاز رو پوشش (Cover) میده.
اگه جدول نرمال طراحی شده باشه دیگه نگرانی نباید وجود داشته باشه.

من اگه بجای شما بودم از استادی که این پاسخ رو داده بود دلیلشو همراه با راه حلشو می خواستم. بعضی از موجودیت ها واقعا خصیصه های فراوانی دارند که باید نگهداری شوند. ولی نباید فراوموش کنید که اگر چند خصیصه تنها برای برخی از نمونه های موجودیت، دارای مقدار هستند شما میتونید جدول رو بشکنید به چند جدول و یک ارتباط یک به یک ایجاد کنید. یعنی مثلا 10 فیلد جدولتون تنها برای چند سطر مقدار دارد...

AminSobati
سه شنبه 20 اردیبهشت 1390, 14:12 عصر
سلام دوست عزیزم،
صحبت استاد شما هم میتونه صحیح باشه هم غلط. شاید با این تصور جمله رو گفتن که شما همیشه تمام فیلدها رو واکشی میکنید. در این صورت درسته. اما همونطور که در پست قبلی اشاره شد، همیشه همه فیلدها در برنامه مورد نیاز نیستند. صرفا داشتن تعداد فیلدهای زیاد، دلیل بر کاهش سرعت نمیشه.
فرضا وقتی 10 فیلد رو Select میکنین، IO بیشتری روی دیسک انجام میشه تا وقتی که 3 فیلد رو میخونین. از اونجاییکه میزان اطلاعات خوانده شده در سرعت Query نقش داره، در Execution Plan همیشه غیر از فاکتورهای دیگه مثل هزینه CPU و امثالهم، میانگین بایتهای استخراجی نمایش داده میشه تا مورد تحلیل قرار بگیره.

tooraj_azizi_1035
چهارشنبه 21 اردیبهشت 1390, 14:05 عصر
سلام،
دقیقاً بگید جدول اطلاعات چه موجودیتی رو نگه می داره تا بشه توضیح داد.