SQL Server에서 TOP 100 PERCENT 사용
SQL Server 2005 이전에는 SELECT TOP 100 PERCENT 절을 트릭으로 사용할 수 있었습니다. 뷰 정의에서 ORDER BY 절을 강제로 사용합니다. 그러나 그 사용법은 다양한 애플리케이션의 동적 SQL 문의 뷰 정의 이상으로 확장됩니다.
중간 구체화
동적 SQL에서 SELECT TOP 100 PERCENT의 주요 목적은 " 중간 구체화." 이 기술에는 최종 쿼리 실행 전에 중간 테이블이나 쿼리 결과를 임시 저장소로 생성하는 작업이 포함됩니다. TOP 100 PERCENT를 사용하면 원래 쿼리의 모든 행으로 임시 저장소가 구체화되어 행 순서가 유지됩니다.
작업한 예
다음을 고려하세요. 다음 쿼리:
SELECT foo FROM MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100
이 쿼리는 WHERE와 WHERE 사이의 불확실한 평가 순서로 인해 실패할 수 있습니다. ORDER BY 절. 그러나 TOP 100 PERCENT를 사용하면 다음 쿼리가 작동합니다.
SELECT foo FROM (SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar WHERE CAST(foo AS int) > 100
SQL Server 2000 및 이전 버전에서는 이 기술을 사용하여 내부 쿼리를 강제로 구체화하여 행 순서가 유지되도록 했습니다. 이와 동일한 동작은 SQL Server 2005에도 여전히 존재합니다.
그러나 TOP 100 PERCENT를 과도하게 사용하면 성능에 영향을 미칠 수 있으므로 꼭 필요한 경우에만 사용해야 한다는 점에 유의하는 것이 중요합니다. 가능하면 행 순서 지정을 위해 명시적인 테이블 파티셔닝이나 저장 프로시저를 사용하는 것이 좋습니다.
위 내용은 SQL Server에서 `SELECT TOP 100 PERCENT`를 언제, 왜 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!