diff --git a/server/models/vectors.js b/server/models/vectors.js
index aad671f510025b0d16ee34f4ee1c9f132b654537..776179d02c07662dd9eef70458e295d684733d2e 100644
--- a/server/models/vectors.js
+++ b/server/models/vectors.js
@@ -31,17 +31,26 @@ const DocumentVectors = {
   },
   bulkInsert: async function (vectorRecords = []) {
     if (vectorRecords.length === 0) return;
+
     const db = await this.db();
+
+    // Build a single query string with multiple placeholders for the INSERT operation
+    const placeholders = vectorRecords.map(() => "(?, ?)").join(", ");
+
     const stmt = await db.prepare(
-      `INSERT INTO ${this.tablename} (docId, vectorId) VALUES (?, ?)`
+      `INSERT INTO ${this.tablename} (docId, vectorId) VALUES ${placeholders}`
     );
-    for (const record of vectorRecords) {
-      const { docId, vectorId } = record;
-      stmt.run([docId, vectorId]);
-    }
 
+    // Flatten the vectorRecords array to match the order of placeholders
+    const values = vectorRecords.reduce(
+      (arr, record) => arr.concat([record.docId, record.vectorId]),
+      []
+    );
+
+    stmt.run(values);
     stmt.finalize();
     db.close();
+
     return { documentsInserted: vectorRecords.length };
   },
   deleteForWorkspace: async function (workspaceId) {