PDA

View Full Version : افزايش سرعت، تقسيم يك جدول به چند جدول،



DlphIran
پنج شنبه 26 شهریور 1388, 16:36 عصر
سلام

من يه جدول 80فيلدي دارم كه قراره حداقل يكصد هزار ركورد رو داشته باشه ،براي افزايش سرعت مي خوام تقسيمش كنم به 4 جدول يا بيشتر
آيا در كار با تلفيق جداول مشكلي وجود داره يعني معايب هم داره اين كار يا نه ؟

در ضمن من از sqlserver & adoquery استفاده ميكنم

merced
پنج شنبه 26 شهریور 1388, 22:23 عصر
تقسيم كردن جدول ؟؟‌بر چه اساس. اين بستگي داره به ساختار سيستم. شما بايد مباحث مربوط به نرمال سازي رو مطالعه كني

MaryamEsmailzadeh
جمعه 27 شهریور 1388, 00:45 صبح
سلام دوست عزیز
سوال شما کاملا منطقی و از نظر مهندسی نرم افزار دارای راه حل می باشد به نامfragmentation
در پاسخ به سوال شما به عقیده من جدولی با 80 فیلد از نظر طراحی و مهندسی نرم افزار
جدول ایده آلی یا بهتر بگم جدول مناسبی نیست حالا اگر تعداد رکورد ها هم قراره خیلی زیاد باشه دیگه بدتر.
شما می تونید جدولتون رو به شرطی که روابط افزونه(فیلد های تکراری وذخیره چند باره مقادیر)نداشته باشید به چند تا زیر جدول با تعداد فیلد کمتر تقسیم کنید ولی باید برای اینکه بتونید از این چند تا زیر جدولها (که هر کدام در عین حال جدول هستند) به جدول اول برسید باید در هر زیر جدول یک فیلد مثلا T1 داشته باشید تا بتونید به وسیله این فیلد T1 در زیر جدول 1 ,T2 در زیر جدول2 و.....عمل Join رو انجام بدید

در مورد تقسیم جدول هم مجددا تاکید می کنم که کار صحیحی هست و به راحتی قابل پیاده سازی است و نرم افزارتون هم بر اساس اصول مهندسی خواهد بود

موفق باشید :تشویق:

bootshow
جمعه 27 شهریور 1388, 16:51 عصر
اینکار به نظر من خیلی مفیده.توی برنامه ام دو تا جدول دارم یکیش اطلاعات کارمندها و دیگری عکس کارمندها.تا اونجایی که میدونم مثلا اگر بخواهیم نام یک کارمند را جستجو کنیم(بدون ایندکس) برنامه میاد مثلا 512 kb از دیتابیس را میخونه و به دنبال رکورد مورد نظر میگرده تا آخر فایل.حالا اگر جدول عکس هم با جدول اطلاعات یکی باشه در هر واکشی از دیتابیس یک رکورد را بیشتر نمیتونه بخونه در حالی که اگر دو جدول باشه در هر واکشی از فایل دیتابیس 20 رکورد خوانده میشه.
تو برنامم یک تابع به نام gotopictbl گزاشتم که هر وقت لازم باشه رکورد فعلی جدول عکس با جدول اطلاعات یکسان بشه.
تنها عیب چند جدولی پیچیدگی بیشتر برنامه نویسی و نمایش اطلاعات هست.بهترین مزیتش هم سرعت بسیار بسیار بالا در اجرا ، جستجو و کار با برنامه است.
نکته کنکوری :از نظر سرعت هم dbgrid دلفی سرعتش 10 برابر devexpress است(به همان نسبت با قابلیت کمتر)

DlphIran
شنبه 28 شهریور 1388, 08:51 صبح
ممنون دوستان . پس اينكار عيب خاص و مهمي نداره .

من فيلدهاي با حجم بسيار بالايي دارم مثلا چند فيلد 500 كاراكتري ،‌يا فيلد عكس ،كه حتما تقسيم جداول سرعت كار نرم افزار رو بالا مي بره ،‌

مهم برام اين بود كه بدونم تلفيق جداول بصورت leftيا right در آينده مشكل خاصي نداشته باشن