-1
테이블 스캔은 정확히 어떻게 작동합니까? 여기 테이블 스캔 어떤 열을 선택합니까?
내가 아는 것입니다 :- 테이블 스캔은 전체 테이블을 검색합니다.
- 클러스터 된 인덱스 검색은 해당 인덱스에 정의 된 열만 검색합니다.
은의 우리가이 시나리오가 척하자
table_a
열 : ID, 도시
나라
을 나는City
에 클러스터 된 인덱스가 있습니다. 이 시나리오에서는
테이블 만
city
열을 볼 스캔 것 또는이 ID, 도시를 확인합니다 :select city from table_a where city = 'austin'
실제 질문 :
내가 실행 쿼리는 이것이다 및 국가 열.
테이블 스캔이 하나의 열만 검색하는 경우 테이블 스캔과 인덱스 스캔의 성능이 동일하다고 말하는 것이 안전합니까?
편집 1 부 :
Google 검색 쓴 :
테이블 스캔이 SQL 서버를 발생 메모리에 모든 행과 열을 읽습니다. 인덱스 스캔이 발생하면 모든 행과 인덱스의 컬럼 만 읽습니다.
"클러스터 된 인덱스 검색은 해당 인덱스에 정의 된 열만 검색합니다." - 그건 틀렸어. 클러스터 된 인덱스 스캔은 테이블 스캔입니다. SQL Server에서 (단일) 클러스터 된 인덱스가 테이블이기 때문에 테이블의 모든 페이지를 방문합니다. 쿼리에 필요한 열만 검사하더라도 모든 페이지가 여전히 읽혀집니다. –
이름이 같은 경우 왜 다른 이름을 사용합니까? 특정 시나리오에서만 동일한 것입니까? – LunchBox
"왜 똑같 으면 서로 다른 이름을 갖고 있니?" - 아마도 Microsoft에 문의하십시오! 원래 테이블 스캔이라는 용어는 힙과 클러스터 된 테이블을 덮는 데 사용되었습니다. 나중에 용어가 분리되었습니다 (AFAIK). 하지만, 클러스터 된 인덱스 스캔 == 테이블 스캔. –