diff options
author | Adam Hegyi <ahegyi@gitlab.com> | 2019-09-05 11:00:41 +0200 |
---|---|---|
committer | Adam Hegyi <ahegyi@gitlab.com> | 2019-09-05 17:06:26 +0200 |
commit | 1853ad09fd41c74da3c1b80d0ba929274073d278 (patch) | |
tree | 1467aa38d1de79ccb83eee6175d0728da34be1ec /db | |
parent | a0b3bc3de3e052ac0dcbe79cfcfcfc4c65198492 (diff) | |
download | gitlab-ce-new-cycle-analytics-query-backend.tar.gz |
Skip duration filter when it is unnecessarynew-cycle-analytics-query-backend
- Introduce DurationFilter class that decides whether we need
additional filtering to avoid negative durations
- Improve a queries after checking the execution plan
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20190905074652_index_timestamp_columns_for_issue_metrics.rb | 29 | ||||
-rw-r--r-- | db/schema.rb | 1 |
2 files changed, 30 insertions, 0 deletions
diff --git a/db/migrate/20190905074652_index_timestamp_columns_for_issue_metrics.rb b/db/migrate/20190905074652_index_timestamp_columns_for_issue_metrics.rb new file mode 100644 index 00000000000..e468b2decd9 --- /dev/null +++ b/db/migrate/20190905074652_index_timestamp_columns_for_issue_metrics.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +class IndexTimestampColumnsForIssueMetrics < ActiveRecord::Migration[5.2] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_index(*index_arguments) + end + + def down + remove_concurrent_index(*index_arguments) + end + + private + + def index_arguments + [ + :issue_metrics, + [:issue_id, :first_mentioned_in_commit_at, :first_associated_with_milestone_at, :first_added_to_board_at], + { + name: 'index_issue_metrics_on_issue_id_and_timestamps' + } + ] + end +end diff --git a/db/schema.rb b/db/schema.rb index 61f7787f192..6e293ee257a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1736,6 +1736,7 @@ ActiveRecord::Schema.define(version: 2019_09_05_223900) do t.datetime "first_added_to_board_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.index ["issue_id", "first_mentioned_in_commit_at", "first_associated_with_milestone_at", "first_added_to_board_at"], name: "index_issue_metrics_on_issue_id_and_timestamps" t.index ["issue_id"], name: "index_issue_metrics" end |