-
SQL BOOSTER - 기본 셋팅 (테이블 스페이스, 데이터 블록)DataBase/SQL 2024. 6. 2. 16:27
1. 테이블 스페이스 생성
테이블 스페이스란?
- 테이블, 인덱스, 프로시저, 뷰 등의 객체들을 저장해놓은 오라클의 논리적인 저장공간
- 데이터를 물리적으로 저장하는 단위이다.
- 하나의 테이블 스페이스는 여러 개의 세그먼트로 구성
- 세그면트는 다시 익스텐스로 분리되고
- 익스텐스는 데이터 블럭으로 구성된다.
- 확장자는 dbf 혹은 ora이다.
- 세그먼트 : 하나의 테이블, 인덱스에 대응한다. (create table 등의 문장으로 생성됨)
- 익스텐스 : 연속된 데이터 블록의 집합, 세그먼트를 처음 만들거나, 세그먼트 저장공간이 더 필요한 경우 연속된 블록의 주소를 갖는 데이터 블록을 할당 받아 세그먼트에 추가
- 데이터블록: 데이터의 최소단위
* 사용자가 입력한 데이터는 테이블에 저장되고 테이블은 물리적 파일 안에서 데이터 블록 단위로 분할 저장됨
- 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
https://dondons.tistory.com/55
http://www.gurubee.net/lecture/2077
https://yum-history.tistory.com/263
'DataBase > SQL' 카테고리의 다른 글
성능 개선을 위한 기본 지식 - 실행 계획 (0) 2024.06.06 SQLBOOSTER - RANGE JOIN (1) 2024.06.06 SQLBOOSTER - INNER JOIN (0) 2024.06.04 SQL BOOSTER - 소계 구하기 ROLLUP, UNION ALL, 카테시안 조인,CUBE,GROUPING SETS (0) 2024.06.03 SQL BOOSTER - GROUP BY와 ROLLUP (0) 2024.06.02 - 테이블, 인덱스, 프로시저, 뷰 등의 객체들을 저장해놓은 오라클의 논리적인 저장공간