SQL Server 테이블에서 효율적으로 무작위 샘플 선택
대규모 SQL Server 테이블에서 무작위 행 샘플을 검색하는 것은 다양한 목적에 유용합니다. 일반적인 접근 방식은 임시 테이블에 "임의의 숫자" 열을 생성하고 이를 임의의 값으로 채운 다음 원하는 범위 내에 임의의 숫자가 있는 행을 선택하는 것입니다. 그러나 이 접근 방식은 복잡하고 비효율적일 수 있습니다.
더 직접적인 방법은 NEWID() 함수를 사용하는 것입니다. NEWID()는 시스템 시간과 무작위성의 조합을 기반으로 고유 식별자를 생성합니다. NEWID()의 출력을 기준으로 테이블을 정렬하면 행 순서를 효과적으로 무작위화할 수 있습니다.
특정 행 비율을 선택하려면 TOP 절을 사용할 수 있습니다. 예를 들어 [yourtable]이라는 테이블에서 행의 10%를 선택하려면 다음 쿼리를 사용합니다.
<code class="language-sql">SELECT TOP 10 PERCENT * FROM [yourtable] ORDER BY NEWID();</code>
이 방법은 일반적으로 효율적이지만 특히 큰 테이블을 작업할 때 성능 문제가 발생할 수 있습니다. 성능을 최적화하려면 TOP 및 WHERE 절을 결합할 수 있습니다.
<code class="language-sql">SELECT * FROM [yourtable] WHERE [yourPk] IN ( SELECT TOP 10 PERCENT [yourPk] FROM [yourtable] ORDER BY NEWID() );</code>
이 쿼리는 [yourPk]를 기본 키로 사용합니다. 내부 쿼리는 선택한 행의 기본 키를 검색하고, 외부 쿼리는 이러한 기본 키를 사용하여 테이블을 필터링합니다. 이 접근 방식은 스캔되는 행 수를 줄여 성능을 향상시킵니다.
위 내용은 SQL Server 테이블에서 무작위 샘플을 효율적으로 선택하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!