編輯:感謝您的所有提示。同時,這個問題已經解決了。 我不知道爲什麼,但它現在有效。奇怪...MSSQL數據庫:日誌沒有清除後提交交易
我有一個MSSQL數據庫這是恢復模式簡單並有此存儲過程:
BEGIN TRY
BEGIN TRANSACTION;
exec prcDownSyncOrganisationalUnit;
exec prcDownSyncOrganisationalUnitPeriod;
exec prcDownSyncPerson;
exec prcUpSyncPersonLogin;
exec prcDownSyncOrganisationalUnitPerson;
exec prcDownSyncAddress;
exec prcDownSyncLocation;
exec prcDownSyncLocationAddress;
exec prcDownSyncOrganisationalUnitLocation;
exec prcDownSyncTour;
exec prcDownSyncDisplayType;
exec prcDownSyncOperator;
exec prcDownSyncList;
exec prcDownSyncListEntry;
exec prcDownSyncQuestionnaire;
exec prcDownSyncOrganisationalUnitQuestionnaire;
exec prcDownSyncQuestionnaireGroup;
exec prcDownSyncQuestionnaireGroupQuestion;
exec prcDownSyncExpressionGroup;
exec prcDownSyncExpressionGroupMember;
exec prcDownSyncExpressionAssignment;
exec prcDownSyncQuestionnaireGroupQuestionExpression;
exec prcDownSyncQuestionnaireGroupQuestionMapping;
exec prcBiSyncAppointment;
exec prcBiSyncAppointmentStatus;
exec prcDownSyncAppointmentStatusEvent;
exec prcDownSyncAppointmentAssignment;
exec prcBiSyncAppointmentQuestionnaireResult;
exec prcBiSyncAppointmentQuestionnaireResultAnswer;
exec prcBiSyncAppointmentQuestionnaireResultAnswerHistory;
--exec prcBiSyncDocument;
exec prcDownSyncAppointmentXmlValue;
exec prcDownSyncPromoter;
--exec prcRemoveDeletedData;
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
EXEC prcErrorRaise;
THROW;
END CATCH
這個程序運行,每5分鐘,強制日誌由增長500MB每一次執行。該過程成功完成後,日誌不會被清除。所以在一段時間之後,Log真的很大並影響性能。
任何想法我可以做什麼?爲什麼日誌不清除?
嘗試並強制日誌截斷了檢查點 – RegBes
日誌文件不自動收縮自己。擴展日誌文件是一項昂貴的操作。如果這種情況經常發生,文件將會再次增長,所以你不會通過收縮日誌文件來幫助解決問題。但是日誌文件的大小如何影響性能? –
@SeanLange因爲每次執行日誌文件都會增加500MB。一天後,磁盤已滿,我認爲整個磁盤對性能有影響(我應該在開頭提到)。所以Log中有一些數據永遠不會被清除。但在簡單恢復模式下,應在交易完成後進行。 – OPunktSchmidt