diff --git a/db/post_migrate/20240123120413_index_sbom_occurrences_on_project_id_component_version_id_and_input_file_path.rb b/db/post_migrate/20240123120413_index_sbom_occurrences_on_project_id_component_version_id_and_input_file_path.rb
new file mode 100644
index 0000000000000000000000000000000000000000..cf413e78eca9bab976ed7a69b3d8dcf754e6083f
--- /dev/null
+++ b/db/post_migrate/20240123120413_index_sbom_occurrences_on_project_id_component_version_id_and_input_file_path.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class IndexSbomOccurrencesOnProjectIdComponentVersionIdAndInputFilePath < Gitlab::Database::Migration[2.2]
+  INDEX_NAME = 'idx_sbom_occurr_on_project_component_version_input_file_path'
+  DROPPED_INDEX_NAME = 'index_sbom_occurrences_for_input_file_path_search'
+  disable_ddl_transaction!
+  milestone '16.9'
+
+  def up
+    remove_concurrent_index_by_name :sbom_occurrences, DROPPED_INDEX_NAME
+    add_concurrent_index :sbom_occurrences, %i[project_id component_version_id input_file_path], name: INDEX_NAME
+  end
+
+  def down
+    remove_concurrent_index_by_name :sbom_occurrences, INDEX_NAME
+    add_concurrent_index :sbom_occurrences, %i[project_id component_id input_file_path], name: DROPPED_INDEX_NAME
+  end
+end
diff --git a/db/schema_migrations/20240123120413 b/db/schema_migrations/20240123120413
new file mode 100644
index 0000000000000000000000000000000000000000..1323454ef1227a84cc0ecfcfd6b9bee5dbb0025b
--- /dev/null
+++ b/db/schema_migrations/20240123120413
@@ -0,0 +1 @@
+9b55d0889ab76a1bf64696bc1d356a99366912e1f5c3c689fd8a52d2134f7644
\ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index a8e521109fd262a3a2e90e9a8de4937c51ea4599..eeee6695b2c0395929a86790bf93b651fef9a0fc 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -32465,6 +32465,8 @@ CREATE INDEX idx_repository_states_on_wiki_failure_partial ON project_repository
 
 CREATE INDEX idx_repository_states_outdated_checksums ON project_repository_states USING btree (project_id) WHERE (((repository_verification_checksum IS NULL) AND (last_repository_verification_failure IS NULL)) OR ((wiki_verification_checksum IS NULL) AND (last_wiki_verification_failure IS NULL)));
 
+CREATE INDEX idx_sbom_occurr_on_project_component_version_input_file_path ON sbom_occurrences USING btree (project_id, component_version_id, input_file_path);
+
 CREATE INDEX idx_sbom_occurrences_on_project_id_and_source_id ON sbom_occurrences USING btree (project_id, source_id);
 
 CREATE UNIQUE INDEX idx_sbom_source_packages_on_name_and_purl_type ON sbom_source_packages USING btree (name, purl_type);
@@ -35327,8 +35329,6 @@ CREATE UNIQUE INDEX index_sbom_components_on_component_type_name_and_purl_type O
 
 CREATE INDEX index_sbom_occurr_on_project_id_and_component_version_id_and_id ON sbom_occurrences USING btree (project_id, component_version_id, id);
 
-CREATE INDEX index_sbom_occurrences_for_input_file_path_search ON sbom_occurrences USING btree (project_id, component_id, input_file_path);
-
 CREATE INDEX index_sbom_occurrences_on_component_id_and_id ON sbom_occurrences USING btree (component_id, id);
 
 CREATE INDEX index_sbom_occurrences_on_component_version_id ON sbom_occurrences USING btree (component_version_id);
diff --git a/spec/support/helpers/database/duplicate_indexes.yml b/spec/support/helpers/database/duplicate_indexes.yml
index 609b018b0cd1b1002c3d78049752712b1ce87e3c..29202d49e789c06f0e07d3c8c47547a7c9aa723b 100644
--- a/spec/support/helpers/database/duplicate_indexes.yml
+++ b/spec/support/helpers/database/duplicate_indexes.yml
@@ -135,8 +135,6 @@ sbom_component_versions:
   index_sbom_component_versions_on_component_id_and_version:
     - index_sbom_component_versions_on_component_id
 sbom_occurrences:
-  index_sbom_occurrences_for_input_file_path_search:
-    - index_sbom_occurrences_on_project_id_component_id
   index_sbom_occurrences_on_project_id_and_component_id_and_id:
     - index_sbom_occurrences_on_project_id_component_id
 search_namespace_index_assignments: