B- 트리를 버리는 테이블에서 직접 데이터에 액세스 할 수없는 이유는 무엇입니까? (대부분의 테이블을 한 줄씩 스캔하면) 액세스 할 수없는 데이터보다 더 적합하지 않습니까?
귀하의 질문에 대답하기 위해 색인 작성 기본 사항이 더 편리합니다. 색인은 B- 트리 구조로 구성된 일련의 페이지 (인덱스 노드)로 구성됩니다. 이 구조는 본질적으로 계층 구조이며 최상위에는 루트 노드가 있고 아래쪽에는 리프 노드가 있습니다. 자세한 내용은 여기를 참조 하십시오 .
또한 많은 사람들이 설명했듯이 Clustered Indexes == 하나 이상의 키 또는 열로 물리적으로 정렬 된 원본 테이블. 따라서 클러스터형 인덱스가 비활성화되면 해당 데이터 행에 액세스 할 수 없습니다. 비 클러스터형 인덱스의 경우 삽입이 성공하지만이 게시물과 관련이있는 것은 아니지만 여기서는 클러스터형 인덱스에 대한 설명과 같이 데이터를 삽입 할 수 없거나 재구성 작업이 작동하지 않습니다.
아래에 자세히 설명되어 있습니다.
Clustered Index 를 비활성화 한 결과를 확인하기 위해 Adventureworks 데이터베이스를 사용합니다 .
이제 테이블에서 행 개수를 확인하십시오.
이제 클러스터형 인덱스를 비활성화하십시오
이제 테이블에서 행 개수를 선택하십시오. 이번에는 아래 메시지와 함께 오류가 발생합니다.
재구성 작업조차도 작동하지 않습니다 !!
이제 Clustered Index를 다시 작성하면 정상적으로 작동합니다.
데이터에 액세스 할 수 있는지 확인하려면 표를 선택하십시오.
결론적으로, 클러스터형 인덱스를 비활성화하면 테이블의 데이터는 여전히 존재하지만 Drop 또는 REBUILD 작업 외에는 액세스 할 수 없습니다. 관련된 모든 비 클러스터형 인덱스 및 뷰는 사용할 수 없으며 테이블을 참조하는 외래 키는 비활성화되며 테이블을 참조하는 모든 쿼리에 대해 FAILURE가 발생합니다.
참고 : 색인을 활성화 할 수있는 옵션이 없습니다. 리빌드해야합니다.