Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2025 (17.x)
Azure SQL Database
SQL database in Microsoft Fabric
En yakın komşu aramasının performanslarını geliştirmek için vektör sütununda yaklaşık bir dizin oluşturun. Vektör dizin oluşturma ve vektör aramanın nasıl çalıştığı ve tam ve yaklaşık arama arasındaki farklar hakkında daha fazla bilgi edinmek için SQL Veritabanı Altyapısı'nda Vektör araması ve vektör dizinleri bölümüne bakın.
Azure SQL Veritabanı ve SQL Veritabanı içinde Fabric
Özellik ön izleme aşamasında. Kullanmadan önce geçerli sınırlamaları gözden geçirmeyi unutmayın.
Uyarı
Önizleme özelliği olarak, bu makalede sunulan teknoloji Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'na tabidir.
SQL Server 2025 Önizleme özelliği
SQL Server 2025'te bu fonksiyon önizleme aşamasında ve değişebilir. Bu özelliği kullanmak için PREVIEW_FEATURES etkinleştirmeniz gerekir.
Kullanmadan önce geçerli sınırlamaları gözden geçirmeyi unutmayın.
Sözdizimi
Transact-SQL söz dizimi kuralları
CREATE VECTOR INDEX index_name
ON object ( vector_column )
[ WITH (
[ , ] METRIC = { 'cosine' | 'dot' | 'euclidean' }
[ [ , ] TYPE = 'DiskANN' ]
[ [ , ] MAXDOP = max_degree_of_parallelism ]
) ]
[ ON { filegroup_name | "default" } ]
[;]
Tartışmalar
index_name
Dizinin adı. Dizin adlarının bir tablo içinde benzersiz olması gerekir, ancak veritabanında benzersiz olması gerekmez. Dizin adları tanımlayıcıların kurallarına uymalıdır.
nesne
Dizinin oluşturulduğu tablo. Temel tablo olmalıdır. Hem yerel hem de genel görünümler, geçici tablolar desteklenmez.
vector_column
Vektör dizinini oluşturmak için kullanılacak sütun. Vektör türünde olmalıdır.
METRİK
Verilen iki vektör arasındaki uzaklığı hesaplamak için kullanılacak uzaklık ölçümünün adını içeren bir dize. Aşağıdaki uzaklık ölçümleri desteklenir:
-
cosine- Kosinüs uzaklığı -
euclidean- Öklid uzaklığı -
dot- (Negatif) Noktalı ürün
TYPE
Dizini oluşturmak için kullanılan ANN algoritmasının türü. Şu anda yalnızca DiskANN desteklenmektedir. DiskANN varsayılan değerdir.
MAXDOP
Dizin işlemi için en yüksek paralellik derecesi yapılandırma seçeneğini geçersiz kılar. Daha fazla bilgi için bkz. Sunucu yapılandırması: en yüksek paralellik derecesi. Bir dizin derleme işlemi için paralellik derecesini ve sonuçta elde edilen kaynak tüketimini sınırlamak için kullanın MAXDOP .
max_degree_of_parallelism olabilir:
1Paralel plan oluşturmayı bastırır.
>1
Paralel dizin işleminde kullanılan en yüksek paralellik derecesini, geçerli sistem iş yüküne göre belirtilen sayıyla veya daha az değerle kısıtlar.
0(varsayılan)Geçerli sistem iş yüküne göre azaltılmadığı sürece sunucu, veritabanı veya iş yükü grubu düzeyinde belirtilen paralellik derecesini kullanır.
Daha fazla bilgi için bkz . Paralel dizin işlemlerini yapılandırma.
Uyarı
Paralel dizin işlemleri SQL Server'ın her sürümünde kullanılamaz. SQL Server sürümleri tarafından desteklenen özelliklerin listesi için, SQL Server 2022'nin Sürümleri ve desteklenen özellikleri veya SQL Server 2025'in Sürümleri ve desteklenen özellikleri sayfalarına bakınız.
Sınırlamalar
Geçerli önizlemede aşağıdaki sınırlamalar vardır:
Vektör dizini bölümlenemez. Bölüm desteği yok.
Tabloda tek bir sütun, tamsayı, birincil anahtar kümelenmiş dizini olmalıdır.
Vektör dizinleri abonelere çoğaltılamaz.
Vektör dizinine sahip bir tablo salt okunur hale gelir. Vektör dizini tabloda mevcutken veri değişikliğine izin verilmez.
Azure SQL Database ve SQL veritabanı Microsoft Fabric'te,
ALLOW_STALE_VECTOR_INDEXveritabanı kapsamlı yapılandırmayıON, olarak ayarlayabilirsiniz, bu da tablonun tekrar yazılabilir olmasını sağlar.Uyarı
Veritabanı
ALLOW_STALE_VECTOR_INDEXkapsamlı yapılandırma seçeneği şu anda SQL Server 2025 (17.x)'de mevcut değil.Vektör indeksi, tabloya yeni veri eklendiğinde veya güncellendiğinde güncellenmez. Vektör indeksini yenilemek için onu bırakıp yeniden oluşturmalısınız.
Bilinen sorunlar
Daha fazla bilgi için Bkz. Bilinen sorunlar.
İzinler
Kullanıcının tabloda izni olmalıdır ALTER .
Örnekler
Örnekte kullanılan veritabanının ayrıntılarına buradan ulaşabilirsiniz: Vektör Eklemeleri ile Wikipedia Makalesini indirin ve içeri aktarın.
Örneklerde, başlığın Wikipedia makalelerinin eklemelerini depolayan türünde wikipedia_articles bir sütuna title_vector sahip adlı vector bir tablonun varlığı varsayılır.
title_vector 1.536 boyutlu vektörler döndüren text-embedding-ada-002 veya text-embedding-3-small gibi bir ekleme modeliyle oluşturulmuş bir ekleme olduğu varsayılır.
Uçtan uca çözümler de dahil olmak üzere daha fazla örnek için Azure SQL Veritabanı Vektör Arama Örnekleri GitHub deposuna gidin.
Örnek 1
Aşağıdaki örnek, ölçümü kullanarak title_vector sütunda cosine bir vektör dizini oluşturur.
CREATE VECTOR INDEX vec_idx
ON [dbo].[wikipedia_articles] ([title_vector])
WITH (METRIC = 'COSINE', TYPE = 'DISKANN');
Örnek 2
Aşağıdaki örnek, (negatif) title_vector ürün ölçümünü kullanarak sütunda dot bir vektör dizini oluşturur ve paralelliği 8 ile sınırlar ve vektör dosya SECONDARY grubunda depolar.
CREATE VECTOR INDEX vec_idx
ON [dbo].[wikipedia_articles] ([title_vector])
WITH (METRIC = 'DOT', TYPE = 'DISKANN', MAXDOP = 8)
ON [SECONDARY];
Örnek 3
ve ilgili CREATE VECTOR INDEX işlevi kullanan VECTOR_SEARCH temel bir uçtan uca örnek. Eklemeler sahtedir. Gerçek dünya senaryosunda eklemeler, ekleme modeli ve AI_GENERATE_EMBEDDINGS ya da OpenAI SDK'sı gibi bir dış kitaplık kullanılarak oluşturulur.
Aşağıdaki kod bloğu aşağıdaki adımlarla sahte eklemeler oluşturur:
- Geçerli önizlemede gerekli olan izleme bayrağını etkinleştirir.
- Veri türü
dbo.Articlesiçeren bir sütunembeddingiçeren örnek tablo oluşturun. - Sahte ekleme verileriyle örnek veriler ekleyin.
- üzerinde
dbo.Articles.embeddingbir vektör dizini oluşturun. - İşlevle vektör benzerliği aramasını
VECTOR_SEARCH()gösterin.
-- Step 0: Enable Preview Feature
ALTER DATABASE SCOPED CONFIGURATION
SET PREVIEW_FEATURES = ON;
GO
-- Step 1: Create a sample table with a VECTOR(5) column
CREATE TABLE dbo.Articles
(
id INT PRIMARY KEY,
title NVARCHAR(100),
content NVARCHAR(MAX),
embedding VECTOR(5) -- mocked embeddings
);
-- Step 2: Insert sample data
INSERT INTO Articles (id, title, content, embedding)
VALUES
(1, 'Intro to AI', 'This article introduces AI concepts.', '[0.1, 0.2, 0.3, 0.4, 0.5]'),
(2, 'Deep Learning', 'Deep learning is a subset of ML.', '[0.2, 0.1, 0.4, 0.3, 0.6]'),
(3, 'Neural Networks', 'Neural networks are powerful models.', '[0.3, 0.3, 0.2, 0.5, 0.1]'),
(4, 'Machine Learning Basics', 'ML basics for beginners.', '[0.4, 0.5, 0.1, 0.2, 0.3]'),
(5, 'Advanced AI', 'Exploring advanced AI techniques.', '[0.5, 0.4, 0.6, 0.1, 0.2]');
-- Step 3: Create a vector index on the embedding column
CREATE VECTOR INDEX vec_idx ON Articles(embedding)
WITH (metric = 'cosine', type = 'diskann');
-- Step 4: Perform a vector similarity search
DECLARE @qv VECTOR(5) = '[0.3, 0.3, 0.3, 0.3, 0.3]';
SELECT
t.id,
t.title,
t.content,
s.distance
FROM
VECTOR_SEARCH(
table = Articles AS t,
column = embedding,
similar_to = @qv,
metric = 'cosine',
top_n = 3
) AS s
ORDER BY s.distance, t.title;