ورود

View Full Version : نقش فیلدهای یک جدول در سرعت جستجو



V60
شنبه 14 بهمن 1385, 14:47 عصر
سلام
من چند تا سوال مرتبط به هم داشتم(جدول من اکسس است)
اول اینکه تعداد فیلد یک جدول چه تاثیری در سرعت جستجو دارد(آیا فرمولی هم دارد، یعنی رابطه ریاضی بین تعداد فیلدها ، رکوردها و سی پی یو یا رم دستگاه وجود دارد)
دوم اینکه وقتی یک کوری بر روی یک جدول با تعداد 100 فیلد می نویسیم ، اگر در هنگام نوشتن SELECT از نام همه رکوردها استفاده کنیم


SELECT TABLE1.*

یا اینکه فقط چند فیلد را انتخاب کنیم


SELECT TABLE1.NAME,TABLE1.LASTNAME

فرقی در سرعت کوری دارد
و سوم اینکه همانطور که می دانید وقتی بر روی کامپوننت ADOTABLE یا ADOQUERY دبل کلیک می کنیم فرم fieldeditor باز می شود ، می خواستم ببینم اگر تعداد فیلدهایی که به این اضافه کنیم کم باشد در سرعت تاثیر دارد ؟
متشکر

dkhatibi
شنبه 14 بهمن 1385, 19:01 عصر
در مورد سوال دوم شاید حتی روش وم سرعت پایینتری را سبب شود. اما مقدار کمتری از فضای حافظه اشغال می گردد.
در مورد سوال سوم. این عمل ظاهری است؛ فقط فیلدهای خاصی نشان داده می شوند در حالیکه تیبل به طور کامل باز شده است.

mzjahromi
شنبه 14 بهمن 1385, 19:38 عصر
در مورد سوال اول تاثیر دارد ولی رابطه ای وجود ندارد
در مورد سوال دوم هم بله تاثیر دارد کلا یکی از قوانین بهینه کردن کوئری ها این است که تنها فیلدهای مورد نیاز را بازیابی کنید

V60
شنبه 14 بهمن 1385, 21:17 عصر
از هر دو دوست متشکر
حالا من کدام جواب را انجام بدهم؟
من به دنبال سرعت بالاتر هستم، جواب سوال دوم را می گویم، همه را انتخاب کنم یا بعضی از فیلدها را
بسیار متشکر

darvishiali
یک شنبه 15 بهمن 1385, 00:12 صبح
سلام؛

حتما فقط فیلدهای لازم رو از جداولتون انتخاب کنید!

فرض کنید جدول شما 10 فیلد داره که فقط میخواین با توجه به شرطی که روی 2 تا فیلد میذارین، سه تا از اونها رو استفاده کنین. اگر هر کدوم از فیلدها مثلا 4 بایت باشن، اگه همه رو انتخاب کنین، نتیجه کوئری شما برای هر رکورد شما 40 بایته ولی اگه 3 تای لازم رو انتخاب کنین، نتیجه کوئری برای هر رکورد 12 بایته.

حالا فرض کنید یه کوئری بنویسین که 1000 رکورد برگردونه. در حالت اول 40000 بایت و در حالت دوم 12000 بایت انتقال داده بین سرور و کلاینت دارین. این دو حالت برای جداول بزرگ و با تعداد رکورد زیاد (مخصوصا در انتقال داده بین سرور و کلاینت) خیلی خیلی تاثیر داره! یکی از مزایاش کاهش ترافیک شبکه است...