찾다
데이터 베이스OracleOracle Study Guide의 rowid에 대한 자세한 설명

이 기사에서는 Oracle에 대한 관련 지식을 제공하며, 주로 rowid에 대한 관련 문제를 소개합니다. Oracle 데이터베이스 테이블의 각 데이터 행에는 고유 식별자, 즉 rowid가 있는데, Oracle에서는 일반적으로 이를 내부적으로 데이터에 액세스하기 위해 사용합니다. 모두에게 도움이 될 것입니다.

Oracle Study Guide의 rowid에 대한 자세한 설명

추천 튜토리얼: "Oracle Learning Tutorial"

1. rowid에 저장된 정보 개요

oracle 데이터베이스 테이블의 각 데이터 행에는 oracle의 고유 식별자인 rowid가 있습니다. 일반적으로 데이터에 액세스하기 위해 내부적으로 사용됩니다. rowid는 10바이트의 저장 공간이 필요하며 표시하는 데 18자를 사용합니다. 이 값은 Oracle 데이터베이스에 있는 행의 특정 물리적 위치를 나타냅니다. Rowid는 쿼리 결과에 값이 포함되어 있음을 나타내기 위해 쿼리에 사용될 수 있습니다.

                                      rowid를 저장하려면 10바이트 또는 80바이너리 비트가 필요합니다. 확장된 rowid는 obj#32bit, rfile#10bit, block#22bit 및 row#16bit를 포함하여 총 80비트로 10바이트에 저장됩니다. 따라서 상대 파일 번호는 1023을 초과할 수 없습니다. 즉, 테이블스페이스의 데이터 파일 수는 1023을 초과할 수 없습니다(파일 번호가 0인 파일은 없습니다). 데이터 파일은 2^22=4M 블록만 가질 수 있습니다. 1023개 이상의 블록이 하나의 블록에 포함될 수 있습니다. 2^16=64K 행의 데이터입니다. 데이터베이스에는 2^32=4G 객체를 초과할 수 없습니다.
이 80개의 이진 비트는 다음과 같습니다.
1. 이 행이 속한 데이터베이스 개체의 번호를 나타내는 데이터 개체 번호. 각 데이터 개체에는 데이터베이스가 생성될 때 고유하게 할당되는 번호가 있으며 이 번호는 고유합니다. 데이터 개체 번호는 약 32비트를 차지합니다.
2. 행이 위치한 파일 번호를 나타내는 해당 파일 번호. 테이블스페이스의 각 파일 레이블은 고유합니다. 파일 번호는 10자리를 차지합니다.
3. 라인이 리디렉션되는 파일의 블록 위치를 나타내는 블록 번호. 블록 번호에는 22자리가 필요합니다.
4. 행 디렉토리에서 행의 특정 위치를 나타내는 행 번호. 행 번호에는 16자리가 필요합니다.
이 숫자를 더하면 최대 80자리가 됩니다.

참고: Oracle 버전 8 이전의 rowid는 6바이트의 공간을 차지하는 file# block# row#, 10비트 file#, 22bit block# 및 16비트 row#로 구성되었습니다. Oracle8 이상 버전에서는 공간을 10바이트로 변경합니다.

오라클의 물리적 확장 ROWID는 18비트로 구성되며, 각 비트는 64비트로 인코딩되며, A~Z, a~z, 0~9, +, /로 표시되며 총 64자입니다. A는 0, B는 1, ... Z는 25, a는 26, ... z는 51, 0은 52, ..., 9는 61, +는 62, /는 63을 나타냅니다.

SELECT T.ROWID, T.* FROM DEPT T

rowid의 저장 공간이 32bit object#, 10bit rfile#, 22bit block#, 16bit row#을 포함하여 10byte인지 확인합니다. 덤프 기능을 사용해야 합니다.

select rowid,dump(rowid,16) from DEPT

2. rowid 내용 확인 및 보기

1. dbms_rowid 패키지의 함수를 사용하여

SELECT ROWID,
       DBMS_ROWID.ROWID_OBJECT(ROWID) AS OBJECT,
       DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) AS FILENUM,
       DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) AS BLOCK,
       DBMS_ROWID.ROWID_ROW_NUMBER(ROWID) AS ROWN
  FROM DEPT;

결과를 확인합니다.

2. 테이블에서 데이터 정보를 쿼리합니다

1). 쿼리 개체 번호: DATA_OBJECT_ID

SELECT OBJECT_NAME, OBJECT_TYPE, SUBOBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID
  FROM DBA_OBJECTS T
 WHERE T.OBJECT_NAME ='DEPT'
 AND T.OWNER = 'CHF';

결과는 다음과 같습니다.

설명: DATA_OBJECT_ID와 OBJECT_ID의 차이점

object_id와 data_object_id는 모두 개체의 고유 식별자입니다.

object_id는 객체의 논리적 식별입니다.

data_object_id는 객체의 물리적 식별입니다.

테이블, 인덱스, 실행 취소 등 실제 물리적 저장 위치가 있는 객체만 data_object_id를 갖습니다. 물리적 저장소가 없는 객체의 경우 data_object_id가 비어 있습니다. 예: (프로시저, 함수, 패키지, 데이터 유형, db 링크, mv 정의, 뷰 정의, 임시 테이블, 파티션 테이블 정의 등)

대부분의 경우 둘은 동일합니다. 그러나 객체에 대해 자르기, 이동, 재구축 및 기타 작업이 수행된 후에는 data_object_id가 변경되지만 object_id는 변경되지 않습니다.

대상 DEPT에서 자르기 작업을 실행합니다. 코드: TRUNCATE TABLE DEPT;

결과를 다시 쿼리합니다.

테이블에 자르기 전에 데이터를 다시 삽입하고 객체 번호를 나타내는 rowid 부분을 확인합니다. AAAUOO에서 AAAUOP로 변경되었으며 1이 증가했습니다.

2) 쿼리 파일 번호:

SELECT T.SEGMENT_NAME, T.HEADER_BLOCK, T.BLOCKS, T.EXTENTS, T.RELATIVE_FNO
  FROM DBA_SEGMENTS T
 WHERE T.SEGMENT_NAME = 'DEPT'
   AND T.OWNER = 'CHF';

HEADER_BLOCK: 이 테이블의 첫 번째 데이터 블록 번호

BLOCKS: 이 테이블의 데이터 블록 개수

RELATIVE_FNO: 상대 파일 번호

결과는 다음과 같습니다. :

说明:

从Oracle8开始,Oracle开始使用“相对文件号”,使原来一个数据库最多只能有1023个文件,扩展为一个表空间最多可以有1023个文件,每个库最多可以有65534个文件

验证文件号

SELECT T.TABLE_NAME,
       T.TABLESPACE_NAME,
       G.FILE_NAME,
       G.FILE_ID,
       G.RELATIVE_FNO
  FROM DBA_TABLES T
 INNER JOIN DBA_DATA_FILES G
    ON G.TABLESPACE_NAME = T.TABLESPACE_NAME
 WHERE T.TABLE_NAME = 'DEPT'
 AND T.OWNER = 'CHF';

执行结果:

因为创建用户时没用指定默认表空间,建表时也没用指定表空间,所以此处使用的USERS表空间(大家不必在意这些细节...),可以看到文件号和相对文件号都是 4 ,这是因为我的数据库中每个表空间只有一个数据文件,如果一个表空间有多个数据文件,这两个值有可能不一样。

知识扩展:

我们可以使用跟踪文件查看数据文件信息,命令:alter session set events 'immediate trace name FILE_HDRS level 10';

执行完此代码后,将在数据库服务器生成一个跟踪文件,查看文件路径代码:

select
  u_dump.value || '/' ||
  db_name.value || '_ora_' ||
  v$process.spid ||
  nvl2(v$process.traceid, '_' || v$process.traceid, null )
  || '.trc' "Trace File"
from
v$parameter u_dump
cross join v$parameter db_name
cross join v$process
join v$session
on v$process.addr = v$session.paddr
where
  u_dump.name = 'user_dump_dest' and
  db_name.name = 'db_name' and
  v$session.audsid=sys_context('userenv','sessionid');

推荐教程:《Oracle教程

위 내용은 Oracle Study Guide의 rowid에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Oracle Backup & Recovery : 데이터 무결성 및 가용성 보장Oracle Backup & Recovery : 데이터 무결성 및 가용성 보장Apr 10, 2025 am 09:40 AM

Oracle 백업 및 복구의 핵심 목적은 데이터가 손실되거나 손상 될 때 데이터베이스를 일관된 상태로 빠르게 복원하는 것입니다. 1. 백업 단계 : RMAN 또는 기타 도구를 통해 데이터베이스 파일을 백업 미디어에 복사하십시오. 2. 복구 단계 : 데이터베이스가 실패하면 먼저 백업 데이터를 복원 한 다음 Redo Log 파일을 적용하여 사전 입자 상태로 복원하십시오.

Oracle Real Application Clusters (RAC) : 확장 성 및 고 가용성Oracle Real Application Clusters (RAC) : 확장 성 및 고 가용성Apr 09, 2025 am 12:16 AM

Oraclerac은 멀티 노드 공유 데이터베이스 스토리지를 통해 고 가용성 및 확장 성을 달성합니다. 작업 원칙에는 시스템의 효율적인 작동 및 데이터 일관성을 보장하기 위해로드 밸런싱, 장애 조치 및 동적 노드 확장이 포함됩니다.

OCI (Oracle Cloud Infrastructure) : 클라우드에서 Oracle 데이터베이스 배포 및 관리OCI (Oracle Cloud Infrastructure) : 클라우드에서 Oracle 데이터베이스 배포 및 관리Apr 08, 2025 am 12:09 AM

OCI에서 Oracle 데이터베이스 배포 및 관리 다음 단계를 통해 다음 단계를 통해 달성 할 수 있습니다. 1. 데이터베이스 인스턴스를 만들고 OCIPYthonSDK를 사용하여 구성 매개 변수를 설정합니다. 2. 네트워크 및 스토리지 리소스 구성; 3. 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 4. 데이터베이스 백업 및 복구 작업을 수행합니다. 5. 리소스 구성, 네트워크 최적화 및 백업 정책을 조정하여 데이터베이스 성능을 최적화합니다. 이는 사용자가 필요한 구성 매개 변수 만 제공해야하며 OCI가 나머지 작업을 처리하는 고도로 자동화 된 프로세스입니다.

Oracle 인터뷰 질문 : 데이터베이스 관리자 인터뷰를 크랙하십시오Oracle 인터뷰 질문 : 데이터베이스 관리자 인터뷰를 크랙하십시오Apr 07, 2025 am 12:17 AM

Oracledba 인터뷰 준비에는 데이터베이스 아키텍처, 성능 튜닝, 백업 및 복구와 같은 핵심 지식을 마스터해야합니다. 1. 인스턴스와 데이터베이스 간의 관계를 포함하여 Oracle 데이터베이스 스키마를 이해합니다. 2. SQL 튜닝 및 인덱스 최적화와 같은 마스터 성능 튜닝 방법. 3. 백업 및 복구 전략에 익숙하고 RMAN 및 데이터 펌프 도구를 사용하십시오. 이러한 준비를 통해 인터뷰에서 전문 기술을 보여주고 인터뷰를 성공적으로 통과 할 수 있습니다.

고급 Oracle SQL 튜닝 : 전문가를위한 쿼리 성능 최적화고급 Oracle SQL 튜닝 : 전문가를위한 쿼리 성능 최적화Apr 06, 2025 am 12:06 AM

oraclesql 튜닝은 다음 단계를 통해 쿼리 성능을 향상시킬 수 있습니다. 1. 부서 열에 대한 색인 생성과 같은 적절한 인덱스를 만듭니다. 2. 실행 계획을 분석하고 설명 계획 명령을 사용하여보고 최적화하십시오. 3. 불필요한 연결 작업을 피하기 위해 하위 쿼리를 사용하는 것과 같은 SQL 재 작성을 수행하십시오. 이러한 방법을 통해 Oracle 데이터베이스의 쿼리 효율성을 크게 향상시킬 수 있습니다.

Oracle Database Security : 데이터 강화 및 보호Oracle Database Security : 데이터 강화 및 보호Apr 05, 2025 am 12:17 AM

Oracle 데이터베이스의 보안은 인증, 승인, 암호화 및 감사를 포함한 다양한 측정을 통해 달성 할 수 있습니다. 1) 사용자 인증 및 승인에 비밀번호 파일을 사용합니다. 2) 투명한 데이터 암호화 (TDE)를 통해 민감한 데이터를 보호합니다. 3) 가상 개인 데이터베이스 (VPD)를 사용하여 세밀한 액세스 제어를 달성합니다. 이러한 방법은 데이터의 기밀, 무결성 및 가용성을 보장합니다.

Oracle Goldengate : 실시간 데이터 복제 및 통합Oracle Goldengate : 실시간 데이터 복제 및 통합Apr 04, 2025 am 12:12 AM

OracleGoldengate는 소스 데이터베이스의 트랜잭션 로그를 캡처하고 대상 데이터베이스에 변경 사항을 적용하여 실시간 데이터 복제 및 통합을 가능하게합니다. 1) 변경 사항 캡처 : 소스 데이터베이스의 트랜잭션 로그를 읽고 트레일 파일로 변환합니다. 2) 전송 변경 : 네트워크를 통해 대상 시스템으로의 전송 및 데이터 펌프 프로세스를 사용하여 전송이 관리됩니다. 3) 응용 프로그램 변경 : 대상 시스템에서 복사 프로세스는 트레일 파일을 읽고 변경 사항을 적용하여 데이터 일관성을 보장합니다.

Oracle PL/SQL Deep Dive : 마스터 링 절차, 기능 및 패키지Oracle PL/SQL Deep Dive : 마스터 링 절차, 기능 및 패키지Apr 03, 2025 am 12:03 AM

Oraclepl/SQL의 절차, 기능 및 패키지는 각각 작업, 반환 값 및 구성 코드를 구성하는 데 사용됩니다. 1. 프로세스는 출력 인사와 같은 작업을 수행하는 데 사용됩니다. 2. 함수는 두 숫자의 합계와 같은 값을 계산하고 반환하는 데 사용됩니다. 3. 패키지는 관련 요소를 구성하고 재고를 관리하는 패키지와 같은 코드의 모듈성 및 유지 가능성을 향상시키는 데 사용됩니다.

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를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

DVWA

DVWA

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

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

맨티스BT

맨티스BT

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