멍청해서 기록한다
TPC-H 데이터베이스 성능 측정 본문
재애애애애미 있을 줄 알았는데... 알고보니 별거 없는 성능 테스트..
TPC-H의 경우 22개 쿼리로 DBMS의 성능을 확인함.
가독성은 쓰레기지만 본인 실력 수준이 카피할 정도는 되고, 필요하면 알아서 보겠지.
아래 했던 내용들 기입함.
//----------------------
//1 디비세팅
//----------------------
/dbgen/makefile.suite 파일을 makefile명으로 수정
CHANGE NAME OF ANSI COMPILER HERE 부분 CC = gcc
# Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)
# SQLSERVER, SYBASE, ORACLE, VECTORWISE
# Current values for MACHINE are: ATT, DOS, HP, IBM, ICL, MVS,
# SGI, SUN, U2200, VMS, LINUX, WIN32
# Current values for WORKLOAD are: TPCH
지원하는건 위 내용임.
DATABASE= ORACLE
MACHINE= LINUX
WORKLOAD= TPCH
로 변경(본인이 사용하는 것으로 컨택)
//----------------------
//2 make
//----------------------
$ make //make 실패시 gcc, make 설치 확인
빌드 완료하면
$ file dbgen 명령으로
dbgen: !!@#%@#$^@#^@$#%
$ file qgen 명령으로
qgen: !@#%!#$@%@#$^@$#
빌드 확인
//----------------------
//3 데이터 구조 생성
//----------------------
dss.ddl //[8개 테이블 생성]
dbgen //[데이터 로드 sql 생성]
//scale factor 설정
//설정 후 dbgen 실행시 8개의 .tbl 파일이 생성
//.tbl 파일에 8개 테이블에 인서트하는 쿼리 생성
//예를들어 dbgen -s 10 수행시 10기가 테스트 구축
//-h 옵션으로 dbgen 수행 방법을 알 수 있음
//sed 's/.$//' filename /* 각 행 마지막 1글자 삭제 */
//수행시 .tbl 파일이 생성됨
dss.ri //[테이블 인덱스 생성]
//파일 내 명령 수행하여 인덱스 생성
//-----------------------
//4 시험 쿼리 생성
//-----------------------
dbgen/queries/ //디렉토리 아래 22종류의 쿼리 존재
//쿼리 생성시 랜덤 시드는 dists.dss 파일을 참조하여 생성됨
//-----------------------
//5 쿼리 수정
//-----------------------
DBMS마다 query syntax가 조금씩다르기 때문에 Toolkit 수정이 필요
수정할 파일명은 dss.ddl, dss.ri 2개 파일과 queries/ 디렉토리 아래의 템플릿임.
//-----------------------
//6 데이터파일 생성
//-----------------------
dbgen 수행
//인자 값으로 scale factor를 줄 수 있음
// -h 옵션으로 dbgen 수행 방법을 알 수 있음
//수행시 .tbl 파일이 생성됨
//----------------------
//7 데이터 로드
//----------------------
//1 - 디비생성
create database tpch;//스크림 명령 동일한지 확인
//2 - 테이블 생성(아래 mysql 명령)
$"디비 접속문" < dss.ddl
//3 - 테이블 인덱스 생성
//4 - 인덱스 생성
$"디비 접속문" < ./dss.ri
//---------------------
//8 쿼리 생성
//---------------------
//export DSS_QUERY=PATH_TO_QUERIES_FOLDER
//위의 환경변수 지정 안해줄 경우 qgen이 실행안됨
$ for i in {1..22}; do ./qgen $i > query-$i.sql; done
//---------------------
//9 쿼리 실행
//---------------------
$ for i in {1..22}; do "여기에 디비 접속문" < dbgen/queries/query-$i.sql
//생성된 쿼리 파일을 가지고 Execute
'Etc' 카테고리의 다른 글
인터넷 끊김 발생시 대처법 (0) | 2020.10.16 |
---|---|
데몬 모니터링 툴 (0) | 2020.04.10 |
캐시 동작 원리 (0) | 2020.03.10 |
정규표현식 모음 (0) | 2020.02.07 |
TPC-H 데이터베이스 성능 검사 (0) | 2020.01.08 |