>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 `SELECT TOP 100 PERCENT`를 언제, 왜 사용합니까?

SQL Server에서 `SELECT TOP 100 PERCENT`를 언제, 왜 사용합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-02 22:30:39614검색

When and Why Use `SELECT TOP 100 PERCENT` in SQL Server?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.