2008-10-04 3 views
1

안녕하세요 거기에 어떤 장점/단점은 IF 문을 사용하거나 CASE 문을 대신 사용하도록 선택할 때 저장된 프로 시저를 실행하는 속도 관련이 있습니까? 나는 그것을 피할 수있는 경우가 아닌 트랜잭션 때문에저장 프로 시저의 If 문에 대해 Case 문을 사용할 때의 이점은 무엇입니까?

+2

당신이하려는 일의 구체적인 내용을 모른 채 질문에 대답하는 것은 불가능합니다. T-SQL과 같은 저장 프로 시저 언어에서는 IF와 CASE가 완전히 다른 것들에 사용됩니다. CASE는 명령문 내에서 사용되며 IF는 사용되지 않습니다. –

+0

동의합니다. CASE는 표현식이고 IF는 실행 흐름을 제어합니다. 두 가지 사이에서 결정하려는 코드의 예를 들어야합니다. 나는 당신이 조건부로 변수를 설정하려고 시도하고있는 것으로 추측하고있다. (여기에서는 CASE를 사용하지만 perf에는 그렇지 않다), 또는 당신은 CASE를 오해했다. – GilM

답변

2

나는 당신이 IF의 상태가 여전히 IFBEGIN... END 블록 내부에 유효한 것으로 일반적으로 보장이 없다, 즉, IF의를 사용하지 않도록하려고합니다.

예를 들어 CASE 문을 SQL SELECT 내에 사용한다고 가정합니다. 그 사용법이 IF을 피하기위한 것이라면, 꼭 그렇게하십시오.

SQL의 골든 규칙은 다음과 같습니다. 서버가 어떻게해야하는지 파악하게하고 서버에 원하는 것을 알려주십시오..

2

사례와 IF 문과의 속도 차이에 신경 쓰지 마십시오. 데이터베이스를 다루므로 디스크에서 쓰거나 읽는 데 걸리는 시간이 CPU가 IF 또는 대소 문자를 통해 분기하는 데 걸리는 시간이 줄어들 것입니다. 대신에 코드를 읽기 쉽고 유지 보수 할 수 있도록 만드는 것이 중요합니다.

관련 문제