PDA

View Full Version : عوامل موثر در رشد Transacion Log دیتا بیس



hmahdavi921
چهارشنبه 12 آذر 1399, 10:59 صبح
سلام
ما برنامه ای داریم که 24 ساعته در حال کار هست . دیتابیس توسط یک اپلیکیشن تحت وب و ویندوز همزمان استفاده میشه.
کوئری هایی که بر روی دیتابیس اجرا میشه یا در پراسیجر ذخیره شدند ویا از طریق entity framework ساخته میشن . در هر یک از این حالات کوئری ها داخل using استفاده میشوند.
در برخی جداول در هر دقیق فقط رکورد درج میشود.
در برخی جداول چند رکورد داریم که از هر چند ثانیه رکوردها بروز میشوند.
10 تا کلا جدول داریم اما تعداد رکوردها چند میلیون رکورد هست.
اگر دوستان اطلاعاتی در این مورد دارید لطفا راهنمایی بفرمائید.
ممنون که وقت میزارید.

SReza1
یک شنبه 16 آذر 1399, 15:35 عصر
من مشکلت رو نفهمیدم چی بود؟ مشکلت الان چیه دقیقا؟

H.Jafari
دوشنبه 17 آذر 1399, 14:27 عصر
منم مشکلت رو نفهمیدم چی بود؟ مشکلت الان چیه دقیقا؟

hmahdavi921
سه شنبه 18 آذر 1399, 08:06 صبح
من مشکلت رو نفهمیدم چی بود؟ مشکلت الان چیه دقیقا؟
مشکل اصلی رشد سریع فایل Transacion Log هست. به طوریکه در یک هفته از یک مگابایت میرسه به 8 گیگابایت و حتی بیشتر

رامین مرادی
پنج شنبه 27 آذر 1399, 09:25 صبح
میتونید دیتابیستون رو به صورت simple بزارید و این مانع رشد زیاد لاگتون میشه. هربار که فول بکاپ گرفته میشه همون لاگ نگهداشته میشه. یا اینکه دیتابیستون رو بزارید رو فول بکاپ اون موقع هربار که بکاپ گرفته میشه لاگ های جدید میره جای لاگ هایی که تعیین تکلیف شدن قرار میگیره و خیلی تو حجم لاگ موثر هست. البته به شرطی که یه بار فول بکاپ گرفته باشید.
این لینک میتونه کمکتون کنه
http://iransql.com/%D8%B1%D8%B4%D8%AF-%D8%A8%DB%8C-%D8%B1%D9%88%DB%8C%D9%87-%D9%84%D8%A7%DA%AF-%D9%81%D8%A7%DB%8C%D9%84/

hmahdavi921
شنبه 29 آذر 1399, 08:14 صبح
میتونید دیتابیستون رو به صورت simple بزارید و این مانع رشد زیاد لاگتون میشه. هربار که فول بکاپ گرفته میشه همون لاگ نگهداشته میشه. یا اینکه دیتابیستون رو بزارید رو فول بکاپ اون موقع هربار که بکاپ گرفته میشه لاگ های جدید میره جای لاگ هایی که تعیین تکلیف شدن قرار میگیره و خیلی تو حجم لاگ موثر هست. البته به شرطی که یه بار فول بکاپ گرفته باشید.
این لینک میتونه کمکتون کنه
http://iransql.com/%D8%B1%D8%B4%D8%AF-%D8%A8%DB%8C-%D8%B1%D9%88%DB%8C%D9%87-%D9%84%D8%A7%DA%AF-%D9%81%D8%A7%DB%8C%D9%84/
به صورت روزانه فول بک آپ گرفته میشه و recovery model روی simple هست اما گاها بازم فایل لاگ رشد میکنه.
به خاطر همین دنبال دلایل رشد فایل هستم.

رامین مرادی
شنبه 29 آذر 1399, 11:04 صبح
به صورت روزانه فول بک آپ گرفته میشه و recovery model روی simple هست اما گاها بازم فایل لاگ رشد میکنه.
به خاطر همین دنبال دلایل رشد فایل هستم.
یه اتفاق خیلی بدی که گاها ما برنامه نویسها مرتکب میشیم اینه که مثلا یه فیلد رو کلا از جدول حذف میکنیم یا از این قبیل اتفاقات. این عمل باعث میشه اطلاعات جدول در یه جدول تمپ یه بار ذخیره بشه و دوباره ستون ها در جدول قبلی اضافه و اطلاعات برگرده حین این عمل طبق معمول تراکنش تو فایل لاگ ذخیره میشه و برحسب همین کار حجم لاگتون افزایش پیدا میکنه. یا مثلا دستور آپدیت دسته جمعی میزنید و در آخر این بروزرسانی ناموفق میشه و کل عملیاتتون برمیگرده به حالت قبل. این مورد هم لاگ زیادی ایجاد میکنه. یا حذف رکوردی که به عنوان کلید خارجی در یه جدول دیگه هست و جداول دیگه هم برحسب این مورد حذفی باید تغییرات زیادی متحمل بشه.
در صورت امکان نتیجه این دستور رو اینجا قرار بدید





USE AdventureWorks2017
GO
SELECTname , filename , size / 128 Size_MB , FILEPROPERTY(name,'SpaceUsed') / 128 SpaceUsed_MB
FROM sys.sysfiles
WHEREright(filename,4) = '.ldf'



نام دیتابیس رو تو خط اول تغییر بدید