4 힙 테이블과 클러스터링 된 테이블의 현저한 차이점 SQL Server

지금 공유 :

다음 문서에서는 힙 테이블과 클러스터링 된 테이블의 주요 차이점을 설명합니다.

테이블로 작업하는 동안 SQL Server, 사용자는 종종 클러스터링 된 테이블 또는 힙 테이블을 사용하는 딜레마에 직면합니다. 클러스터형 인덱스가없는 테이블을 힙 테이블이라고하고 클러스터형 인덱스가있는 테이블을 클러스터링 된 테이블이라고합니다. 클러스터형 인덱스는 기본적으로 레코드가 테이블에 물리적으로 저장되는 방식을 재정렬합니다. 데이터 페이지는 클러스터형 인덱스의 리프 노드에 포함됩니다.

힙 테이블과 클러스터링 된 테이블의 차이점

이 기사에서는이 두 가지 테이블 유형에 대해 더 자세히 설명합니다.

클러스터 및 힙 테이블

클러스터형 테이블은 사용자가 인덱스를 사용하여 힙 테이블보다 빠르게 행을 찾고 클러스터형 인덱스를 다시 작성하여 데이터 / 레코드를 물리적으로 저장하는 데 도움이되므로 힙 테이블보다 사용자에게 더 많은 이점을 제공합니다.

데이터의 테이블에 대해 더 많은 INSERT, DELETE 및 UPDATE 활동이있는 경우 실제 데이터가 조각화 될 수 있습니다. 쿼리를 실행하면 이제 부분적으로 전체 페이지가 더 많아 지므로 여러 페이지를 더 읽어야하기 때문에 조각난 데이터가 낭비되고 바람직하지 않은 공간에 추가 될 수있는 것으로 알려져 있습니다. 데이터 조각화 문제를 해결하는 방법을 찾아 보겠습니다.

힙과 클러스터링 된 테이블의 차이점

조각화 문제는 테이블에 클러스터형 인덱스가 있어야할지 여부를 결정하여 해결할 수 있습니다. 결국 테이블의 물리적 스토리지를 조절하는 것은 클러스터형 또는 힙 인덱스입니다. 데이터베이스의 모든 테이블에는 한 가지 유형의 인덱스 만있을 수 있습니다. 선택을하려면 다음과 같은이 둘의 기본 차이점을 이해해야합니다.

  1. 힙에서는 데이터를 저장하는 순서가 없지만 클러스터형에서는 클러스터형 인덱스 키에 따라 데이터를 저장하는 순서가 있습니다. 
  2. 데이터 페이지는 힙에서 링크되지 않는 반면 클러스터링된 테이블에서는 링크되어 있으며 더 빠른 순차 액세스가 있습니다.
  3. 힙에는 0개의 index_id 값이 있고 클러스터형에는 sys.indexes 카탈로그 뷰에 대해 1개의 index_id 값이 있습니다.
  4. Clustered Index 키가 있으므로 Clustered Index가 힙 테이블보다 빠르게 데이터를 검색합니다.

분열

클러스터링 된 테이블과 힙 테이블의 차이점을 기반으로 조각화 문제를 해결할 수 있습니다. 조각화는 INSERT, DELETE 및 UPDATE 활동의 사용으로 인해 발생합니다. 그러나 힙 테이블이 있고 INSERT 활동 만있는 경우 조각화가 발생하지 않습니다. 순차 인덱스 키 (ID 값)를 사용하고 INSERTS 만있는 경우 클러스터형 인덱스가 조각화되지 않습니다. 그러나 INSERTS 또는 DELETES를 많이 사용하면 테이블이 조각화됩니다.

따라서 클러스터형 인덱스는 인덱스 키에 의존하고 더 적은 공간을 사용하므로 사용하는 것이 좋습니다. 사용 가능한 여유 공간의 기존 페이지에 새 레코드를 쓸 수 있습니다.

힙 또는 클러스터링 된 테이블의 사용을 확인하려면 DBCC SHOWCONTIG 또는 새 DMV를 실행 해 볼 수도 있습니다. 두 명령 모두 테이블의 조각화 문제에 대한 통찰력을 제공 할 수 있기 때문입니다. 클러스터형 테이블에서는 클러스터형 인덱스를 재구성하거나 재 구축하여 조각화를 해결할 수 있습니다.    

에 투자 SQL Server 수리 도구는 MS를 사용하는 회사에게 필수입니다. SQL Server 프로덕션 서버의 데이터베이스. 사실 데이터베이스 충돌시 생명의 은인이 될 수 있습니다.

저자 소개 :

Victor Simon은 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. mdb 수리 및 SQL 복구 소프트웨어 제품. 자세한 내용은 https://www.datanumen.com/

지금 공유 :

댓글이 닫혀있다.