집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server 테이블에서 무작위 행 샘플을 효율적으로 선택하려면 어떻게 해야 합니까?
SQL Server 테이블에서 무작위 샘플을 생성하는 것은 다양한 목적에 유용한 작업입니다. 일반적인 해결책은 테이블에서 고정된 수의 행을 무작위로 선택하는 것입니다.
복잡한 방법의 단점
기사에 언급된 문제는 임시 테이블과 RAND() 루프를 사용하는 복잡한 방법을 지적합니다. 이러한 방법은 비효율적이고 유연성이 없습니다.
NEWID() 메소드의 한계
이 기사에서는 NEWID() 함수를 사용하는 대체 방법도 언급합니다. 그러나 이 접근 방식은 특정 비율의 행을 선택해야 하는 요구 사항에는 적합하지 않을 수 있습니다.
T-SQL 솔루션
이 문제를 해결하기 위해 기사에서는 SQL Server 스크립트를 제공합니다.
<code class="language-sql">select top 10 percent * from [yourtable] order by newid()</code>
이 문은 NEWID() 함수와 TOP 절을 사용하여 행의 상위 10%를 선택하고 테이블의 무작위 샘플을 반환합니다.
대형 테이블의 최적화 방법
대형 테이블의 경우 다음 수정된 스크립트를 사용하면 성능을 향상시킬 수 있습니다.
<code class="language-sql">select * from [yourtable] where [yourPk] in (select top 10 percent [yourPk] from [yourtable] order by newid())</code>
이 방법은 두 단계로 진행됩니다. 먼저 임의의 기본 키 값을 선택한 다음 이러한 기본 키 값을 사용하여 해당 행을 검색합니다. 키 스캔 및 조인 비용의 균형을 유지하여 대규모 테이블의 경우 더 효율적입니다.
위 내용은 SQL Server 테이블에서 무작위 행 샘플을 효율적으로 선택하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!