TSK-1975 new indices for Object_Reference Table

3 new Indices for Table Object_Reference
* IDX_OBJECT_REFERENCE_PK_ID
* IDX_OBJECT_REFERENCE_FK_TASK_ID
* IDX_OBJECT_REFERENCE_ACCESS_LIST

Fixed Default Sorting when searching or accessing ObjectReferences
This commit is contained in:
arolfes 2023-01-17 15:19:53 +01:00 committed by Mustapha Zorgati
parent 8bfb7fae95
commit a6ede02524
9 changed files with 146 additions and 0 deletions

View File

@ -436,3 +436,14 @@ CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_WORKBASKET_ID ON WORKBASKET_ACCESS_LIST
"PERM_OPEN" ASC, "PERM_READ" ASC, "ACCESS_ID"
ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS;
COMMIT WORK;
CREATE INDEX IDX_OBJECT_REFERE_PK_ID ON OBJECT_REFERENCE
(ID ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS;
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_FK_TASK_ID ON OBJECT_REFERENCE
(TASK_ID ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS;
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_ACCESS_LIST ON OBJECT_REFERENCE
(VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC, ID ASC)
ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS;
COMMIT WORK ;

View File

@ -12,3 +12,13 @@ ALTER TABLE TASKANA_SCHEMA_VERSION ALTER COLUMN ID DROP IDENTITY;
INSERT INTO TASKANA_SCHEMA_VERSION (ID, VERSION, CREATED)
VALUES (TASKANA_SCHEMA_VERSION_ID_SEQ.NEXTVAL, '5.10.0', CURRENT_TIMESTAMP);
CREATE INDEX IDX_OBJECT_REFERE_PK_ID ON OBJECT_REFERENCE
(ID ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS;
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_FK_TASK_ID ON OBJECT_REFERENCE
(TASK_ID ASC) ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS;
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_ACCESS_LIST ON OBJECT_REFERENCE
(VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC, ID ASC)
ALLOW REVERSE SCANS COLLECT SAMPLED DETAILED STATISTICS;
COMMIT WORK ;

View File

@ -365,3 +365,84 @@ CREATE SEQUENCE SCHEDULED_JOB_SEQ
MINVALUE 1
START WITH 1
INCREMENT BY 1 CACHE 10;
CREATE INDEX IDX_CLASSIFICATION_ID ON CLASSIFICATION
(ID ASC, CUSTOM_8, CUSTOM_7, CUSTOM_6, CUSTOM_5, CUSTOM_4,
CUSTOM_3, CUSTOM_2, CUSTOM_1, APPLICATION_ENTRY_POINT,
SERVICE_LEVEL, PRIORITY, DESCRIPTION, NAME, MODIFIED,
CREATED, VALID_IN_DOMAIN, DOMAIN, TYPE, CATEGORY, PARENT_KEY,
PARENT_ID, KEY);
COMMIT WORK;
CREATE INDEX IDX_CLASSIFICATION_CATEGORY ON CLASSIFICATION
(CATEGORY ASC, DOMAIN ASC, TYPE ASC, CUSTOM_1
ASC, CUSTOM_8 ASC, CUSTOM_7 ASC, CUSTOM_6 ASC,
CUSTOM_5 ASC, CUSTOM_4 ASC, CUSTOM_3 ASC, CUSTOM_2
ASC, APPLICATION_ENTRY_POINT ASC, SERVICE_LEVEL
ASC, PRIORITY ASC, DESCRIPTION ASC, NAME ASC,
CREATED ASC, VALID_IN_DOMAIN ASC, PARENT_KEY ASC, PARENT_ID
ASC, KEY ASC, ID ASC);
COMMIT WORK;
CREATE INDEX IDX_CLASSIFICATION_KEY_DOMAIN ON CLASSIFICATION
(KEY ASC, DOMAIN ASC, CUSTOM_8, CUSTOM_7, CUSTOM_6,
CUSTOM_5, CUSTOM_4, CUSTOM_3, CUSTOM_2, CUSTOM_1,
APPLICATION_ENTRY_POINT, SERVICE_LEVEL, PRIORITY,
DESCRIPTION, NAME, CREATED, VALID_IN_DOMAIN,
TYPE, CATEGORY, PARENT_KEY, PARENT_ID, ID);
COMMIT WORK;
CREATE INDEX IDX_TASK_WORKBASKET_KEY_DOMAIN ON TASK
(WORKBASKET_KEY ASC, DOMAIN DESC);
COMMIT WORK ;
-- function indecies are not supported
-- CREATE INDEX IDX_TASK_LOWER_POR_VALUE ON TASK
-- (LOWER(POR_VALUE) ASC, WORKBASKET_ID ASC);
-- COMMIT WORK ;
CREATE INDEX IDX_TASK_POR_VALUE ON TASK
(POR_VALUE ASC, WORKBASKET_ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_ATTACHMENT_TASK_ID ON ATTACHMENT
(TASK_ID ASC, RECEIVED ASC, CLASSIFICATION_ID
ASC, CLASSIFICATION_KEY ASC, MODIFIED ASC, CREATED
ASC, ID ASC);
COMMIT WORK;
CREATE INDEX IDX_WORKBASKET_ID ON WORKBASKET
(ID ASC, ORG_LEVEL_4, ORG_LEVEL_3, ORG_LEVEL_2,
ORG_LEVEL_1, OWNER, DESCRIPTION, TYPE, DOMAIN, NAME, KEY);
COMMIT WORK;
CREATE INDEX IDX_WORKBASKET_KEY_DOMAIN ON WORKBASKET
(KEY ASC, DOMAIN ASC, ORG_LEVEL_4,
ORG_LEVEL_3, ORG_LEVEL_2, ORG_LEVEL_1, CUSTOM_4,
CUSTOM_3, CUSTOM_2, CUSTOM_1, OWNER, DESCRIPTION,
TYPE, NAME, MODIFIED, CREATED, ID);
COMMIT WORK;
CREATE INDEX IDX_WORKBASKET_KEY_DOMAIN_ID ON WORKBASKET
(KEY ASC, DOMAIN ASC, ID);
COMMIT WORK;
CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_ACCESS_ID ON WORKBASKET_ACCESS_LIST
(ACCESS_ID ASC, WORKBASKET_ID ASC, PERM_READ ASC);
COMMIT WORK;
CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_WORKBASKET_ID ON WORKBASKET_ACCESS_LIST
(WORKBASKET_ID ASC, PERM_CUSTOM_12 ASC, PERM_CUSTOM_11
ASC, PERM_CUSTOM_10 ASC, PERM_CUSTOM_9 ASC, PERM_CUSTOM_8
ASC, PERM_CUSTOM_7 ASC, PERM_CUSTOM_6 ASC, PERM_CUSTOM_5
ASC, PERM_CUSTOM_4 ASC, PERM_CUSTOM_3 ASC, PERM_CUSTOM_2
ASC, PERM_CUSTOM_1 ASC, PERM_DISTRIBUTE ASC, PERM_TRANSFER
ASC, PERM_APPEND ASC, PERM_OPEN ASC, PERM_READ
ASC, ACCESS_ID ASC);
COMMIT WORK;
CREATE INDEX IDX_OBJECT_REFERE_PK_ID ON OBJECT_REFERENCE
(ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_FK_TASK_ID ON OBJECT_REFERENCE
(TASK_ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_ACCESS_LIST ON OBJECT_REFERENCE
(VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC, ID ASC);
COMMIT WORK ;

View File

@ -12,3 +12,13 @@ ALTER TABLE TASKANA_SCHEMA_VERSION ALTER COLUMN ID DROP IDENTITY;
-- The VERSION value must be equal or higher then the value of TaskanaEngineImpl.MINIMAL_TASKANA_SCHEMA_VERSION
INSERT INTO TASKANA_SCHEMA_VERSION (ID, VERSION, CREATED)
VALUES (nextval('TASKANA_SCHEMA_VERSION_ID_SEQ'), '5.10.0', CURRENT_TIMESTAMP);
CREATE INDEX IDX_OBJECT_REFERE_PK_ID ON OBJECT_REFERENCE
(ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_FK_TASK_ID ON OBJECT_REFERENCE
(TASK_ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_ACCESS_LIST ON OBJECT_REFERENCE
(VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC, ID ASC);
COMMIT WORK ;

View File

@ -435,3 +435,13 @@ COMMIT WORK;
ASC, PERM_APPEND ASC, PERM_OPEN ASC, PERM_READ
ASC, ACCESS_ID ASC);
COMMIT WORK;
CREATE INDEX IDX_OBJECT_REFERE_PK_ID ON OBJECT_REFERENCE
(ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_FK_TASK_ID ON OBJECT_REFERENCE
(TASK_ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_ACCESS_LIST ON OBJECT_REFERENCE
(VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC, ID ASC);
COMMIT WORK ;

View File

@ -433,3 +433,12 @@ CREATE INDEX IDX_WORKBASKET_ACCESS_LIST_WORKBASKET_ID ON WORKBASKET_ACCESS_LIST
ASC, ACCESS_ID ASC);
COMMIT WORK;
CREATE INDEX IDX_OBJECT_REFERE_PK_ID ON OBJECT_REFERENCE
(ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_FK_TASK_ID ON OBJECT_REFERENCE
(TASK_ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_ACCESS_LIST ON OBJECT_REFERENCE
(VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC, ID ASC);
COMMIT WORK ;

View File

@ -13,3 +13,13 @@ ALTER TABLE TASKANA_SCHEMA_VERSION ALTER COLUMN ID DROP IDENTITY;
-- The VERSION value must be equal or higher then the value of TaskanaEngineImpl.MINIMAL_TASKANA_SCHEMA_VERSION
INSERT INTO TASKANA_SCHEMA_VERSION (ID, VERSION, CREATED)
VALUES (nextval('TASKANA_SCHEMA_VERSION_ID_SEQ'), '5.10.0', CURRENT_TIMESTAMP);
CREATE INDEX IDX_OBJECT_REFERE_PK_ID ON OBJECT_REFERENCE
(ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_FK_TASK_ID ON OBJECT_REFERENCE
(TASK_ID ASC);
COMMIT WORK ;
CREATE INDEX IDX_OBJECT_REFERE_ACCESS_LIST ON OBJECT_REFERENCE
(VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC, ID ASC);
COMMIT WORK ;

View File

@ -20,6 +20,7 @@ public interface ObjectReferenceMapper {
"<script>SELECT ID, COMPANY, SYSTEM, SYSTEM_INSTANCE, TYPE, VALUE "
+ "FROM OBJECT_REFERENCE "
+ "WHERE ID = #{id}"
+ "ORDER BY VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC"
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@Result(property = "id", column = "ID")
@ -34,6 +35,7 @@ public interface ObjectReferenceMapper {
"<script>SELECT ID, TASK_ID, COMPANY, SYSTEM, SYSTEM_INSTANCE, TYPE, VALUE "
+ "FROM OBJECT_REFERENCE "
+ "WHERE TASK_ID = #{taskId}"
+ "ORDER BY VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC"
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@Result(property = "id", column = "ID")
@ -58,6 +60,7 @@ public interface ObjectReferenceMapper {
+ "</otherwise>"
+ "</choose>"
+ "</where>"
+ "ORDER BY VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC"
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@Result(property = "id", column = "ID")
@ -78,6 +81,7 @@ public interface ObjectReferenceMapper {
+ "AND SYSTEM_INSTANCE = #{objectReference.systemInstance} "
+ "AND TYPE = #{objectReference.type} "
+ "AND VALUE = #{objectReference.value} "
+ "ORDER BY VALUE ASC, TYPE ASC, SYSTEM_INSTANCE ASC, SYSTEM ASC, COMPANY ASC"
+ "<if test=\"_databaseId == 'db2'\">with UR </if> "
+ "</script>")
@Result(property = "id", column = "ID")

View File

@ -18,6 +18,7 @@ public class ObjectReferenceQuerySqlProvider {
+ OPENING_WHERE_TAG
+ commonObjectReferenceWhereStatement()
+ CLOSING_WHERE_TAG
+ "ORDER BY COMPANY ASC, SYSTEM ASC, SYSTEM_INSTANCE ASC, TYPE ASC, VALUE ASC"
+ DB2_WITH_UR
+ CLOSING_SCRIPT_TAG;
}