编辑:感谢所有提示。与此同时,问题已经解决了。 我不知道为什么,但它现在有效。奇怪的...
我有一个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分钟运行一次,并强制Log在每次执行时增长500MB。过程成功完成后,不会清除日志。因此,经过一段时间后,Log真的非常大并影响性能。
任何想法我能做什么?为什么没有清除日志?
答案 0 :(得分:1)
我想说我们需要更多信息。如果你有一个非生产环境镜像生产运行这些测试,但无论如何:
运行DBCC SQLPERF(logspace)以查看当前日志状态 运行(在事务内)您在包装器脚本中列出的每个proc。 承诺 重新运行DBCC SQLPERF(logspace)
在其中一个调用之后,日志文件大小是否会跳转?如果是这样,那么就有一个话题可以提出你的开发人员。
这也可能有所帮助: https://www.mssqltips.com/sqlservertip/1178/monitoring-sql-server-database-transaction-log-space/