PDA

View Full Version : وجود 1 میلیون تیبل در دیتابیس اس کیو ال خطرناکه؟



hamzehshabani
جمعه 02 دی 1390, 20:34 عصر
سلام
من دارم یه برنامه مینویسم با سی شارپ که برای هر روز تقریبا 3تا تیبل تولید میکنه (برای ساماندهی گزارشاتش با تفکیک) که توی هر سال چیزی نزدیک با 1 میلیون تیبل جدید ساخته میشه، آیا این همه تیبل ممکنه مشکل ایجاد کنه؟ یعنی سرعت برنامه یا بانک رو کم کنه یا اصلا همه چیز بهم بریزه؟

zarrinnegar
جمعه 02 دی 1390, 20:38 عصر
میشه بگی چه برنامه ای هست که اینقدر table میسازه؟:متعجب:

چرا table میسازی؟

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

ma.rad
جمعه 02 دی 1390, 20:39 عصر
اگر یک میلون جدول منظورتون هست فکر میکنم سر دو سال دیتابیس تون از کا بیفته

zarrinnegar
جمعه 02 دی 1390, 20:49 عصر
البته خود مایکروسافت گفته تعداد
2,147,483,647



این هم لینک
http://msdn.microsoft.com/en-us/library/aa933149%28SQL.80%29.aspx
object رو میتونه در هر دیتابیس ساپورت کنه پس مشکلی نیست ولی برای چی این همه table ؟

hamzehshabani
جمعه 02 دی 1390, 22:23 عصر
راستش در اینکه روش برنامه نویسیم مشکل داره تقریبا مطمئن هستم اما خب ببینید نظرتون چیه.

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

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

uniqueboy_ara
جمعه 02 دی 1390, 22:34 عصر
خوب امکاناتی که شما میخوای برنامت داشته باشه، تقریبا چیزای پایه ای هست که تو اکثر نرم افزار های مدیریت اطلاعات وجود داره
اگه شما یه تحلیل و طراحی درست انجام بدی، تعداد جدول هات 1/10000 میشه :چشمک:

hjran abdpor
جمعه 02 دی 1390, 22:51 عصر
با سلام.
دید پیاده سازیت خیلی اشتباه است اگه خوب فکر کنی داری لقمه را دور دهنت میچرخونی، دوست عزیز شما یک میلیون تیبل میخای چه کار،،:متفکر::متفکر::متفکر::م فکر::متفکر::متفکر::متفکر::مت کر::متفکر:
یه ساعت بشین اطلاعات را انالیز کن بعد جدوالت را طراحی کن، به نظر من بعد خیلی به مشکل برمیخوری!!!
البته هر جور راحتی.

hamzehshabani
جمعه 02 دی 1390, 23:35 عصر
چشم دوستان دوباره تلاشم رو میکنم اما نمیخواستم زیاد درگیر طراحیش بشم...

کسی نظر و ایده خاصی نداره؟ که کمکم کنه؟

علیرضا حسن زاده
جمعه 02 دی 1390, 23:39 عصر
اینکگه بخوای یک میلیون نه فقط 1000 جدول داشته باشه به نظر من برای کار شما اشتباهه
مثلا اگه خواستی از همون جودل ها یه گزارش ترکیبی بگیری که تمام گوشی ها با مشخصات یکسان رو نشون بده و ... می دونی چند تا باید Join داشته باشی
اگه در این مورد تنبلی کنی و خودت رو درگیر دستورات SQL نکنی بعدا به مشکلات خیلی بزرگتری هم برمیخوری یکیش مثلا مدیریت این همه جدول هست درسته که همه کارها رو برنامه انجام میده ولی بعضی جاها ممکنه بخوای بعضی خرابکاری های کاربر رو دستی تصحیح کنی می دونی اونوقت باید چیکار کنی؟
شما برنامتو خوب آنالیز کن بیشتر از 10 تا جدول نیاز نخواهی داشت این سطح از پویایی رو من با چهار تا جدول پیاده سازی کردم و مشتری میتونه هر نوع مشخصاتی برای هر نوع کالا ایجاد کنه بدون هیچ مشکلی از لحاظ سرعت دسترسی هم در حد عالی هست
این دید شما اصلا یه دید مهندسی نیست

سوداگر
شنبه 03 دی 1390, 01:35 صبح
سلام
تا اونجایی که من متوجه شدم شما داری برای هر گزارش یه جدول میسازی؟! غالبا بعضی افراد به خاطر اینکه بیشتر دوست دارند با کدنویسی اینطور مشکلات رو حل کنند دست به چنین تحلیل هایی میزنند.
ببینید شما اگه با نحوه پیاده سازی رابطه چند به چند آشنا باشی دیگه نیازی نیست که به خاطر اینکه کاربر برنامه، اطلاعات امروز رو یکجا ببینه، شما هم بیایین و اطلاعات رو همونطوری که کاربر می بینه توی بانک بریزین!!!
برای جستجو چی؟
فکر Join کردن اینهمه جدول رو هم کردین؟!

hamzehshabani
یک شنبه 04 دی 1390, 09:26 صبح
قربون همتون برم ، از همتون ممنونم بخاطر این همه لطف راستش خودمم میدونستم روشم اشتباهه اما خب تنبلی میکردم ممنونم که راهنماییم کردید دارم دوباره تحلیل میکنم تا ساده و سریع به نتیجه برسم

linux
یک شنبه 04 دی 1390, 21:39 عصر
راستش در اینکه روش برنامه نویسیم مشکل داره تقریبا مطمئن هستم اما خب ببینید نظرتون چیه.

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

تمام اطلاعات باید به تفکیک روز ، ماه و سال باشه یعنی کاربر برنامه مثلا میگه گزارش ماه اردیبهشت 1390 رو میخواد و برنامه براش نشون میده حالا من برای هر روز و هر ماه و هر سال یک تیبل جدا در نظر گرفتم که درگیر کوئری و این چیزا نشم و فقط اسم تیبل رو لود کنم و بقیش توی گزارش نشون داده بشه. مشکل اصلیم اینجاست که برنامه ام روزی حداقل 3تا تیبل برای هر روز ایجاد میکنه لیست فروش لیست خرید و گزارش کل که خب بعضی روزها ممکنه اصلا این تیبل ها خالی باشه و فقط ایجاد شه.
خوب دوست عزیز، کاغذ و قلم چه مشکلی داشت که شما به کامپیوتر متوسل شدید؟
شما 3 تا جدول لازم دارید
1- محصولات
2-انبار
3- سابقه انبار