오라클 테이블에 기본 키를 만들 때 기본적으로 '클러스터 된'인덱스가 생성되는 이유는 무엇입니까? 기본 키 생성시 클러스터 된 인덱스를 자동으로 생성하는 이유는 무엇입니까? 이런 식으로 오라클을 고안 한 오라클 디자이너의 선호도입니까?기본 키가 자동으로 클러스터 된 인덱스를 생성하는 이유
답변
오라클은 어떤 기존 인덱스가 적합없는 경우 고유 제약 조건을 단속하기 위해 인덱스를 생성합니다. 인덱스가 없으면 오라클은 누군가가 행을 삽입 또는 삭제 (또는 PK 업데이트)를 시도 할 때마다 연산 (예 : 테이블 잠금)을 직렬화해야합니다.
MS-SQL 서버와는 달리이 인덱스는 힙 테이블 (기본 테이블 구성)에 클러스터되지 않습니다. 즉,이 인덱스는 기본 테이블 구조와 자연 순서를 변경하지 않습니다. Oracle이 색인을 작성할 때 행의 순서가 재 지정되지 않습니다. 색인은 B-tree index이되며 각 항목이 주 테이블의 한 행을 가리키는 별도의 엔티티로 존재합니다.
Oracle은 MS SQL로 클러스터 된 인덱스를 가지고 있지 않지만 indexed-organized tables은 클러스터 인덱싱 된 테이블과 일부 속성을 공유합니다. PK는 이러한 테이블의 필수 부분이며 작성 중에 지정되어야합니다.
(오라클도 table clusters이지만 완전히 다른 개념입니다).
이 때문에 SQL Server에 대한 응용 프로그램을 개발할 때'Select * from table'을 말할 수 있으며 오라클에 대해 'Select * from Table Order By ...'를 수행해야합니다. 클러스터 된 인덱스 PK를 사용하면 자동으로 항목을 정렬하기 때문입니다. –
@ t.s. Pk에 의해 정렬 된 행을 원한다면 =) 또한 ORDER BY 절이없는 자연 순서에 의존하지 않을 것입니다 : 옵티마이 저가 액세스 경로/메소드를 변경하면 어떻게됩니까? (대답 : 당신은 순서대로 행을 얻을 것이다) –
그건 클러스터 된 인덱스가 당신에게하는 예입니다 : o) –
색인 만들기는 기본 키의 기본 기능이며 SQL Server 및 MySQL에도 포함되어 있으므로 클러스터 된 색인을 사용하면 검색 속도가 빨라집니다.
데이터베이스 엔진은 고유 인덱스를 자동으로 만들어 PRIMARY KEY 제약 조건의 고유성을 적용합니다. 클러스터형 인덱스가 테이블에 아직 없거나 클러스터되지 않은 인덱스가 명시 적으로 지정되어 있지 않으면 고유 한 클러스터형 인덱스가 만들어져 PRIMARY KEY 제약 조건이 적용됩니다.
이 읽기 : http://www.sqlskills.com/blogs/kimberly/the-clustered-index-debate-continues/
- 1. 기본 키가 자동으로 인덱싱됩니까?
- 2. 기본 키에서 클러스터 된 인덱스를 분리하는 Entity Framework
- 3. 시간이 자동으로 증가하는 기본 키가 있다고 가정하는 것이 좋지 않습니까?
- 4. 기본 키가 클러스터 인덱스가 아니고 다른 인덱스가 클러스터 된 이유는 무엇입니까?
- 5. 기본 키 및 클러스터 된 인덱스
- 6. 기본 테이블에서만 기본 키가
- 7. 인덱스 뷰 : 클러스터 된 인덱스를 선택하는 방법?
- 8. 어떻게 클러스터 된 배열의 파이썬 인덱스를 제공할까요?
- 9. SQL Azure가 클러스터 된 인덱스를 인식하지 못합니다.
- 10. SQL 서버에서 클러스터 된 인덱스를 삭제해도 안전합니까?
- 11. 클러스터 된 인덱스를 찾기위한 SQL Server 쿼리
- 12. 이 클러스터 된 인덱스가 SQL 서버의 클러스터되지 않은 클러스터 된 인덱스보다 더 많은 비용을받는 이유
- 13. 클러스터 된 고유 인덱스가있는 null이 허용되지 않는 열입니다. 기본 키가 필요한 이유는 무엇입니까? SQL 서버에서
- 14. SQL Server의 기본 키 (클러스터)와 클러스터 된 고유 인덱스 간의 차이
- 15. 중복 된 기본 키가 없음
- 16. SQL Server의 복합 클러스터 된 인덱스
- 17. 때때로 sybase 클러스터 된 인덱스를 매월 다시 작성하지 못함
- 18. 코드 줄있는 클러스터 생성하는 간단 카산드라 클러스터
- 19. 클러스터 된 인덱스 스크립트 중지
- 20. 클러스터 된 인덱스 열에 비 클러스터형 인덱스를 사용하면 성능이 향상됩니까?
- 21. SQL Server에서 클러스터 된 인덱스를 선택하는 방법은 무엇입니까?
- 22. 클러스터
- 23. SQL Server - 테이블에 복합 기본 키가 있습니다.
- 24. 기본 키가 내 쿼리를 느리게하는 이유는 무엇입니까?
- 25. HBase 테이블의 행 키가 자동으로 인덱싱됩니까?
- 26. 외래 키가 자동으로 색인을 생성합니까?
- 27. PostgreSQL 인덱스를 사용하지 않고 인덱스를 제안하는 이유
- 28. 이 SQL 2005 테이블에 고유 한 클러스터 된 인덱스 또는 고유하지 않은 클러스터 된 인덱스를 만들어야합니까?
- 29. redis 키가 자동으로 삭제됩니다.
- 30. 구글과 multimap은 키가 자동으로
'클러스터 된 색인'이란 무엇입니까? 아니면이 질문이 '오라클'이라는 라벨이 붙은 이유는 무엇입니까? – ibre5041
@Ivan 이것은 Microsoft SQL 개념입니다. Oracle에는 클러스터 된 인덱스가 없습니다. 이와 같은 질문은 모호합니다. OP가 PK를 추가 할 때 색인이 작성되는 이유를 알고 싶습니까? 왜 '클러스터 된'색인이 존재하지 않는지? –