>  기사  >  데이터 베이스  >  오라클에서 인덱스를 수정하는 방법

오라클에서 인덱스를 수정하는 방법

青灯夜游
青灯夜游원래의
2022-01-25 17:10:1917129검색

oracle에서 인덱스를 수정하는 방법: 1. "alter index old index name rename to new index name;" 문을 사용하여 인덱스 이름을 바꿉니다. 2. "drop index" 문을 사용하여 원래 인덱스를 삭제합니다. 동일한 이름의 인덱스를 생성해야 한다는 지침에 따라 "CREATE INDEX" 문을 사용합니다.

오라클에서 인덱스를 수정하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

설명

 1) 색인은 책의 색인과 유사하게 데이터 검색 속도를 높이기 위해 사용되는 데이터베이스 개체 중 하나입니다. 데이터베이스에서 색인을 생성하면 데이터베이스 프로그램이 결과를 쿼리할 때 읽어야 하는 데이터의 양을 줄일 수 있습니다. 이는 책에서 전체 책을 읽지 않고도 색인을 사용하여 원하는 정보를 찾을 수 있는 방법과 유사합니다.

 2) 인덱스는 테이블 위에 구축된 선택적 개체입니다. 인덱스의 키는 기본 전체 테이블 스캔 검색 방법을 정렬된 인덱스 키 집합으로 대체하여 검색 효율성을 높이는 것입니다

 3) 인덱스는 논리적, 물리적으로 관련 테이블 및 데이터와는 아무런 관련이 없습니다. 인덱스를 생성하거나 삭제할 때 기본 테이블에는 영향을 미치지 않습니다.

 4) 인덱스가 생성되면 테이블에 대해 DML 작업을 수행할 때(예: 삽입, 수정, 삭제 등) 관련 작업 중) 오라클이 자동으로 인덱스를 관리하며, 인덱스 삭제는 테이블에 영향을 미치지 않습니다

 5) 테이블에 인덱스가 있는지 여부에 관계없이 인덱스는 사용자에게 투명합니다. , SQL 문 사용법은 그대로 유지됩니다

 6) Oracle 생성 기본 키를 사용하면 이 열에 자동으로 인덱스가 생성됩니다

인덱스 원칙

1. 특정 기록을 검색할 경우(예: 이름='소원'으로 검색) A소원만 전부 검색해야 한다는 보장은 없기 때문에 모든 기록을 검색해야 합니다.

2. name, Oracle은 전체 테이블에 대해 검색을 수행하고 각 레코드의 name 값을 오름차순으로 정렬한 다음 인덱스 항목(name 및 rowid)을 빌드하고 인덱스 세그먼트로 이동하여 쿼리 이름이 원하는 경우 저장합니다. , 해당 위치를 직접 찾을 수 있습니다

3. 인덱스를 생성한다고 해서 반드시 사용되는 것은 아닙니다. Oracle이 자동으로 테이블의 정보를 계산한 후 인덱스 사용 여부를 결정합니다. 테이블의 데이터는 이미 매우 빠르므로 인덱스를 사용할 필요가 없습니다.

인덱스 사용(생성, 수정, 삭제, 보기)

1 인덱스 구문 생성

CREATE [UNIQUE] | [BITMAP] INDEX index_name  --unique表示唯一索引
ON table_name([column1 [ASC|DESC],column2    --bitmap,创建位图索引
[ASC|DESC],…] | [express]) [TABLESPACE tablespace_name]
[PCTFREE n1]                                 --指定索引在数据块中空闲空间
[STORAGE (INITIAL n2)]
[NOLOGGING]                                  --表示创建和重建索引时允许对表做DML操作,默认情况下不应该使用
[NOLINE]
[NOSORT];                                    --表示创建索引时不进行排序,默认不适用,如果数据已经是按照该索引顺序排列的可以使用

2 . 인덱스 수정

1) 명명된 인덱스 반복

alter index index_sno rename to bitmap_index;

2) 인덱스 병합(테이블을 일정 기간 사용하면 인덱스에 조각이 발생하여 인덱스 효율성이 떨어집니다. 인덱스를 병합하거나 인덱스를 병합하는 방법이 더 좋습니다. 추가 저장 공간이 필요하지 않으며 비용이 더 많이 듭니다. 낮음)

alter index index_sno coalesce;

3) 인덱스를 다시 빌드합니다.

방법 1: 원본 인덱스를 삭제하고 필요한 것과 같은 이름.

방법 2:

alter index index_sno rebuild;

3. 인덱스

drop index index_sno;

를 삭제합니다.

select index_name,index-type, tablespace_name, uniqueness from all_indexes where table_name ='tablename'; -- eg: 
create index index_sno on student('name'); select * from all_indexes where table_name='student';

인덱스 보기: "Oracle Tutorial"

위 내용은 오라클에서 인덱스를 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.