• 0
    • We collect Jira feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

      Problem Definition

      Table columnlayoutitem is used for storing Fields schema configs, example:

      select * from columnlayoutitem;
        id   | columnlayout |  fieldidentifier   | horizontalposition
      -------+--------------+--------------------+--------------------
       10300 |        10000 | issuetype          |                  0
       10301 |        10000 | issuekey           |                  1
       10302 |        10000 | summary            |                  2
       10303 |        10000 | assignee           |                  3
       10304 |        10000 | reporter           |                  4
       ...
      

      Table config:

      \d columnlayoutitem
                   Table "public.columnlayoutitem"
             Column       |          Type          | Modifiers
      --------------------+------------------------+-----------
       id                 | numeric(18,0)          | not null
       columnlayout       | numeric(18,0)          |
       fieldidentifier    | character varying(255) |
       horizontalposition | numeric(18,0)          |
      Indexes:
          "pk_columnlayoutitem" PRIMARY KEY, btree (id)
          "idx_cli_fieldidentifier" btree (fieldidentifier)
      

      So the table doesn't have index for the columnlayout column.
      columnlayout is being used during data loading:

      com.atlassian.jira.issue.fields.layout.column.DefaultColumnLayoutManager#transformToColumnLayoutItems
      ...
       final List<GenericValue> columnLayoutItemGVs = ofBizDelegator.getRelated("ChildColumnLayoutItem", columnLayoutGV, ImmutableList.of("horizontalposition ASC"));
      

      Suggested Solution

      Add an extra index to the table to reduce DB load and improve loading time.

      Workaround

      Add index manually.

      • Example for MSSQL
        CREATE NONCLUSTERED INDEX [idx_cli_columnlayout] ON [dbo].[columnlayoutitem] ([COLUMNLAYOUT])
        

            [JRASERVER-70002] Add COLUMNLAYOUT index to the columnlayoutitem table

            Andriy Yakovlev [Atlassian] made changes -
            Resolution New: Duplicate [ 3 ]
            Status Original: Gathering Interest [ 11772 ] New: Closed [ 6 ]
            Andriy Yakovlev [Atlassian] made changes -
            Link New: This issue is related to JRASERVER-67735 [ JRASERVER-67735 ]
            SET Analytics Bot made changes -
            UIS Original: 1 New: 0
            Andriy Yakovlev [Atlassian] made changes -
            Labels Original: database index pse-request New: database database-index index pse-request
            Andriy Yakovlev [Atlassian] made changes -
            Labels Original: database pse-request New: database index pse-request
            SET Analytics Bot made changes -
            UIS New: 1
            Andriy Yakovlev [Atlassian] made changes -
            Description Original: h3. Problem Definition
            Table {{columnlayoutitem}} is used for storing Fields schema configs, example:
            {noformat}
            select * from columnlayoutitem;
              id | columnlayout | fieldidentifier | horizontalposition
            -------+--------------+--------------------+--------------------
             10300 | 10000 | issuetype | 0
             10301 | 10000 | issuekey | 1
             10302 | 10000 | summary | 2
             10303 | 10000 | assignee | 3
             10304 | 10000 | reporter | 4
             ...
            {noformat}

            Table config:
            {noformat}
            \d columnlayoutitem
                         Table "public.columnlayoutitem"
                   Column | Type | Modifiers
            --------------------+------------------------+-----------
             id | numeric(18,0) | not null
             columnlayout | numeric(18,0) |
             fieldidentifier | character varying(255) |
             horizontalposition | numeric(18,0) |
            Indexes:
                "pk_columnlayoutitem" PRIMARY KEY, btree (id)
                "idx_cli_fieldidentifier" btree (fieldidentifier)
            {noformat}

            So the table doesn't have index for the *columnlayout* column.
            {{columnlayout}} is being used during data loading:
            {code:Java|borderStyle=solid}
            com.atlassian.jira.issue.fields.layout.column.DefaultColumnLayoutManager#transformToColumnLayoutItems
            ...
             final List<GenericValue> columnLayoutItemGVs = ofBizDelegator.getRelated("ChildColumnLayoutItem", columnLayoutGV, ImmutableList.of("horizontalposition ASC"));
            {code}

            h3. Suggested Solution
             
            h3. Workaround
            Add index manually.
            * Example for MSSQL
            {code:sql|borderStyle=solid}
            CREATE NONCLUSTERED INDEX [idx_cli_columnlayout] ON [dbo].[columnlayoutitem] ([COLUMNLAYOUT])
            {code}
            New: h3. Problem Definition
            Table {{columnlayoutitem}} is used for storing Fields schema configs, example:
            {noformat}
            select * from columnlayoutitem;
              id | columnlayout | fieldidentifier | horizontalposition
            -------+--------------+--------------------+--------------------
             10300 | 10000 | issuetype | 0
             10301 | 10000 | issuekey | 1
             10302 | 10000 | summary | 2
             10303 | 10000 | assignee | 3
             10304 | 10000 | reporter | 4
             ...
            {noformat}

            Table config:
            {noformat}
            \d columnlayoutitem
                         Table "public.columnlayoutitem"
                   Column | Type | Modifiers
            --------------------+------------------------+-----------
             id | numeric(18,0) | not null
             columnlayout | numeric(18,0) |
             fieldidentifier | character varying(255) |
             horizontalposition | numeric(18,0) |
            Indexes:
                "pk_columnlayoutitem" PRIMARY KEY, btree (id)
                "idx_cli_fieldidentifier" btree (fieldidentifier)
            {noformat}

            So the table doesn't have index for the *columnlayout* column.
            {{columnlayout}} is being used during data loading:
            {code:Java|borderStyle=solid}
            com.atlassian.jira.issue.fields.layout.column.DefaultColumnLayoutManager#transformToColumnLayoutItems
            ...
             final List<GenericValue> columnLayoutItemGVs = ofBizDelegator.getRelated("ChildColumnLayoutItem", columnLayoutGV, ImmutableList.of("horizontalposition ASC"));
            {code}

            h3. Suggested Solution
            Add an extra index to the table to reduce DB load and improve loading time.

            h3. Workaround
            Add index manually.
            * Example for MSSQL
            {code:sql|borderStyle=solid}
            CREATE NONCLUSTERED INDEX [idx_cli_columnlayout] ON [dbo].[columnlayoutitem] ([COLUMNLAYOUT])
            {code}
            Andriy Yakovlev [Atlassian] made changes -
            Link New: This issue was cloned as JRASERVER-70003 [ JRASERVER-70003 ]
            Andriy Yakovlev [Atlassian] made changes -
            Description Original: h3. Problem Definition
            Table

            h3. Suggested Solution
             
            h3. Workaround
            Add index manually
            New: h3. Problem Definition
            Table {{columnlayoutitem}} is used for storing Fields schema configs, example:
            {noformat}
            select * from columnlayoutitem;
              id | columnlayout | fieldidentifier | horizontalposition
            -------+--------------+--------------------+--------------------
             10300 | 10000 | issuetype | 0
             10301 | 10000 | issuekey | 1
             10302 | 10000 | summary | 2
             10303 | 10000 | assignee | 3
             10304 | 10000 | reporter | 4
             ...
            {noformat}

            Table config:
            {noformat}
            \d columnlayoutitem
                         Table "public.columnlayoutitem"
                   Column | Type | Modifiers
            --------------------+------------------------+-----------
             id | numeric(18,0) | not null
             columnlayout | numeric(18,0) |
             fieldidentifier | character varying(255) |
             horizontalposition | numeric(18,0) |
            Indexes:
                "pk_columnlayoutitem" PRIMARY KEY, btree (id)
                "idx_cli_fieldidentifier" btree (fieldidentifier)
            {noformat}

            So the table doesn't have index for the *columnlayout* column.
            {{columnlayout}} is being used during data loading:
            {code:Java|borderStyle=solid}
            com.atlassian.jira.issue.fields.layout.column.DefaultColumnLayoutManager#transformToColumnLayoutItems
            ...
             final List<GenericValue> columnLayoutItemGVs = ofBizDelegator.getRelated("ChildColumnLayoutItem", columnLayoutGV, ImmutableList.of("horizontalposition ASC"));
            {code}

            h3. Suggested Solution
             
            h3. Workaround
            Add index manually.
            * Example for MSSQL
            {code:sql|borderStyle=solid}
            CREATE NONCLUSTERED INDEX [idx_cli_columnlayout] ON [dbo].[columnlayoutitem] ([COLUMNLAYOUT])
            {code}
            Andriy Yakovlev [Atlassian] made changes -
            Labels Original: pse-request New: database pse-request

              Unassigned Unassigned
              ayakovlev@atlassian.com Andriy Yakovlev [Atlassian]
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: