2013-05-28 6 views
0

다른 테이블 (비 임시 테이블)의 구조를 부분적으로 기반으로 임시 테이블을 만듭니다. 데이터가 아니라 구조 만 있으면됩니다. 내 연구에서 나는 내가 필요하지 그 2 SELECT 문을 발견데이터가없는 테이블 복사

SELECT ID, Field1 FROM Table1 (NOLOCK) WHERE 0=1 

SELECT TOP (0) ID, Field1 FROM Table1 (NOLOCK) 

성능 차이는 아마도 무시할 수있다, 그러나 나는 선택이 더 효율적입니다 알고 싶어?

감사

편집 1 : 나는 2005 마이크로 소프트 SQL 서버를 사용하고 - 9.00.5057.00 (X64)는 Windows NT 6.1에서 64 비트 (7601 빌드 : 서비스 팩 1)

편집 2 : 실시 계획 두 문장 모두 정확히 같아 보이므로 성능 차이가 있다면 추측 할 수 있습니다. 무시해도됩니다.

+2

실행 계획을 보았습니까? 일반적으로 가장 좋은 장소 인 공연에 대해 궁금한 점이 있다면. –

+0

MS SQL Server를 사용하고 있습니까? 그렇다면 어떤 버전입니까? 그렇지 않다면 RDBMS는 무엇입니까? –

+0

@ Abe Miessler 실행 계획에서 어떤 점을 살펴 봐야합니까? 나는 SQL 전문가가 아니다. (프로그래밍 된대로 독자적으로 배웠다.) – George

답변

1

두 쿼리 모두 상수 스캔을 0 ms으로 수행하므로 사용자와 팀이 더 명확하고 읽기 쉽도록 결정해야합니다. 어떤 경우에는 성능이이 가장 중요한 요소는 아니지만 유지 관리 가능성은 항상입니다. 결정을 내리는 데 사용해야합니다.

이 보여 sqlfiddle
SELECT TOP (0) ID, Field1 FROM Table1 (NOLOCK) 

here를 찾을 수 있습니다 : 내 개인적인 취향에 근거하여

, 나는 갈 것입니다.

+0

우리의 DB는 수백만 개의 레코드를 가지고 있으므로 우선 순위 # 1은 성능입니다. 이 경우의 퍼포먼스는 문제가 아니기 때문에'TOP (0)'에 동의한다 - 나는'0 = 1' 접근법을 훨씬 더 좋아한다. – George

관련 문제