PDA

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



elham1611
جمعه 15 بهمن 1389, 01:41 صبح
دوستان
برای جستجو اگر اطلاعات ما در 2 تا جدول باشه و مجبور باشیم آنها را با هم join کنیم آیا سرعت رو کاهش میده؟
نسبت به اینکه تمام اطاعات در یک جدول باشه.:متفکر:

AmirHarirbafan
جمعه 15 بهمن 1389, 02:15 صبح
بله به میزان خیلی زیادی سرعت کاهش پیدا میکنه.
اصولا نرمال سازی بانک اطلاعات باعث کاهش افزونگی در بانک و کاهش سرعت میشه

grobech
جمعه 15 بهمن 1389, 08:03 صبح
یه جایی خوندم از query تو در تو استفاده بشه سرعتش نسبت به join خیلی بهتره

Reza_Yarahmadi
جمعه 15 بهمن 1389, 12:59 عصر
برای جستجو اگر اطلاعات ما در 2 تا جدول باشه و مجبور باشیم آنها را با هم join کنیم آیا سرعت رو کاهش میده؟
نسبت به اینکه تمام اطاعات در یک جدول باشه.
اگر فقط ملاک سنجش سرعت باشه ، در مواردی که حجم داده کم باشه سرعت زمانی که همه اطلاعات در یک جدول ذخیره شده بیشتر است. البته این اختلاف سرعت چندان محسوس نیست. این روش در حجم داده زیاد بدلیل ذخیره اطلاعات تکراری و بالا رفتن حجم جدول باعث کند شدن واکشی اطلاعات میشه.
در طراحی دیتابیس برای بالا بردن سرعت از این روش استفاده نمیشه ، در خیلی از موارد برای بالا بردن سرعت شما مجبور به جدا کردن اطلاعات و یا حتی اضافه کردن جدولهای کمکی هستید.

اصولا نرمال سازی بانک اطلاعات باعث کاهش افزونگی در بانک و کاهش سرعت میشه
نرمال سازی باعث کاهش افزونگی میشه ولی همیشه باعث کاهش سرعت نمیشه.

حمیدرضاصادقیان
جمعه 15 بهمن 1389, 23:10 عصر
بله به میزان خیلی زیادی سرعت کاهش پیدا میکنه.
اصولا نرمال سازی بانک اطلاعات باعث کاهش افزونگی در بانک و کاهش سرعت میشه
ببخشید شما بر مبنای چه مرجع یا اصولی این صحبت رو می فرمائید؟

JavanSoft
شنبه 16 بهمن 1389, 10:23 صبح
یه جایی خوندم از query تو در تو استفاده بشه سرعتش نسبت به join خیلی بهتره
به اين مطلب مشكوك هستم
اگر امكان دارد رفرنس را قيد كنيد
استدلالم اين است كه شما با سري كردن كوئري ها طول زمان را افزايش ميدهيد و وابستگي ايجاد ميكنيد . حتي اگر اين زمانهاي بهم چسبيده كوچكتر شوند زمان كل بالاتر بنظر ميرسد

AmirHarirbafan
دوشنبه 18 بهمن 1389, 11:07 صبح
ببخشید شما بر مبنای چه مرجع یا اصولی این صحبت رو می فرمائید؟

این توضیحات Denormalization و مقایسه اش با Normalization هست
http://en.wikipedia.org/wiki/Denormalization
چیزی که من فهمیدم اینه که معمولا برای بالا بردن سرعت از Denormalization استفاده میشه، اما باید دقت داشت در این امر، چون باعث ایجاد Conflict در اطلاعات جداول میشه و البته بسته به نوع طراحی شما ، ممکنه که سرعت پایین نیز بیاید.
اگه چیزیو متوجه نشدم بگید


به اين مطلب مشكوك هستم
اگر امكان دارد رفرنس را قيد كنيد
استدلالم اين است كه شما با سري كردن كوئري ها طول زمان را افزايش ميدهيد و وابستگي ايجاد ميكنيد . حتي اگر اين زمانهاي بهم چسبيده كوچكتر شوند زمان كل بالاتر بنظر ميرسد

من به صورت تجربی به این نتیجه رسیدم که وقتی تعداد رکوردها کم باشه سلکت تو در تو سریع تره اما هرچه داده ها زیادتر بشه، join سریع تر میشه.
معمولا من برای حالتی که تعداد رکوردها کم هست (زیر 10000 تا) و تعداد دفعات تکرار Query زیاده از سلکت تو در تو استفاده میکنم و برای حالت هایی که تعداد رکوردها زیاد هست از Join.

JavanSoft
دوشنبه 18 بهمن 1389, 13:04 عصر
تجربه به دقت در مورد ساختار و طول ركوردها نيز بستگي دارد
در مورد انالايز زمانها از Query Analyzer در Sql2000 استفاده كنيد (معادلش در ديگر SQL ها نميدانم چيست)