Skip to content

Commit

Permalink
Add missing audit table indices, minor SQL changes
Browse files Browse the repository at this point in the history
Two missing indices caused poor audit cleanup performance
on SQL Server and probably other databases (except MySQL),
see MID-4412.

This commit implements also some other minor SQL script fixes.
  • Loading branch information
mederly committed Jun 7, 2018
1 parent 3fe0fb1 commit 0d00b4e
Show file tree
Hide file tree
Showing 20 changed files with 266 additions and 16 deletions.
10 changes: 9 additions & 1 deletion config/sql/_all/h2-3.8-all.sql
Expand Up @@ -385,7 +385,7 @@ CREATE TABLE m_object_ext_string (
);
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
);
CREATE TABLE m_object_text_info (
owner_oid VARCHAR(36) NOT NULL,
Expand Down Expand Up @@ -777,16 +777,24 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iTimestampValue
ON m_audit_event (timestampValue);
CREATE INDEX iChangedItemPath
ON m_audit_item (changedItemPath);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iAuditPropValRecordId
ON m_audit_prop_value (record_id);
CREATE INDEX iAuditRefValRecordId
ON m_audit_ref_value (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);

CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/_all/mysql-3.8-all-utf8mb4.sql
Expand Up @@ -482,7 +482,7 @@ CREATE TABLE m_object_ext_string (
ENGINE = InnoDB;
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
)
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_bin
Expand Down Expand Up @@ -985,16 +985,23 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iTimestampValue
ON m_audit_event (timestampValue);
CREATE INDEX iChangedItemPath
ON m_audit_item (changedItemPath);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iAuditPropValRecordId
ON m_audit_prop_value (record_id);
CREATE INDEX iAuditRefValRecordId
ON m_audit_ref_value (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/_all/mysql-3.8-all.sql
Expand Up @@ -482,7 +482,7 @@ CREATE TABLE m_object_ext_string (
ENGINE = InnoDB;
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
)
DEFAULT CHARACTER SET utf8
COLLATE utf8_bin
Expand Down Expand Up @@ -985,16 +985,23 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iTimestampValue
ON m_audit_event (timestampValue);
CREATE INDEX iChangedItemPath
ON m_audit_item (changedItemPath);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iAuditPropValRecordId
ON m_audit_prop_value (record_id);
CREATE INDEX iAuditRefValRecordId
ON m_audit_ref_value (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/_all/mysql-upgrade-3.7-3.8-utf8mb4.sql
Expand Up @@ -485,7 +485,7 @@ CREATE TABLE m_object_ext_string (
ENGINE = InnoDB;
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
)
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_bin
Expand Down Expand Up @@ -988,8 +988,15 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/_all/mysql-upgrade-3.7-3.8.sql
Expand Up @@ -485,7 +485,7 @@ CREATE TABLE m_object_ext_string (
ENGINE = InnoDB;
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
)
DEFAULT CHARACTER SET utf8
COLLATE utf8_bin
Expand Down Expand Up @@ -988,8 +988,15 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/_all/oracle-3.8-all.sql
Expand Up @@ -381,7 +381,7 @@ CREATE TABLE m_object_ext_string (
) INITRANS 30;
CREATE TABLE m_object_subtype (
object_oid VARCHAR2(36 CHAR) NOT NULL,
subType VARCHAR2(255 CHAR)
subtype VARCHAR2(255 CHAR)
) INITRANS 30;
CREATE TABLE m_object_text_info (
owner_oid VARCHAR2(36 CHAR) NOT NULL,
Expand Down Expand Up @@ -773,16 +773,23 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue) INITRANS 30;
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid) INITRANS 30;
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id) INITRANS 30;
CREATE INDEX iTimestampValue
ON m_audit_event (timestampValue) INITRANS 30;
CREATE INDEX iChangedItemPath
ON m_audit_item (changedItemPath) INITRANS 30;
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id) INITRANS 30;
CREATE INDEX iAuditPropValRecordId
ON m_audit_prop_value (record_id) INITRANS 30;
CREATE INDEX iAuditRefValRecordId
ON m_audit_ref_value (record_id) INITRANS 30;
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid) INITRANS 30;

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig) INITRANS 30;
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/_all/oracle-upgrade-3.7-3.8.sql
Expand Up @@ -515,7 +515,7 @@ CREATE TABLE m_object_ext_string (
) INITRANS 30;
CREATE TABLE m_object_subtype (
object_oid VARCHAR2(36 CHAR) NOT NULL,
subType VARCHAR2(255 CHAR)
subtype VARCHAR2(255 CHAR)
) INITRANS 30;
CREATE TABLE m_object_text_info (
owner_oid VARCHAR2(36 CHAR) NOT NULL,
Expand Down Expand Up @@ -907,8 +907,15 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue) INITRANS 30;
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid) INITRANS 30;
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id) INITRANS 30;
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id) INITRANS 30;
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid) INITRANS 30;

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig) INITRANS 30;
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/_all/postgresql-3.8-all.sql
Expand Up @@ -381,7 +381,7 @@ CREATE TABLE m_object_ext_string (
);
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
);
CREATE TABLE m_object_text_info (
owner_oid VARCHAR(36) NOT NULL,
Expand Down Expand Up @@ -773,16 +773,23 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iTimestampValue
ON m_audit_event (timestampValue);
CREATE INDEX iChangedItemPath
ON m_audit_item (changedItemPath);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iAuditPropValRecordId
ON m_audit_prop_value (record_id);
CREATE INDEX iAuditRefValRecordId
ON m_audit_ref_value (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE IF EXISTS m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/_all/postgresql-upgrade-3.7-3.8.sql
Expand Up @@ -414,7 +414,7 @@ CREATE TABLE m_object_ext_string (
);
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
);
CREATE TABLE m_object_text_info (
owner_oid VARCHAR(36) NOT NULL,
Expand Down Expand Up @@ -806,8 +806,15 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);
ALTER TABLE IF EXISTS m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
7 changes: 7 additions & 0 deletions config/sql/_all/sqlserver-3.8-all.sql
Expand Up @@ -773,16 +773,23 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iTimestampValue
ON m_audit_event (timestampValue);
CREATE INDEX iChangedItemPath
ON m_audit_item (changedItemPath);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iAuditPropValRecordId
ON m_audit_prop_value (record_id);
CREATE INDEX iAuditRefValRecordId
ON m_audit_ref_value (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
7 changes: 7 additions & 0 deletions config/sql/_all/sqlserver-upgrade-3.7-3.8.sql
Expand Up @@ -905,8 +905,15 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
10 changes: 9 additions & 1 deletion config/sql/midpoint/3.8/h2/h2-3.8.sql
Expand Up @@ -381,7 +381,7 @@ CREATE TABLE m_object_ext_string (
);
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
);
CREATE TABLE m_object_text_info (
owner_oid VARCHAR(36) NOT NULL,
Expand Down Expand Up @@ -773,16 +773,24 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iTimestampValue
ON m_audit_event (timestampValue);
CREATE INDEX iChangedItemPath
ON m_audit_item (changedItemPath);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iAuditPropValRecordId
ON m_audit_prop_value (record_id);
CREATE INDEX iAuditRefValRecordId
ON m_audit_ref_value (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);

CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down
9 changes: 8 additions & 1 deletion config/sql/midpoint/3.8/mysql/mysql-3.8-utf8mb4.sql
Expand Up @@ -480,7 +480,7 @@ CREATE TABLE m_object_ext_string (
ENGINE = InnoDB;
CREATE TABLE m_object_subtype (
object_oid VARCHAR(36) CHARSET utf8 COLLATE utf8_bin NOT NULL,
subType VARCHAR(255)
subtype VARCHAR(255)
)
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_bin
Expand Down Expand Up @@ -983,16 +983,23 @@ CREATE INDEX iAExtensionString
ON m_assignment_ext_string (stringValue);
CREATE INDEX iAssignmentReferenceTargetOid
ON m_assignment_reference (targetOid);
CREATE INDEX iAuditDeltaRecordId
ON m_audit_delta (record_id);
CREATE INDEX iTimestampValue
ON m_audit_event (timestampValue);
CREATE INDEX iChangedItemPath
ON m_audit_item (changedItemPath);
CREATE INDEX iAuditItemRecordId
ON m_audit_item (record_id);
CREATE INDEX iAuditPropValRecordId
ON m_audit_prop_value (record_id);
CREATE INDEX iAuditRefValRecordId
ON m_audit_ref_value (record_id);
CREATE INDEX iCaseWorkItemRefTargetOid
ON m_case_wi_reference (targetOid);

ALTER TABLE m_ext_item
ADD CONSTRAINT iExtItemDefinition UNIQUE (itemName, itemType, kind);
CREATE INDEX iObjectNameOrig
ON m_object (name_orig);
CREATE INDEX iObjectNameNorm
Expand Down

0 comments on commit 0d00b4e

Please sign in to comment.