적용 대상:Microsoft Fabric Preview에서 SQL Server 2025(17.x) 미리 보기
Azure SQL Database
Azure SQL Managed Instance SQL 데이터베이스
이 함수는 VECTOR_DISTANCE 지정된 거리 메트릭을 사용하여 두 벡터 사이의 거리를 계산합니다. 벡터 거리는 항상 정확하며 사용 가능한 경우에도 벡터 인덱스는 사용하지 않습니다. 벡터 인덱스가 사용되어 대략적인 벡터 검색을 수행하려면 VECTOR_SEARCH 함수를 사용해야 합니다. 벡터 인덱싱 및 벡터 검색의 작동 방식과 정확한 검색과 근사 검색 간의 차이점에 대한 자세한 내용은 SQL Database 엔진의 벡터를 참조하세요.
Note
VECTOR_DISTANCE 는 SQL Server 2025 또는 Always-up-to-date업데이트 정책을 사용하여 Azure SQL Managed Instance에서 사용할 수 있습니다.
Syntax
VECTOR_DISTANCE ( distance_metric , vector1 , vector2 )
Arguments
distance_metric
지정된 두 벡터 간의 거리를 계산하는 데 사용할 거리 메트릭의 이름을 가진 문자열입니다. 지원되는 거리 메트릭은 다음과 같습니다.
-
cosine- 코사인 거리 -
euclidean- 유클리드 거리 -
dot- (음수) 점 제품
vector1
벡터 데이터 형식으로 계산되는 식입니다.
vector2
벡터 데이터 형식으로 계산되는 식입니다.
거리 메트릭
| Metric | Description | Range | Examples |
|---|---|---|---|
cosine |
코사인(각도) 거리 | [0, 2] |
0: 동일한 벡터2: 반대 벡터 |
euclidean |
유클리드 거리 | [0, +∞] |
0: 동일한 벡터 |
dot |
점 제품 기반 거리 표시, 음의 점 곱을 계산하여 얻은 |
[-∞, +∞] | 숫자가 작을수록 더 유사한 벡터가 표시됩니다. |
반환 값
이 함수는 지정된 거리 메트릭을 사용하여 두 벡터 사이의 거리를 나타내는 스칼라 부동 소수 점 값을 반환합니다.
distance_metric 유효한 메트릭이 아니고 제공된 벡터가 벡터 데이터 형식이 아닌 경우 오류가 반환됩니다.
Examples
샘플에 사용된 데이터베이스의 세부 정보는 GitHub: 벡터 포함을 사용하여 Wikipedia 문서를 다운로드하고 가져옵니다.
위키백과 문서의 제목 포함을 저장하는 형식 wikipedia_articles 의 열 title_vector 이 있는 테이블 vector 이 있다고 가정합니다.
title_vector 는 1,536차원의 벡터를 반환하는 포함 모델(예: text-embedding-ada-002 또는 text-embedding-3-small)을 사용하여 생성된 포함으로 간주됩니다.
엔드투엔드 솔루션을 비롯한 더 많은 예제를 보려면 Azure SQL Database 벡터 검색 샘플 GitHub 리포지토리로 이동합니다.
A. JSON 배열에서 벡터 만들기
다음 예제에서는 JSON 배열이 있는 문자열에서 3차원으로 벡터를 만듭니다.
DECLARE @v1 AS VECTOR (2) = '[1,1]';
DECLARE @v2 AS VECTOR (2) = '[-1,-1]';
SELECT VECTOR_DISTANCE('euclidean', @v1, @v2) AS euclidean,
VECTOR_DISTANCE('cosine', @v1, @v2) AS cosine,
VECTOR_DISTANCE('dot', @v1, @v2) AS negative_dot_product;
B. 제목에 따라 상위 10개의 유사한 문서 반환
다음 예제에서는 타이틀 벡터 간의 코사인 거리를 기반으로 지정된 아티클에 가장 유사한 상위 10개의 아티클을 반환합니다.
DECLARE @v AS VECTOR (1536);
SELECT @v = title_vector
FROM [dbo].[wikipedia_articles]
WHERE title = 'Alan Turing';
SELECT TOP (10) id,
title,
VECTOR_DISTANCE('cosine', @v, title_vector) AS distance
FROM [dbo].[wikipedia_articles]
ORDER BY distance;
C. 특정 벡터 거리를 기준으로 유사한 아티클 반환
다음 예제에서는 타이틀 벡터 간의 코사인 거리를 기반으로 지정된 아티클에 유사한 모든 아티클을 반환하고 거리가 0.3보다 작은 타이틀만 선택합니다.
DECLARE @v AS VECTOR (1536);
SELECT @v = title_vector
FROM [dbo].[wikipedia_articles]
WHERE title = 'Alan Turing';
SELECT id,
title,
VECTOR_DISTANCE('cosine', @v, title_vector) AS distance
FROM [dbo].[wikipedia_articles]
WHERE VECTOR_DISTANCE('cosine', @v, title_vector) < 0.3
ORDER BY distance;