If you learned vector search on pgvector, you already own the concepts: embeddings as columns, ANN indexes as trade-offs, lifecycle as ops. This playbook ports that mental model to SQL Server 2025 and Oracle 23ai — what renames, what genuinely differs, and the per-engine gotchas that the concept map alone will not catch.
Tier: Core · Workflow area: Vector & AI Features · ~35 minutes
Multi-engine estates are the DBA's reality: the skills premium goes to the person who can say "same concept, different knob" across all of them. Vector search landed natively in SQL Server 2025 (VECTOR type, DiskANN-based indexing, external model integration) and Oracle 23ai (AI Vector Search, in-database ONNX models). This playbook uses AI as a translation partner — with every claim verified against the engine's own documentation and a live test, because vector features are new enough that models confidently describe preview builds that changed before GA.
Build the transfer map with AI — then treat every row as unverified. Prompt for the concept-to-concept translation:
I know pgvector well: vector(n) columns, <=> cosine operator, HNSW
with m/ef_construction/ef_search, CREATE INDEX CONCURRENTLY,
maintenance_work_mem for builds. Build me a three-column transfer
table to SQL Server 2025 and Oracle 23ai covering: column type and
dimension declaration, distance functions, ANN index type and its
tuning knobs, exact-vs-approximate query syntax, embedding
generation options, and index maintenance behavior. Mark any row
you are not certain survived to GA with [VERIFY].
The [VERIFY] instruction matters: these features evolved through previews, and the model's training data may straddle the changes.
Verify the SQL Server column on a free Developer Edition. Spin up SQL Server 2025 Developer in a container and prove the basics:
CREATE TABLE products_v (
id int PRIMARY KEY,
embedding VECTOR(768) NOT NULL
);
SELECT TOP 10 id,
VECTOR_DISTANCE('cosine', embedding, @query_vec) AS dist
FROM products_v
ORDER BY dist;
Then the ANN path: CREATE VECTOR INDEX (DiskANN-based) and the VECTOR_SEARCH function for approximate query — check which of exact and approximate your query actually used, the same plan-reading habit as always. Note the ops difference from pgvector: DiskANN is disk-resident by design, so the memory conversation shifts from "graph in RAM" to I/O behavior, and index DDL options control build resources.
Verify the Oracle column on 23ai Free. Same drill in a 23ai Free container:
CREATE TABLE products_v (
id NUMBER PRIMARY KEY,
embedding VECTOR(768, FLOAT32)
);
SELECT id FROM products_v
ORDER BY VECTOR_DISTANCE(embedding, :query_vec, COSINE)
FETCH APPROX FIRST 10 ROWS ONLY;
Oracle's distinctive moves to test: in-memory neighbor graph (HNSW-style) vs. neighbor-partition (IVF-style) index choices, the TARGET ACCURACY clause that lets a query request a recall level, and in-database ONNX embedding models via DBMS_VECTOR — which removes the external embedding endpoint from the architecture entirely. The HNSW-style index living in memory makes RAM sizing a first-class ops question again, opposite of DiskANN's trade.
Port one real feature end-to-end, not just syntax. Take pb-29's semantic search (schema, backfill, index, hybrid query) and rebuild it on one target engine. The porting friction you hit — how embeddings get generated, how filters interact with ANN, what the plan shows — is the real lesson; write each one down as you hit it.
Rerun the pb-31 measurement on the new engine. Ground truth via exact scan, the same 100 queries, recall@10 and p95 latency. Engines differ most exactly where marketing is loudest; your numbers on your data are the only cross-engine comparison worth repeating in a meeting.
Publish the estate note. One page: the verified transfer table, per-engine gotchas you hit, version and edition gates, and your measured numbers. This is the document that makes you the vector-search owner across the estate rather than the pgvector person.
$vectorSearch aggregation and built-in hybrid search; the concept map holds, the query language does not. Same drill: transfer table, live verify, measure.Free developer editions are for learning, not for customer data — licensing terms restrict production use, and a laptop container has none of your estate's controls. Port the feature with synthetic or public data; the moment real rows are involved, you are on licensed, governed infrastructure.
The concepts — embedding columns, distance operators, ANN trade-offs, lifecycle ops — transfer cleanly; the knobs, memory models and version gates do not. One AI-drafted transfer table, verified row by row on live engines, makes you credibly multi-engine in an afternoon — and that breadth is exactly what the platform premium pays for.