PDA

View Full Version : محدود کردن حجم دیتا بیس



scallop_000
سه شنبه 09 خرداد 1391, 09:57 صبح
سلام
از دوستان کسی میدونه چطور میشه حجم دیتا بیس رو محدود کرد، طوری که اگه حجمش به یه حدی رسید رکوردهای قدیمی رو از بین ببره و رکورد جدید ثبت کنه ؟

یا بازه ی زمانی تعریف کرد، مثلا رکوردهایی که 1 ماه از ثبتشون میگذره رو با رکوردهای جدید replace کنه ؟

حمیدرضاصادقیان
سه شنبه 09 خرداد 1391, 13:42 عصر
سلام.
اینکار مقدور نیست.
شما میتونید حجم رو محدود کنید که دیگه ثبت نکنه که وقتی خطا داد خودتون رکوردهای قدیمی رو حذف کنید مجددا شروع به ثبت رکورد کنید.

scallop_000
سه شنبه 09 خرداد 1391, 13:56 عصر
نمیشه job تعریف کرد ؟ که بیاد رکوردهای بالای 30 روزو حذف کنه ؟

یه کدی پیدا کردم ولی نتونستم ازش استفاده کنم :ناراحت:


Step one Truncate Log File
BACKUP LOG ISA WITH TRUNCATE_ONLY

Step two Remove old records
Delete from WebProxyLog where (CURRENT_TIMESTAMP - Logdate) > 30

Step three Truncate Log File
BACKUP LOG ISA WITH TRUNCATE_ONLY.

حمیدرضاصادقیان
چهارشنبه 10 خرداد 1391, 07:25 صبح
یک راه راحتتر این هست که یک sp بنویسید و داخل برنامه اونو صدا بزنید. یا اون SP رو داخل Job قرار بدید که هرروز اجرا بشه و داخل اون SP اون مقادیری که میخواهید رو حذف کنید.

scallop_000
چهارشنبه 10 خرداد 1391, 09:30 صبح
این دیتابیس مربوط به لاگ های سرور ISA هستش، واسه همین داخل کد نمیتونم کاری انجام بدم، از اونجایی که حجم دیتا بیسش خیلی زیاد میشه باید کاری کنم که رکورد های نهایتا 1 ماه رو نگه داره، ممنون میشم اگه کمکم کنید

حمیدرضاصادقیان
چهارشنبه 10 خرداد 1391, 14:22 عصر
اون کدی که شما نوشتید ، به خاطر اینکه خودش یک فیلد تاریخ داره میتونه باتوجه به اون اینکارو بکنه.شما هم تقریبا باید همینکارو بکنی.عرض کردم هیچ روشی نیست که به صورت خودکار بشه داده های بیشتر از یک ماه رو حذف کرد.
شما باید یک SP بنویسید که از جدول مورد نظرتون براساس تاریخ بیشتر از یک ماه رو حذف کنه. بعد اون SP رو داخل Job اجرا کنید.