DataBase/SQL

SQL BOOSTER - 기본 셋팅 (테이블 스페이스, 데이터 블록)

now0204 2024. 6. 2. 16:27

 

1. 테이블 스페이스 생성

 

테이블 스페이스란? 

  • 테이블, 인덱스, 프로시저, 뷰 등의 객체들을 저장해놓은 오라클의 논리적인 저장공간
    • 데이터를 물리적으로 저장하는 단위이다. 
    • 하나의 테이블 스페이스는 여러 개의 세그먼트로 구성
    • 세그면트는 다시 익스텐스로 분리되고 
    • 익스텐스는 데이터 블럭으로 구성된다. 
  • 확장자는 dbf 혹은 ora이다. 

출처: http://www.gurubee.net/lecture/2077

  • 세그먼트 : 하나의 테이블, 인덱스에 대응한다. (create table 등의 문장으로 생성됨)
  • 익스텐스 : 연속된 데이터 블록의 집합, 세그먼트를 처음 만들거나, 세그먼트 저장공간이 더 필요한 경우 연속된 블록의 주소를 갖는 데이터 블록을 할당 받아 세그먼트에 추가
  • 데이터블록: 데이터의 최소단위 

* 사용자가 입력한 데이터는 테이블에 저장되고 테이블은 물리적 파일 안에서 데이터 블록 단위로 분할 저장됨

출처: https://yum-history.tistory.com/263

  •  Row Data안에 열 헤더와 컬럼 정보, 값 등등이 담겨 있음 
  • 데이터 저장하면, row의 주소와 column 정보와 값 등등을 저장해두는 듯
CREATE TABLESPACE ORA_SQL_TEST_TS 
    DATAFILE 
        'C:\Users\won\Desktop\document\ts\ORA_SQL_TEST.DBA' SIZE 10737418240 
    
    SEGMENT SPACE MANAGEMENT AUTO 
    EXTENT MANAGEMENT LOCAL;
  • 아래 명령어를 통해 테이블 스페이스를 생성해두자

 

2. user 생성 

 

alter session set "_ORACLE_SCRIPT"=true;
  • 위 명령어 입력후 ORA_SQL_TEST USER를 만들었다. DEFAULT TABLESPACE는 ORA_SQL_TEST_TS;로 두었다.
ALTER USER ORA_SQL_TEST ACCOUNT UNLOCK;
-- 데이터 베이스에 접속할 수 있는 connect와 데이터 베이스 리소스 사용할 수 있는 권한 부여
GRANT CONNECT, RESOURCE TO ORA_SQL_TEST;

-- 데이터베이스 시스템 매개변수 변경 가능하도록 권한 줌 (매우 높은 수준의 권한)
GRANT ALTER SYSTEM TO ORA_SQL_TEST;

-- V_SQL 뷰에 대해 select 권한을 부여 해당 뷰는 데이터 베이스 내의 SQL 문장 정보 제공 
GRANT SELECT ON V_$SQL TO ORA_SQL_TEST;

--SQL 실행 계획 및 통계 정보 제공하는 뷰 SELECT 권한
GRANT SELECT ON V_$SQL_PLAN_STATISTICS_ALL TO ORA_SQL_TEST;

--SQL 실행 계획 정보를 제공하는 뷰에 권한 
GRANT SELECT ON V_$SQL_PLAN TO ORA_SQL_TEST;

--데이터 베이스에 연결된 세션들에 대한 정보 제공 뷰 연결 
GRANT SELECT ON V_$SESSION TO ORA_SQL_TEST;

-- 통계 수집을 위한 여러 프로시저 포함흐는 패키지 execute 권한
GRANT EXECUTE ON DBMS_STATS TO ORA_SQL_TEST;

-- 세그먼트 (테이블, 인덱스 ) 정보 제공 뷰 권한 
GRANT SELECT ON DBA_SEGMENTS TO ORA_SQL_TEST;

 

SELECT T1.FILE_NAME,(T1.BYTES/1024/1024)TMP_MB FROM dba_temp_files T1;

ALTER DATABASE TEMPFILE 'C:\APP\WON\PRODUCT\18.0.0\ORADATA\XE\TEMP01.DBF' RESIZE 5000M;
  • dba_temp_files ( 데이터 베이스의 임시 파일 정보 제공) 뷰에서 임시 파일 이름과 크기 select
  • 아래 sql은 임시 파일 크기를 조정하는 sql이다. 
    • 데이터 베이스 임시 파일은 임시 데이터 저장용 공간임
    • DB 운영 중 다양한 임시 작업을 지원하는 데 사용한다.
      • 임시 테이블 스페이스 : 임시 파일은 임시 테이블 스페이스에 할당 정렬, 조인, 인덱스 생성 등에 사용
      • 대규모 정렬 작업: 정렬 연산이 메모리에서 처리되지 않을 만큼 큰 경우 
      • 해시조인 : 메모리에서 처리되지 않은 해시조인같은 경우 중간 해시 테이블을 임시 파일에 저장 
      • 임시 테이블: 사용자 세션 혹은 트랜잭션에 따라 생성되었다가 파괴됨

3.연습용 테이블 구성 

  • 기준코드구분/기준코드: 시스템 전반적으로 사용하는 기준코드 (C_BAS_CD_DV)
  • 지역(마스터) : 지역을 관리 (M_RGN)
  • 고객(마스터) : 고객 정보 관리 (M_CUS)
  • 아이템(마스터) : 쇼핑몰에서 판매하는 아이템을 관리
  • 아이템단가이력(마스터) : 아이템의 판매 단가를 이력 구조로 관리(M_ITEM_PRC_HIS)
  • 아이템평가(실적) : 고객이 아이템을 평가 기록 
  • 주문/주문상세(실적) : 고객의 주문정보 

*기준코드란 시스템에서 사용하는 코드성 데이터이다. 지불유형(PAY_TP), 주문상태(ORD_ST),아이템 유형과 같은 코드성 데이터 의미한다. 이러한 기준 코드는 시스템에 따라 공통코드 기초코드 마스터코드 그룹코드와 같이 다양한 용어로 부른다. 

 


4. 업무 프로세스

 

고객은 주문을 할 수 있음 -> 하나의 주문에 여러 개의 아이템 포함 가능

고객은 아이템에 좋고 나쁨을 평가할 수 있다. 

아이템 단가는 이력을 이용해 관리 중이다. 

 


연습용 데이터 삽입하는 과정에서 권한 부족이 나오는 경우 

alter user [유저명] default tablespace [테이블스페이스] quota unlimited on [테이블스페이스];
ex) alter user myuser default tablespace users quota unlimited on users;
  • 기본 테이블 스페이스로 변경했는데도 불구하고, 잘 안됐는데 위 SQL로 해결했다
  • (DBA에서 실행해야한다.)

참고자료

 

https://www.yes24.com/Product/Goods/82818767

 

SQL BOOSTER - 예스24

SQL BOOSTER는 프로젝트 성공을 위한 SQL 필독서다. 이 책은 마치 프로젝트를 진행하는 순서처럼 구성되어 있다. 프로젝트 투입을 위해 필요한 SQL 기술을 설명하고, 성능 테스트를 위해 필요한 기술

www.yes24.com

 

https://dondons.tistory.com/55

 

[에러노트] Oracle 12c 계정 생성 오류 ORA-65096: 공통 사용자 또는 롤 이름이 부적합니다.

에러노트 Oracle 12c 계정 생성 오류 ORA-65096CREATE USER study IDENTIFIED BY oracle; Oracle 12c를 설치하고 공부를 위해 위의 내용대로 유저를 만들었습니다. ORA-65096: 共通ユーザーまたはロール名が無効ですORA

dondons.tistory.com

http://www.gurubee.net/lecture/2077

 

Tablespace 관리

테이블스페이스란? 테이블스페이스는 논리적 저장 영역과 물리적 저장 영역에 공통적으로 포함되며 Tibero RDBMS의 모든 데이터를 저장한다. 논리..

www.gurubee.net

https://yum-history.tistory.com/263