찾다
데이터 베이스Oracle오라클 인덱스 반전이란 무엇입니까?

오라클에서 인덱스 플리핑은 인덱스 생성 시 인덱스 열의 인덱스 키 값을 바이트 반전시켜 서로 다른 자식 노드 블록을 분산 저장하는 목적을 달성하는 것을 의미하며 "B-트리" 인덱스의 분기입니다. 역방향 인덱스를 이용하면 인덱스 컬럼의 키 값을 반전시킬 수 있고, 순차 키 값을 서로 다른 리프 블록에 분산시켜 인덱스 블록에 대한 경합을 줄일 수 있다.

오라클 인덱스 반전이란 무엇입니까?

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

오라클 인덱스 반전이란?

B-트리 인덱스의 분기로, 역방향 인덱스는 주로 인덱스 생성 시 인덱스 열의 인덱스 키 값에 대해 바이트 반전을 수행하여 다른 대상으로 분산 저장됩니다. leaf

하위 노드 블록.

역방향 인덱스가 노리는 문제

전통적인 B-트리 인덱스를 사용하면 인덱스 컬럼이 순서대로 생성되면 해당 인덱스 키 값이 기본적으로 동일한 리프 블록에 분산됩니다. 사용자가 이 열을 조작하면 필연적으로 인덱스 블록에 대한 경합이 발생합니다.

역 인덱스를 사용하여 인덱스 열의 키 값을 반전시켜 순차 키 값을 서로 다른 리프 블록에 분산시켜 인덱스 블록에 대한 경합을 줄입니다.

예: 키 값 ​​1001, 1002, 1003, 반전 후 1001, 2001, 3001이 되며 사용되지 않은 리프 노드 블록에 분산됩니다.

일부 정렬된 데이터를 로드할 때 인덱스는 I/O와 관련된 병목 현상을 확실히 겪게 됩니다. 데이터를 로드하는 동안 인덱스와 디스크의 일부 부분은 다른 부분보다 훨씬 더 자주 사용됩니다. 이 문제를 해결하기 위해 여러 디스크에 걸쳐 파일을 물리적으로 분할할 수 있는 디스크 아키텍처에 인덱스 테이블스페이스를 저장할 수 있습니다.

이 문제를 해결하기 위해 Oracle은 키 인덱스를 역전시키는 방법도 제공합니다. 데이터가 역방향 키 인덱스로 저장되면 데이터 값은 원래 저장된 값과 반대가 됩니다. 이런 방식으로 데이터 1234, 1235, 1236이 4321, 5321, 6321로 저장됩니다. 결과적으로 인덱스는 새로 삽입된 각 행에 대해 서로 다른 인덱스 블록을 업데이트합니다.

비트맵 인덱스 및 인덱스 구성 테이블에서는 반전 키 처리를 수행할 수 없습니다.

팁:

디스크 용량이 제한되어 있고 순서가 지정된 로드를 많이 수행해야 하는 경우 역방향 키 인덱싱을 사용할 수 있습니다.

비트맵 인덱스나 인덱스 구성 테이블에는 역키 인덱스를 사용할 수 없습니다.

ORACLE DBA 연습: 역방향 키워드 인덱스 생성

대규모 온라인 트랜잭션 처리 시스템의 경우 테이블은 일반적으로 매우 큽니다. 이러한 테이블의 기본 키는 일련 번호로 생성되며 해당 테이블에 인덱스가 있습니다. 따라서 동일한 데이터 블록 내에 인접한 인덱스 레코드가 존재할 수 있으며, 이로 인해 데이터 블록에 대한 경쟁이 발생하게 됩니다. 시간이 지남에 따라 오래된 쓸모없는 데이터는 지속적으로 삭제되고 새로운 유용한 데이터가 이 테이블에 삽입됩니다. 분명히 삭제된 데이터는 일련번호가 작은 오래된 데이터인 반면, 삽입된 데이터는 새로 생성된 일련번호를 가지고 있습니다. 큰 수) 이는 또 다른 심각한 문제를 야기합니다. 즉, 인덱스 트리가 시퀀스 번호가 큰 쪽으로 편향되어 트리의 깊이가 깊어지고 시스템 효율성이 저하됩니다.

위의 문제를 해결하기 위해 오라클은 역키워드 인덱스를 도입했습니다. 역방향 키워드 인덱싱은 키워드(일련번호)의 각 바이트 순서를 반대로 한 다음 다시 인덱싱하는 방식으로 수행됩니다. 예는 다음과 같습니다.

오라클 인덱스 반전이란 무엇입니까?위에서 볼 수 있듯이 원래 인접 순서#는 역전된 후 더 이상 인접하지 않습니다. 이러한 방식으로 인접 순서#는 다른 데이터 블록으로 분산될 수 있습니다. 문제는 해결하기 쉽습니다.

하지만 항상 일이 둘로 나뉘는데, 역색인 키워드에도 문제가 있습니다. 예를 들어, 역방향 키 인덱스가 있는 테이블에서 범위 쿼리를 수행할 때 문제가 발생합니다. 일반적인 인덱싱에서는 조건을 충족하는 인덱스 레코드를 동일하거나 인접한 데이터 블록에 배치해야 하는데 이는 매우 빠릅니다. 그러나 reverse 키워드 인덱스를 사용한 후에는 조건을 충족하는 원본 인접 인덱스 레코드가 여러 개로 분산됩니다. 데이터 블록의 경우 쿼리 작업을 완료하는 유일한 방법은 전체 테이블 스캔을 수행하는 것입니다. 따라서 역방향 키워드 인덱스를 사용할지 여부를 결정할 때 삽입 연산이 중요한지, 범위 쿼리가 중요한지 구분할 필요가 있다.

추천 튜토리얼: "

Oracle Video Tutorial

"

위 내용은 오라클 인덱스 반전이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

什么是oracle asm什么是oracle asmApr 18, 2022 pm 04:16 PM

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

Oracle怎么查询端口号Oracle怎么查询端口号May 13, 2022 am 10:10 AM

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

oracle全角怎么转半角oracle全角怎么转半角May 13, 2022 pm 03:21 PM

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

oracle查询怎么不区分大小写oracle查询怎么不区分大小写May 10, 2022 pm 05:45 PM

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

oracle怎么删除sequenceoracle怎么删除sequenceMay 13, 2022 pm 03:35 PM

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

oracle怎么查询数据类型oracle怎么查询数据类型May 13, 2022 pm 04:19 PM

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

Oracle怎么修改sessionOracle怎么修改sessionMay 13, 2022 pm 05:06 PM

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는