{"id":7674,"date":"2026-09-29T08:00:22","date_gmt":"2026-09-29T15:00:22","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/azure-sql\/?p=7674"},"modified":"2026-09-28T08:57:01","modified_gmt":"2026-09-28T15:57:01","slug":"diskann-vector-index-search-are-now-generally-available-in-azure-sql","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/azure-sql\/diskann-vector-index-search-are-now-generally-available-in-azure-sql\/","title":{"rendered":"DiskANN Vector Index and Vector Search Are Now Generally Available in Azure SQL"},"content":{"rendered":"<p>Today, we are announcing the general availability of DiskANN Vector Index &amp; Search across <strong>Azure SQL Database<\/strong>, <strong>Azure SQL Managed Instance with the always-up-to-date update policy<\/strong>, and <strong>SQL database in Microsoft Fabric<\/strong>.<\/p>\n<p><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/project\/project-akupara-approximate-nearest-neighbor-search-for-large-scale-semantic-search\/\">DiskANN<\/a> brings scalable approximate nearest-neighbor search directly to the SQL engine. Developers can store vectors alongside relational data and combine vector similarity with the filters, joins, security policies, and transactional data their applications already rely on.<\/p>\n<h2>Why Vector indexes matter<\/h2>\n<p>Applications use embeddings to represent the semantic meaning of text, images, products, documents, and other content as vectors. Vector similarity search can then find results that are conceptually related to a user\u2019s query, even when they do not contain the same keywords.<\/p>\n<p>Without a vector index, exact vector search calculates the distance between the query vector and every qualifying vector. It must then identify and order the closest matches.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/Whathappenswhenyoudontusevectorindex.webp\"><img decoding=\"async\" class=\"size-full wp-image-7675\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/Whathappenswhenyoudontusevectorindex.webp\" alt=\"Embeddings allow applications to compare content based on semantic similarity rather than exact keyword matches.\" width=\"1127\" height=\"646\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/Whathappenswhenyoudontusevectorindex.webp 1127w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/Whathappenswhenyoudontusevectorindex-300x172.webp 300w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/Whathappenswhenyoudontusevectorindex-1024x587.webp 1024w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/Whathappenswhenyoudontusevectorindex-768x440.webp 768w\" sizes=\"(max-width: 1127px) 100vw, 1127px\" \/><\/a><\/p>\n<p>This approach can work well for smaller datasets or workloads that require exact results, but its computational cost increases as the number of vectors grows.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/bruteforce.webp\"><img decoding=\"async\" class=\"size-full wp-image-7676\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/bruteforce.webp\" alt=\"Exact KNN breaks down fast\" width=\"1172\" height=\"662\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/bruteforce.webp 1172w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/bruteforce-300x169.webp 300w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/bruteforce-1024x578.webp 1024w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/bruteforce-768x434.webp 768w\" sizes=\"(max-width: 1172px) 100vw, 1172px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Efficient similarity search with DiskANN<\/h2>\n<p>A DiskANN vector index provides an approximate nearest-neighbor search path designed to identify relevant candidates efficiently as the dataset grows.<\/p>\n<p>Instead of evaluating every vector, the index builds a navigable graph so that the database engine can navigate toward the most promising candidates. This reduces the amount of work required to identify similar results while maintaining high search quality.<\/p>\n<p><figure id=\"attachment_7677\" aria-labelledby=\"figcaption_attachment_7677\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/diskann.webp\"><img decoding=\"async\" class=\"size-full wp-image-7677\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/diskann.webp\" alt=\"A DiskANN vector index helps the database engine navigate efficiently toward the most relevant candidates.\" width=\"1178\" height=\"662\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/diskann.webp 1178w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/diskann-300x169.webp 300w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/diskann-1024x575.webp 1024w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/diskann-768x432.webp 768w\" sizes=\"(max-width: 1178px) 100vw, 1178px\" \/><\/a><figcaption id=\"figcaption_attachment_7677\" class=\"wp-caption-text\">A DiskANN vector index helps the database engine navigate efficiently toward the most relevant candidates.<\/figcaption><\/figure><\/p>\n<h2>Why is it called DiskANN?<\/h2>\n<p>The way I like to remember it &#8211;\u00a0 <span class=\"NormalTextRun SCXW100422648 BCX8\">ANN means <\/span><span class=\"NormalTextRun SCXW100422648 BCX8\">don\u2019t<\/span><span class=\"NormalTextRun SCXW100422648 BCX8\"> search everything, and Disk means <\/span><span class=\"NormalTextRun SCXW100422648 BCX8\">don\u2019t<\/span><span class=\"NormalTextRun SCXW100422648 BCX8\"> keep everything in memory<\/span>\nMore specifically the name <strong>DiskANN<\/strong>\u00a0describes two important aspects of its design:<\/p>\n<ul>\n<li><strong>ANN Approximate Nearest Neighbor:<\/strong>\u00a0The search does not compare the query vector with every vector in the dataset. Instead, it efficiently explores the index to identify likely nearest neighbors.<\/li>\n<li><strong>Disk:<\/strong> DiskANN was designed so that large vector indexes don\u2019t have to depend entirely on expensive RAM. It can use SSD-backed storage while maintaining a relatively small memory footprint, which is what helps it scale to massive datasets<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><figure id=\"attachment_7678\" aria-labelledby=\"figcaption_attachment_7678\" class=\"wp-caption aligncenter\" ><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/whyitscalleddiskannnew.webp\"><img decoding=\"async\" class=\"size-full wp-image-7678\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/whyitscalleddiskannnew.webp\" alt=\"ANN means don\u2019t search everything, and Disk means don\u2019t keep everything in memory\" width=\"1133\" height=\"672\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/whyitscalleddiskannnew.webp 1133w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/whyitscalleddiskannnew-300x178.webp 300w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/whyitscalleddiskannnew-1024x607.webp 1024w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2026\/09\/whyitscalleddiskannnew-768x456.webp 768w\" sizes=\"(max-width: 1133px) 100vw, 1133px\" \/><\/a><figcaption id=\"figcaption_attachment_7678\" class=\"wp-caption-text\">\u201cANN\u201d reduces how much of the index must be searched, while \u201cDisk\u201d reduces dependence on keeping the entire vector index in memory.<\/figcaption><\/figure><\/p>\n<h2>From preview to production<\/h2>\n<p>When we introduced DiskANN vector indexes in public preview, we invited customers to begin building vector-search applications directly on their operational data. Customer feedback helped shape the experience that is generally available today:<\/p>\n<ul>\n<li>DiskANN-based approximate nearest-neighbor search for large vector collections<\/li>\n<li>Full INSERT, UPDATE, and DELETE support, with asynchronous vector-index maintenance<\/li>\n<li>Iterative filtering to find the requested number of qualifying results while applying relational predicates<\/li>\n<li>Optimizer-driven execution, allowing SQL to choose between exact and approximate vector-search strategies based on the query context<\/li>\n<li>Composable T-SQL, so vector search works with existing filters, joins, business logic, and security controls<\/li>\n<\/ul>\n<p>The result is vector search that behaves like part of SQL not a separate retrieval system that applications must operate and reconcile with their database. Read more <a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/diskann-vector-index-improvements\/\">here<\/a><\/p>\n<h2>One query from development to production<\/h2>\n<p>Applications can express that approximate results are acceptable using <strong>TOP (N) WITH APPROXIMATE<\/strong>:<\/p>\n<pre class=\"prettyprint language-sql\"><code class=\"language-sql\">SELECT TOP (10) WITH APPROXIMATE\r\n\u00a0\u00a0\u00a0 p.ProductId,\r\n\u00a0\u00a0\u00a0 p.Name,\r\n\u00a0\u00a0\u00a0 s.distance\r\nFROM VECTOR_SEARCH(\r\n\u00a0\u00a0\u00a0 TABLE = dbo.Products AS p,\r\n\u00a0\u00a0\u00a0 COLUMN = Embedding,\r\n\u00a0\u00a0\u00a0 SIMILAR_TO = @query_vector,\r\n\u00a0\u00a0\u00a0 METRIC = 'cosine'\r\n) AS s\r\nWHERE p.IsActive = 1\r\nORDER BY s.distance;<\/code><\/pre>\n<p>The same query can continue to work as the application and its data grow. The optimizer evaluates the complete query including the data size, predicates, available indexes, and requested result count and selects an appropriate execution strategy.<\/p>\n<p>Applications can therefore combine similarity search with familiar relational requirements, such as:<\/p>\n<ul>\n<li>Returning only products currently in stock<\/li>\n<li>Searching documents the current user is authorized to access<\/li>\n<li>Restricting recommendations by region or category<\/li>\n<li>Joining vector-search results with operational tables<\/li>\n<li>Applying existing row-level security policies<\/li>\n<\/ul>\n<p>This allows developers to add semantic retrieval without giving up the relational and transactional capabilities already used by their applications. Read more <a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/beyond-vector-indexes-azure-sql-brings-optimizer-intelligence-to-vector-search\/\">here<\/a><\/p>\n<h2>See the evolution of vector search<\/h2>\n<p>In a new Data Exposed episode, we trace how Azure SQL vector search evolved as customer applications moved from prototypes toward production. The episode also demonstrates vector search across one billion vectors in Azure SQL Database Hyperscale.<\/p>\n<p><strong>Watch it <a href=\"http:\/\/youtube.com\/watch?v=aFXFfo1oe_w&amp;xstg=CAMSEBUJ_b-oH-PhF0yjBgavkzY%3D\">here\u00a0<\/a><\/strong><\/p>\n<h2>Get started<\/h2>\n<p>Ready to add vector search to your application?<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/sql\/t-sql\/statements\/create-vector-index-transact-sql\">CREATE VECTOR INDEX documentation<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/sql\/t-sql\/functions\/vector-search-transact-sql\">VECTOR_SEARCH documentation<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Azure-Samples\/azure-sql-db-vector-search\/tree\/main\/DiskANN\">DiskANN Vector Index in SQL Quickstart<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Azure-Samples\/azure-sql-db-vector-search\">Azure SQL Database Vector Search Samples<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/diskann-vector-index-improvements\/\">DiskANN vector-index improvements<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/beyond-vector-indexes-azure-sql-brings-optimizer-intelligence-to-vector-search\/\">How optimizer intelligence changes vector search<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today, we are announcing the general availability of DiskANN Vector Index &amp; Search across Azure SQL Database, Azure SQL Managed Instance with the always-up-to-date update policy, and SQL database in Microsoft Fabric. DiskANN brings scalable approximate nearest-neighbor search directly to the SQL engine. Developers can store vectors alongside relational data and combine vector similarity with [&hellip;]<\/p>\n","protected":false},"author":159391,"featured_media":81,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[601,1,656,594,619,743,615],"tags":[510,677,591],"class_list":["post-7674","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-azure-sql","category-fabric-sql-database","category-hyperscale","category-t-sql","category-vector-search","category-vectors","tag-azure-sql-database","tag-vector-index","tag-vector-search"],"acf":[],"blog_post_summary":"<p>Today, we are announcing the general availability of DiskANN Vector Index &amp; Search across Azure SQL Database, Azure SQL Managed Instance with the always-up-to-date update policy, and SQL database in Microsoft Fabric. DiskANN brings scalable approximate nearest-neighbor search directly to the SQL engine. Developers can store vectors alongside relational data and combine vector similarity with [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/7674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/users\/159391"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/comments?post=7674"}],"version-history":[{"count":2,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/7674\/revisions"}],"predecessor-version":[{"id":7683,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/7674\/revisions\/7683"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/media\/81"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/media?parent=7674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/categories?post=7674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/tags?post=7674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}