토토 꽁 머니는 간단한 프로그램입니다PostgreSQL. 동일한 시퀀스의 SQL을 실행합니다토토 꽁 머니느슨한 시나리오를 테스트합니다select, 업데이트및삽입거래 당 명령. 그러나 그것은입니다
토토 꽁 머니의 일반적인 출력은 다음과 같습니다.
트랜잭션 유형 : TPC-B (정렬)
처음 6 줄은 가장 중요한 것 중 일부를보고합니다.-t모드, 실제 만
기본 TPC-B 유사 트랜잭션 테스트는 구체적으로 필요합니다토토 꽁 머니|-i(초기화) 생성 및
토토 꽁 머니 -i [ 기타 옵션 ] dbname
여기서dbname이름입니다-h, -p및/또는-u연결 방법을 지정하는 옵션
주의 |
토토 꽁 머니 -I4를 생성합니다토토 꽁 머니_accounts, 토토 꽁 머니_BRANCHES, 토토 꽁 머니_history및토토 꽁 머니_tellers, 파괴 |
기본값에서"스케일 팩터"1,
행의 표 #
당신은 (그리고 아마도 대부분의 목적을 위해)-s(스케일-f(FillFactor)
필요한 설정을 마친 후에는-i, 즉
토토 꽁 머니 [ 옵션 ] dbname
거의 모든 경우에 유용하게 만들기 위해 몇 가지 옵션이 필요합니다.-c(클라이언트 수),-t(숫자-t(시간 제한) 및-f(사용자 정의 스크립트 파일 지정). 보다
다음은 세 가지 하위 섹션으로 나뉩니다
토토 꽁 머니
초기화 모드를 호출해야합니다.
생성토토 꽁 머니_accounts, 토토 꽁 머니_tellersand토토 꽁 머니_BRANCHES주어진 테이블
스케일별로 생성 된 행의 수를 곱하십시오-S 100의지토토 꽁 머니_accounts테이블. 기본값입니다
지정된 테이블 스페이스에서 인덱스를 만듭니다
지정된 테이블 스페이스에서 테이블을 만듭니다
모든 테이블을 사용하지 않는 테이블로 만듭니다
토토 꽁 머니
시뮬레이션 된 클라이언트 수, 즉 수의 수
각 거래에 대한 새 연결을 설정하고
인쇄 디버깅 출력.
사용자 정의 스크립트에서 사용할 변수 정의 (참조-d옵션은입니다
트랜잭션 스크립트 읽기filename. 자세한 내용은 아래를 참조하십시오.-n, -s,-f상호입니다
내 직원 스레드 수토토 꽁 머니. 둘 이상의 스레드를 사용합니다
각 트랜잭션에서 발생한 시간을 로그에 쓰십시오.
쿼리 제출에 사용할 프로토콜
단순: 간단한 쿼리를 사용하십시오
확장: 확장 사용
준비: 사용 확장
기본값은 간단한 쿼리 프로토콜입니다. (보다46 장자세한 내용은
테스트를 실행하기 전에 진공 청소기를 수행하지 마십시오. 이것필요한당신이 있다면토토 꽁 머니_accounts, 토토 꽁 머니_BRANCHES, 토토 꽁 머니_history및토토 꽁 머니_tellers.
업데이트하지 않음토토 꽁 머니_tellersand토토 꽁 머니_BRANCHES. 이것은 피할 것입니다
평균 상태 당 대기 시간을보고하십시오 (실행
지정된 척도 요소를보고토토 꽁 머니의 출력. 내장토토 꽁 머니_BRANCHES테이블.-f옵션), 스케일 팩터가 될 것입니다
TPC-B와 유사한 대신 선택 전용 트랜잭션을 수행합니다
각 클라이언트가 실행되는 트랜잭션 수입니다. 기본값입니다
-tand-t
실행하기 전에 4 개의 표준 테이블을 모두 진공하십시오-nNOR-v, 토토 꽁 머니는 진공 청소기토토 꽁 머니_tellersand토토 꽁 머니_BRANCHES테이블 및토토 꽁 머니_history.
기본 트랜잭션 스크립트는 7 개의 명령을 발행합니다
시작;
PGBENCH_ACCOUNTS 업데이트 세트 Abalance
Amalance를 선택하십시오
PGBENCH_TELLERS 업데이트 tbalance를 설정합니다
토토 꽁 머니_BRANCHES 업데이트 bbalance
토토 꽁 머니_history에 삽입 (tid,
끝;
지정하면-n, 4 단계 및 5 단계-s, 만selectIS
토토 꽁 머니지원이 있습니다-f옵션). 이것에서"거래"하나로 계산합니다-f옵션)
스크립트 파일의 형식은 한 줄 당 하나의 SQL 명령입니다.--무시됩니다. 스크립트"메타,토토 꽁 머니아래 설명대로 자체.
스크립트를위한 간단한 변수-치수 시설이 있습니다-d옵션, 위에서 설명하거나 메타에 의해-d명령 줄 옵션,스케일:variablename.
스크립트 파일 메타 명령은 백 슬래시로 시작합니다 (\). 메타 명령에 대한 인수는 분리됩니다
변수 설정varname계산 된 정수 값으로. 각Operand는 정수입니다:variablenamea운영자can be+, -, *또는/.
예 :
\ set ntellers 10 * : scale
변수 설정varname한계 사이의 임의의 정수 값으로Minandmax포함. 각 한계는 될 수 있습니다:variablenamea
예 :
\ setrandom Aid 1 : naccounts
지정된 것에 대한 스크립트 실행이 수면을 유발합니다US),MS) 또는 초s). 장치가 생략되면번호는 정수 일 수 있습니다:variablenamea
예 :
\ sleep 10 ms
변수 설정varname쉘 명령의 결과명령. 명령은 반환해야합니다
인수:variablenamea인수콜론으로 시작하여, 당신인수.
예 :
\ setshell variable_to_be_asigned 명령 literal_argument : variable :: literal_starting_with_colon
동일\ setshell그러나
예 :
\ shell Command literal_argument : 변수 :: literal_starting_with_colon
예를 들어 내장의 전체 정의
\ set nbranches : scale
이 스크립트는 트랜잭션의 각 반복을 허용합니다
with-l옵션,토토 꽁 머니각각이 취한 시간을 씁니다토토 꽁 머니_log.NNN, 여기서NNN토토 꽁 머니 프로세스의 PID입니다. 만약에-j옵션은 2 이상입니다토토 꽁 머니_log.NNN.mmm, 여기서mmm는 각각의 순차적 숫자입니다
로그의 형식은 다음과 같습니다.
client_id Transaction_No Time file_no time_epoch time_us
여기서Time총계입니다file_no스크립트 파일을 식별합니다-f) 및time_epoch/time_us는 Unix Epoch 형식 Timestamp입니다
여기 예제 출력이 있습니다 :
0 199 2241 0 1175850568 995598 0 200 2465 0 1175850568 998079 0 201 2513 0 1175850569 608 0 202 2038 0 1175850569 2663