반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

멍청해서 기록한다

TPC-H 데이터베이스 성능 측정 본문

Etc

TPC-H 데이터베이스 성능 측정

개발근로자 2020. 1. 20. 09:48
반응형

재애애애애미 있을 줄 알았는데... 알고보니 별거 없는 성능 테스트..

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