null은 열에 값이 없음을 나타냅니다. Null은 누락, 알 수 없는 데이터 또는 적용할 수 없는 데이터를 나타냅니다. Null은 데이터 값이 있는 열 사이에 있는 경우 데이터베이스에 저장됩니다. 이러한 경우 열의 길이(0)를 저장하는 데 1바이트가 필요합니다. 새 행 헤더가 이전 행의 나머지 열이 null이라는 신호를 보내기 때문에 행의 후행 null은 스토리지가 필요하지 않습니다. 예를 들어, 테이블의 마지막 세 열이 null인 경우 이러한 열에 대한 데이터가 저장되지 않습니다.

2022.09.26 TIL RDBMS의 한 가지 특징은 논리적 데이터 구조에서 물리적 데이터 스토리지의 독립성입니다. Oracle Database에서 데이터베이스 스키마는 논리적 데이터 구조 또는 스키마 객체의 모음입니다. 데이터베이스 스키마는 데이터베이스 사용자가 소유하며 사용자 이름과 동일한 이름을 갖습니다. 스키마 개체는 데이터베이스의 데이터를 직접 참조하는 사용자 생성 구조입니다. 데이터베이스는 많은 유형의 스키마 개체를 지원하며 그 중 가장 중요한 것은 테이블과 인덱스입니다. 스키마 개체는 데이터베이스 개체의 한 유형입니다. 프로필 및 역할과 같은 일부 데이터베이스 개체는 스키마에 상주하지 않습니다. 데이터베이스 스키마는 스키마 개체라고 하는 데이터 구조의 논리적 컨테이너입니다. 스키마 개체의 ..

기존에 19c를 운영하다 11g 환경에서 유지보수를 하게되어 버전별로 차이를 공부하고 그 내용을 정리해보고자 합니다. 또한 11g에서 사용할 수 없는 기능이 무엇인지 알기 위한 목적도 있습니다. Oracle Database(오라클 데이터베이스) 12c Release 1이 발표된 지 2년이 지났다. 여러 가지 변화가 있다. 데이터베이스 아키텍처에서는 멀티테넌트(Multitentant) 개념이 생겼으며, 여러 기능 등이 추가됐다. 이번 칼럼에서는 12c에서 추가된 SQL 기능 중 하나 인 Top-N 쿼리의 새로운 기능에 대해서 살펴보고자 한다. 이전 버전 Oracle Database에서는 Top-N 쿼리는 구현하기 위해서는 ROWUNM을 이용한 형식으로 작성해야 된다. 예를 들어 메일 게시판에서 아이디가 x..
[ temporary tablespace ] DB 재시작시 들어 있던 모든 내용 사라지므로 절대로 일반 데이터를 저장하지 않는다. 일반적으로 정렬 작업 수행 시 PGA 공간이 부족할 때 해당 테이블스페이스를 이용한다. 하나의 인스턴스에 여러 임시 테이블스페이스를 만들 수 있어서 각 사용자 별로 하나씩 할당해 주는 것이 좋으며 정렬 작업이 크게 일어나는 작업전에 임시 테이블스페이스를 크게 만들어주고 작업하는 것이 성능향상에 좋다. -- 테이블스페이스 조회 select file_id, tablespace_name, bytes/1024/1024 mb, file_name from dba_temp_files; FILE_ID TABLESPACE_NAME MB FILE_NAME -------------- ------..
-- 동시에 여러 세션이 버퍼내의 다른 레코드를 수정하고자 하는 경우 버퍼 락 경합 발생 가능 SELECT * FROM ( SELECT owner, object_name, subobject_name, object_type, tablespace_name, value FROM v$segment_statistics WHERE statistic_name='buffer busy waits' ORDER BY value DESC) WHERE ROWNUM
v$lock 뷰에서 타입 컬럼: TM 락은 DML(개체에 대한 액세스 동기화 관련) 그 외 290가지 락 타입 존재 DDL, DML 작업시 ORA-00054 에러 발생. 오브젝트에 락 걸려서 일 수 있다. -- 작업중인 오브젝트(테이블) 알때 -- 해당 테이블에 LOCK 확인 및 sid, serial#까지 확인 SELECT A.SID, A.SERIAL#, B.TYPE, C.OBJECT_NAME FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C WHERE A.SID = B.SID AND B.ID1 = C.OBJECT_ID AND B.TYPE='TM' AND C.OBJECT_NAME IN ('테이블명'); -- 작업중인 테이블 모를때 SELECT DO.OBJECT_NAME, DO.O..
1. SQL Command SQL 명령 언어를 사용하면 데이터베이스의 데이터를 조작할 수 있습니다. SQL 명령은 (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/index.html) 해당 링크를 참고하면 됩니다. SQL의 목적은 Oracle Database와 같은 관계형 데이터베이스에 대한 인터페이스를 제공하는 것이며 모든 SQL 문은 데이터베이스에 대한 명령입니다. 이 SQL은 C 및 BASIC과 같은 범용 프로그래밍 언어와 다릅니다. 역할은 다음과 같습니다. Querying data Inserting, updating, and deleting rows in a table Creating, replacing, altering,..
orcl 데이터베이스의 hr4 유저에서 employees, departments 테이블을 expdp로 unload orcl02 데이터베이스의 test01 스키마에게 impdp로 밀어넣기 [oracle@enp0s3 ~]$ . oraenv ORACLE_SID = [orcl] ? orcl02 The Oracle base remains unchanged with value /u01/app/oracle -- 오라클에서 디렉토리는 논리 오브젝트이다. ORCL 데이터베이스에서 EXPORT시 사용했던 물리 디렉토리 경로를 ORCL2에서 새로운 논리 디렉토리로 생성해준다 SQL> create directory hr4_imp_dir as '/u01/app/oracle/admin/orcl/dpdump/test_dir_1';..
par파일 사용해서 export, import 실습 expdp, impdp 명령 시 PARFILE 파라미터는 현재 유저의 경로를 나타낸다. 아래와 같은경우 ~(/home/oracle)이 파라미터 파일의 실제 경로가 된다. -- parfile 내용 파일명 expdp_hr_20220216.par schemas=hr4 dumpfile=exp_hr_schema_20220216_02.dmp directory=dpump_dir1 exclude=user:"='HR4'" logfile=exp_hr_schema_20220216_02.log [oracle@enp0s3 ~]$ expdp hr4 parfile=expdp_hr_20220216.par Export: Release 19.0.0.0.0 - Production on ..