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 중국어 웹사이트의 기타 관련 기사를 참조하세요!