>데이터 베이스 >MySQL 튜토리얼 >WHERE 절이 SQL Server 2005에서 CASE 문 업데이트를 어떻게 최적화할 수 있습니까?

WHERE 절이 SQL Server 2005에서 CASE 문 업데이트를 어떻게 최적화할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-28 09:27:11237검색

How Can a WHERE Clause Optimize CASE Statement Updates in SQL Server 2005?

WHERE 절을 활용하여 SQL Server 2005에서 CASE 문 업데이트 최적화

SQL Server 2005에서는 CASE 문을 사용하여 업데이트할 수 있습니다. 지정된 조건에 따라 기록합니다. ELSE 절을 사용하면 영향을 받지 않은 행을 처리할 수 있지만 전체 테이블을 불필요하게 스캔하게 될 수 있습니다. 이 문제는 WHERE 절을 사용하여 해결할 수 있습니다.

다음 명령문을 고려하십시오.

UPDATE dbo.TestStudents  
SET LASTNAME = 
( CASE  
    WHEN (LASTNAME = 'AAA') THEN 'BBB' 
    WHEN (LASTNAME = 'CCC') THEN 'DDD' 
    WHEN (LASTNAME = 'EEE') THEN 'FFF' 
    ELSE  (LASTNAME)
END )

이 명령문은 'dbo.TestStudents' 테이블의 레코드를 업데이트하여 'LASTNAME' 값을 다음과 같이 변경합니다. 지정된 조건에 따라. 그러나 ELSE 절은 조건의 영향을 받지 않는 레코드까지 포함하여 테이블의 모든 레코드를 평가합니다.

이 문을 최적화하려면 WHERE 절을 통합하여 업데이트해야 하는 레코드를 필터링할 수 있습니다.

UPDATE dbo.TestStudents  
SET     LASTNAME =  CASE  
                        WHEN LASTNAME = 'AAA' THEN 'BBB' 
                        WHEN LASTNAME = 'CCC' THEN 'DDD' 
                        WHEN LASTNAME = 'EEE' THEN 'FFF' 
                        ELSE LASTNAME
                    END 
WHERE   LASTNAME IN ('AAA', 'CCC', 'EEE')

WHERE 절을 추가하면 명령문은 'LASTNAME' 값이 'AAA', 'CCC' 또는 'EEE'인 레코드만 평가합니다. 이렇게 하면 성능이 향상되고 영향을 받지 않은 행을 불필요하게 검색하는 것을 방지할 수 있습니다. 따라서 WHERE 절을 통합하는 것은 SQL Server 2005에서 CASE 문 업데이트를 최적화하는 데 권장되는 기술입니다.

위 내용은 WHERE 절이 SQL Server 2005에서 CASE 문 업데이트를 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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