● 가상 데이터 입력할 테이블 생성
CREATE TABLE TEST(
V1 VARCHAR2(100),
V2 VARCHAR2(100),
V3 VARCHAR2(100),
V4 VARCHAR2(100),
V5 VARCHAR2(100),
V6 VARCHAR2(100),
V7 VARCHAR2(100),
V8 VARCHAR2(100),
V9 VARCHAR2(100),
V10 VARCHAR2(100)
);
● 100만건 입력 스크립트 실행
INSERT INTO TEST
SELECT
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000),
ROUND(DBMS_RANDOM.VALUE() * 1000000000)
FROM
DUAL
CONNECT BY
LEVEL <= 1000000
● 입력 속도 확인 결과 / DBeaver v25.0.0
● 입력 속도 결정적 장비 정보 - I/O HDD, M.2 GEN5 SSD
● 백만건 집계 / 0.3초
● 추가 백만건 입력 및 입력에 따른 테이블스페이스 변화 / 9초
- 백만건 입력 전 용량 / 133MB
- 백만건 입력 후 용량 / 257MB / 2배 증가(최초 테이블스페이스 사용 기준)
● 대부분 회사의 입출력 장치(SATA or SAS)에 만든 테이블스페이스 테스트
- 종전 입출력 하드웨어 스펙
- 대부분 서버 장비 입출력 하드웨어 스펙
눈으로 보이는 성능 차이는 62배. 그럼 실질적으로 느린 장치에다 테이블스페이스 만들고 동일하게 성능 테스트
● 2GB 테이블스페이스 생성 / 느린 하드라 그런가 11초 걸림
CREATE TABLESPACE TEST
DATAFILE '/PATH.../.../test.dbf'
SIZE 2048M
AUTOEXTEND ON
NEXT 4M MAXSIZE UNLIMITED
LOGGING PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT MANUAL
FLASHBACK ON;
만들고 봤더니 기존 대비 10배 크게 만듬
● 만든 거 삭제
● 초기 100MB 용량으로 테이블스페이스 다시 생성
● 해당 영역으로 테이블 생성
● 입력 테스트 / 10초 / M.2와 같음.. ㅎㅎ
● 추가 100만건 입력 후 테이블스페이스 변화
- 각 200만 데이터가 들어있는 USERS, TEST 테이블스페이스 용량 비슷해짐
● 각 200만건 있는 TEST, TEST2 테이블 조회
결국 둘 다 조회 속도 같음
● 결론
DB에서 M.2 SSD 단순 입력/조회 성능은 같다??? I/O 62배 차이눈?? 상관 없는겨??
랜덤 액세스에서 차이 나는겨?? 일단 요기까지
'DBMS > ORACLE' 카테고리의 다른 글
설치한 ORACLE 엔터프라이즈 수동 시작 (0) | 2025.03.09 |
---|---|
오라클 테이블 용량 확인 (0) | 2025.03.07 |
오라클 테이블스페이스 관리 (0) | 2025.03.04 |
오라클 최초 사용 - 사용자 계정 생성 (0) | 2025.03.04 |
DBA 무조건 로그인 (0) | 2025.03.04 |