PDA

View Full Version : راهنمایی در رابطه با طراحی دیتابیس شرکت پردازش گر مالی



hercool
چهارشنبه 09 مهر 1393, 17:56 عصر
سلام دوستان
من به راهنمایتون نیاز دارم
من یک دیتابیس دارم که تا به الان جدول هاش تعداد رکورد خیلی زیادی داره و بعد از اینکه اطلاعات کامل بخواد واردش بشه حجمش تقریبا بیشتر میشه و هر روز هم بیشتر میشه
بزرگترین جدولم از لحاظ حجم و رکورد 185 میلیون رکورد داره و دو تا جدول 40 میلیونی و 4 تا جدول هم زیر پنج میلیون رکورد
بخاطر کمبود زمان و منابع و همچنین اطلاعات ناقص من مجبور شدم اطلاعات را داخل دیتابیس بریزم تا این اطلاعات و منابع از دست نره تا بعدا یک دیتابیس خوب با اندیس گذاری و شرایط نگه داری خوب براش طراحی و ایجاد بشه
تا جایی که تونستم سعی کردم از افزونگی جلوگیری کنم
مشکل فعلی این هست که جداول دیتابیس ایندکس گذاری نشدن و سرعت خواندن بسیار پایین است و همچنین منابع سیستمی زیادی رو در هر بار پرس و جو از دیتابیس از من میگیره تقریبا سیستم شکه میشه :لبخند:
برای یک پرس و جویی که 1400 بار اجرا میشه تقریبا هر اجرا 4:46 ثانیه زمان میبره که از جدول بزرگه پرس و جو انجام بشه که عدد بزرگ 6244 دقیقه وقت میگیره که اصلا خوب نیست(فاجعه هست)
حالا می خوام ایندکس گذاری کنم و احتمال میدم که اگر بخوام ایندکس گذاری کنم به داده اسیب برسه بنابراین می خوام از جدول بزرگه رونویسی کنم روی جدولی با همون ساختار (این قسمت هم بخاطر حجم بالا برام سواله که چطور این کار را باید اصلا انجام بدم که به اطلاعات اسیبی وارد نشه)

اما قبلش یه سوال اساسی برام پیش اومده برای جدولی(بزرگه) که هر روز بهش 300 تا 500 هزار رکورد در روز وارد میشه و اطلاعات بر اساس تاریخ و کد شرکت ها وارد میشه دیتابیس و جدول را به چه شکلی ایجاد و مدیریت کنم تا بهترین بهره را از منابع سیستمی و زمان ببرم

ایا این حجم اطلاعات در یک جدول درست است؟
ایا می توان بر اساس یک فیلد مشخص( تاریخ یا کد شرکت )جداول را به چند جدول تقسیم کرد؟
ایا می توان بجای ان از چند دیتابیس استفاده کرد؟
مدیریت JOB ها و بک هاپ ها هم باید در نظر گرفته شود
حجم فعلی کل این دیتابیس 30 گیگ هست و تمام اطلاعات مهم و به سختی تهیه شده و ارزش مالی و معنوی زیادی داره

ممنون میشم در این زمینه راهنماییم کنید

hercool
شنبه 12 مهر 1393, 21:32 عصر
سلام دوستان
من برای اشتباهات طراحی قبلیم یک جدول از جدول بزرگه ساختم و ایندکس گذاری و pk گذاشتم و شروع به انتقال 189 میلیون رکورد کردم
اما بعد از مدتی فایل لاگ بسیار بزرگ شد نزدیک 25 گیگ و من سعی کردم بیشتر فضا ایجاد کنم اما کار را خرابتر کردم مثل shrink کردن زمانی که داشت اطلاعات جابجا میشد
و با چنین پیام خطایی روبرو شدم

Could not allocate space for object 'dbo.bestcopy'.'PK_best1' in database 'tse' because
the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the
filegroup,
adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
ممنون میشم راهنماییم کنید که چکار کنم
تمام انتقالات و کپی ها خراب شد و من موندمو 25 گیگ فایل لاگ بیخود که باید transication log کنم

baran92
شنبه 06 دی 1393, 08:04 صبح
سلام
بر روی دیتابیس راست کلیک کن Properties را انتخاب کنید در قسمت files مقدار initial size را افزایش دهید
در قسمت option reciovery model را در حالت simple بذارید تغییرات را ذخیره کنید و سپس دیتابیس را یکبار online و offline کنید و سپس دیتابیس را shrink کنید.
جهت مدیریت دیتابیس ها لینک زیر رامشاهده نمائید:
http://serverscript.ir/?product=%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%A8%D9%87%DB%8C%D9%86%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D8%AF%D8%B1-%D8%B3%D8%B1%D9%88%D8%B1-%D9%88%DB%8C