Die Umbraco-Datenbank wächst schnell, wenn Contour-Formulare verwendet werden
Symptom
Die Umbraco-Datenbank wächst stetig, weil mehrstufige Contour-Formulare von Besuchern oder Spammern nicht abgeschlossen werden und im Zustand PartiallySubmitted verbleiben.
Ursache und Lösung
Nicht abgeschlossene Formulardaten sammeln sich in den Contour-Tabellen UFRecords, UFRecordsXml und UFRecordData* an und können einen großen Teil der Datenbankgröße ausmachen. Lösung: unvollständige Formulardaten regelmäßig per Datenbank-Skript entfernen.
-- Löscht Contour-Datensätze eines Formulars, die älter als @MaxAge Tage sind.
-- @FormState: 0=Opened 1=Resumed 2=PartiallySubmitted 3=Submitted 4=Approved 5=Deleted
CREATE PROCEDURE [dbo].[DeleteContourRecords]
@FormId UNIQUEIDENTIFIER,
@MaxAge INT = 50,
@FormState INT = 2,
@Limit INT = 50
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION
CREATE TABLE #records (id UNIQUEIDENTIFIER)
INSERT INTO #records
SELECT TOP(@Limit) u.Id FROM UFRecords u
WHERE updated < GETDATE()-@MaxAge AND u.State = @FormState AND u.Form = @FormId
ORDER BY u.updated
DELETE FROM UFRecords WHERE id IN (SELECT id FROM #records)
DELETE FROM UFRecordsXml WHERE id IN (SELECT id FROM #records)
DROP TABLE #records
COMMIT
END
Als Stored Procedure aufgerufen, lassen sich damit z. B. PartiallySubmitted-Datensätze löschen, die älter als 180 Tage sind:
EXECUTE DeleteContourRecords '8B045F53-352A-4708-9A36-0DC8D67FD1AB', 180, 2, 100
Unterstützung von m.a.x. it
Bei diesem Thema unterstützt Sie die individuelle Softwareentwicklung von m.a.x. it.
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
