編集:ありがとう、すべてのヒント。その間、問題は解決しました。 なぜか分かりませんが、今は動作します。奇妙な...MSSQLデータベース:COMMIT TRANSACTIONの後にログがクリアされない
私はシンプル復旧モードにあり、このストアドプロシージャがある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分ごとに実行され、ことにより、500メガバイトの成長にログを強制的にすべての実行。プロシージャーが正常に完了すると、ログはクリアされません。だから、しばらくすると、Logは本当に本当に大きく、パフォーマンスに影響します。
私は何ができますか?ログがクリアされないのはなぜですか?
しようとすると、自動的に自分自身を縮小しないチェックポイント – RegBes
ログファイルにログの切り捨てを強制します。ログファイルを展開するのは高価な操作です。これが日常的に起こるようなら、ファイルは再び成長するので、ログファイルを縮小することによって何かを支援するつもりはありません。しかし、ログファイルのサイズはどのようにパフォーマンスに影響しますか? –
@SeanLangeすべての実行時に、ログファイルが500MB増えているためです。 1日後、ディスクは一杯になり、ディスク全体がパフォーマンスに影響を与えると思います(私は最初にそれを述べておきました)。したがって、決してクリアされないログにはいくつかのデータがあります。しかし、回復モードでこれは、トランザクションが完了した後に起こるはずです。 – OPunktSchmidt