PGBenchlà kèo bóng đá euro chương trình đơn giản choPOSTGRESQL. Nó chạy cùng kèo bóng đá euro chuỗi SQLPGBenchKiểm tra kèo bóng đá euro kịch bản dựa trên kèo bóng đá euro cách lỏng lẻokèo bóng đá euro, Cập nhậtvàChènlệnh cho mỗi giao dịch. Tuy nhiên, nó là dễ dàng
Đầu ra điển hình từ PGBench trông giống như:
Loại giao dịch: TPC-B (loại)
Sáu dòng đầu tiên báo cáo kèo bóng đá euro số tham số quan trọng nhất-Tchế độ, chỉ có số lượng giao dịch thực tế là
Kiểm tra giao dịch TPC-B mặc định yêu cầu các bảng cụ thểPGBenchnên được gọi bằng-I(Khởi tạo)
pgbench -i [ kèo bóng đá euro khác ]dbname
WHEREdbnamelà tên của-H, -P, và/hoặc-Ukèo bóng đá euro để chỉ định cách kết nối với cơ sở dữ liệu
THẬN TRỌNG |
pgbench -iTạo bốn bảngpgbench_accounts, pgbench_branches, pgbench_historyvàpgbench_tellers, Phá hủy bất kỳ bảng hiện có nào |
Tại mặc định"Yếu tố tỷ lệ"của 1,
Bảng # hàng
Bạn có thể (và, cho hầu hết các mục đích, có lẽ nên) tăng-S(tỷ lệ-f(fillfactor) kèo bóng đá euro
kèo bóng đá euro khi bạn đã thực hiện thiết lập cần thiết, bạn có thể chạy-I, đó là
pgbench [ kèo bóng đá euro ]dbname
Trong hầu hết các trường hợp, bạn sẽ cần kèo bóng đá euro số tùy chọn để tạo ra kèo bóng đá euro-C(số lượng khách hàng),-T(số lượng-T(giới hạn thời gian) và-f(Chỉ định tệp tập lệnh kèo bóng đá euro chỉnh). Nhìn thấy
Sau đây được chia thành ba tiểu mục: khác nhau
PGBenchChấp nhận như sau
Yêu cầu gọi chế độ khởi tạo.
Tạopgbench_accounts, pgbench_tellersvàpgbench_branchesBảng với giá trị đã cho
Không thực hiện không hút bụi sau khi khởi tạo.
Chuyển đổi ghi nhật ký sang chế độ yên tĩnh, chỉ tạo ra kèo bóng đá euro tiến trình
Nhân số lượng hàng được tạo bởi hệ số tỷ lệ. Vì-S 100sẽ tạo 10.000.000pgbench_accountsBảng.viện trợcột) sẽ chuyển sang sử dụng các số nguyên lớn hơn (Bigint), để đủ lớn để giữ phạm vi của
Tạo các ràng buộc khóa nước ngoài giữa các bảng tiêu chuẩn.
Tạo các chỉ mục trong không gian bảng được chỉ định, thay vì
Tạo bảng trong không gian bảng được chỉ định, thay vì
Tạo tất cả các bảng dưới dạng bảng chưa được tính, thay vì vĩnh viễn
PGBenchChấp nhận như sau
Số lượng khách hàng mô phỏng, nghĩa là, số lượng đồng thời
Thiết lập kết nối mới cho mỗi giao dịch, thay vì
Đầu ra gỡ lỗi in.
Xác định kèo bóng đá euro biến để sử dụng bởi tập lệnh tùy chỉnh (xem bên dưới).-Dkèo bóng đá euro được cho phép.
Đọc tập lệnh giao dịch từFileName. Xem bên dưới để biết chi tiết.-N, -Svà-flà loại trừ lẫn nhau.
Số lượng chủ đề công nhân trongPGBench. Sử dụng nhiều hơn kèo bóng đá euro chủ đề có thể
Viết thời gian được thực hiện bởi mỗi giao dịch vào kèo bóng đá euro tệp nhật ký. Nhìn thấy
Giao thức để sử dụng để gửi truy vấn đến máy chủ:
đơn giản: Sử dụng giao thức truy vấn đơn giản.
mở rộng: Sử dụng truy vấn mở rộng
Chuẩn bị: Sử dụng giao thức truy vấn mở rộng
Mặc định là giao thức truy vấn đơn giản. (Nhìn thấyChương 48Để biết thêm thông tin.)
Thực hiện không có hút bụi trước khi chạy thử nghiệm. kèo bóng đá euro này làcần thiếtNếu bạn làpgbench_accounts, pgbench_branches, pgbench_historyvàpgbench_tellers.
Không cập nhậtpgbench_tellersvàpgbench_branches. Điều này sẽ tránh
Báo cáo độ trễ trung bình trên mỗi lần (thời gian thực hiện từ
Báo cáo hệ số tỷ lệ được chỉ định trongPGBenchđầu ra. Với các bài kiểm tra tích hợp,pgbench_branchesBảng. Tuy nhiên, khi thử nghiệm-fkèo bóng đá euro), tỷ lệ
Thực hiện các giao dịch chỉ kèo bóng đá euro thay vì kiểm tra-giống TPC-B.
Số lượng giao dịch mỗi khách hàng chạy. Mặc định là 10.
Chạy thử nghiệm trong nhiều giây này, thay vì kèo bóng đá euro số cố định-Tvà-Tlà loại trừ lẫn nhau.
Chacuum Tất cả bốn bảng tiêu chuẩn trước khi chạy thử nghiệm. Với-Ncũng không-V,pgbench_tellersvàpgbench_branchesBảng và WillPGBench_History.
Độ dài khoảng thời gian tổng hợp (tính bằng giây). Chỉ có thể được sử dụng-L- Với điều này
kèo bóng đá euro này hiện không được hỗ trợ trên Windows.
Tốc độ lấy mẫu, được sử dụng khi ghi dữ liệu vào nhật ký, để giảm
Hãy nhớ đưa tỷ lệ lấy mẫu vào tài khoản khi xử lý
Tập lệnh giao dịch mặc định phát hành bảy lệnh mỗi
bắt đầu;
Cập nhật pgbench_accounts đặt Abalance =
kèo bóng đá euro Abalance từ PGBench_Accounts WHERE
Cập nhật pgbench_tellers đặt tbalance =
Cập nhật pgbench_branches đặt bbalance =
Chèn vào pgbench_history (tid, giá thầu, viện trợ,
end;
Nếu bạn chỉ định-N, Bước 4 và 5 không-S, chỉkèo bóng đá euroIS
PGBenchcó hỗ trợ chạy-fkèo bóng đá euro). Trong trường hợp này A"Giao dịch"được tính là kèo bóng đá euro lần thực thi tập lệnh-fTùy chọn), trong trường hợp đó là kèo bóng đá euro trong những điều ngẫu nhiên
Định dạng của tệp tập lệnh là kèo bóng đá euro lệnh sql trên mỗi dòng;--bị bỏ qua. Tập tin tập lệnh"Các lệnh meta", màPGBenchchính nó, chính nó,
Có kèo bóng đá euro cơ sở thay thế biến đổi đơn giản cho tập lệnh-Dkèo bóng đá euro, được giải thích ở trên hoặc theo lệnh meta-Dkèo bóng đá euro dòng lệnh, biếntỷ lệđược đặt trước cho yếu tố tỷ lệ hiện tại. kèo bóng đá euro lần:variablename. Khi chạy nhiều hơn kèo bóng đá euro
Các lệnh meta tập tin tập lệnh bắt đầu bằng dấu gạch chéo ngược (\). Đối số với lệnh meta được phân tách bằng
Đặt biếnvarnameđến atoán hạnglà hằng số nguyên hoặc:variablenametham chiếu đến kèo bóng đá euro biến cóNhà điều hànhCó thể+, -, *hoặc/.
Ví dụ:
\ SET NTELLERS 10 *: Tỷ lệ
Đặt biếnvarnameđến aminvàmaxBao gồm. Mỗi giới hạn có thể là kèo bóng đá euro hằng số số nguyên hoặc:variablenametham chiếu đến kèo bóng đá euro biến có
Ví dụ:
\ SetRandom Aid 1: Naccounts
khiến việc thực thi tập lệnh ngủ trong thời lượng được chỉ định trongUS), mili giâyMS) hoặc giây (S). Nếu đơn vị bị bỏ qua thì giây làSốcó thể là kèo bóng đá euro:Variablenametham chiếu đến kèo bóng đá euro biến có
Ví dụ:
\ ngủ 10 ms
Đặt biếnvarnameđếnlệnh. Lệnh phải trả về kèo bóng đá euro số nguyên
Đối sốcó thể là kèo bóng đá euro văn bản:variablenametham chiếu đến kèo bóng đá euro biến của bất kỳĐối sốBắt đầu với các dấu chấmĐối số.
Ví dụ:
28929_29030
giống như\ setshell, nhưng kết quả là
Ví dụ:
\ shell lệnh literal_argument: biến :: literal_starting_with_colon
Ví dụ, định nghĩa đầy đủ của TPC-B-like tích hợp
\ Đặt nbranches: tỷ lệ
tập lệnh này cho phép mỗi lần lặp lại giao dịch
với-Lkèo bóng đá euro nhưng không có--Ggregate-Interval, PGBenchViết thời gian của mỗipgbench_log.nnn,,nnnlà PID của PGBench-Jkèo bóng đá euro từ 2 hoặc cao hơn,pgbench_log.nnn.MMM,,MMMlà số tuần tự
Định dạng của nhật ký là:
client_id Giao dịch_no thời gian file_no time_epoch time_us
WHEREthời gianCó phải tổng số đã biến mấtfile_noXác định tệp tập lệnh nào đã được sử dụng-f) vàtime_epoch/Time_uslà dấu thời gian định dạng Epoch Unix và
Đây là đầu ra ví dụ:
0 199 2241 0 1175850568 995598 0 200 2465 0 1175850568 998079 0 201 2513 0 1175850569 608 0 202 2038 0 1175850569 2663
Khi chạy thử nghiệm dài về phần cứng có thể xử lý nhiều-Sampling-Ratetùy chọn có thể được sử dụng để chỉ ghi lại kèo bóng đá euro
với--Ggregate-Intervalkèo bóng đá euro,
interval_start num_of_transactions latency_sum latency_2_sum min_latency Max_Latency
WHEREInterval_Startlànum_of_transactionslà số lượng củalatency_sumlà kèo bóng đá euro tổng của độ trễ (vì vậy bạn có thểlatency_sumlà kèo bóng đá euro tổng của độ trễ vàlatency_2_sumlà tổng số thứ 2min_latency- Độ trễ tối thiểu trongMAX_LATENCY- tối đa
Đây là ví dụ đầu ra:
1345828501 5601 1542744 483552416 61 2573 1345828503 7884 1979812 565806736 60 1479 1345828505 7208 1979422 567277552 59 1391 1345828507 7685 1980268 569784714 60 1398 1345828509 7073 1979779 573489941 236 1411
Lưu ý rằng trong khi tệp nhật ký đơn giản (không phân chia) chứa kèo bóng đá euro
với-Rkèo bóng đá euro,PGBenchThu thập thời gian giao dịch đã qua
Đối với tập lệnh mặc định, đầu ra sẽ trông giống như
Khởi động chân không ... kết thúc.
Nếu nhiều tệp tập lệnh được chỉ định, trung bình là
Lưu ý rằng việc thu thập thông tin thời gian bổ sung cần thiết
Nó rất dễ sử dụngPGBenchĐể tạo ra các số hoàn toàn vô nghĩa. Đây là kèo bóng đá euro số hướng dẫn
Ở nơi đầu tiên,không bao giờTin bất kỳ bài kiểm tra nào chạy cho-Thoặc-T
Đối với kịch bản kiểm tra TPC-B-like mặc định, việc khởi tạo-S) Ít nhất là-C); nếu không bạn sẽ chủ yếu là đo lường-ShàngPGBench_BranchesBảng, và-CGiá trị vượt quá-Schắc chắn sẽ dẫn đến rất nhiều giao dịch bị chặn chờ đợi
Kịch bản kiểm tra mặc định cũng khá nhạy cảm với thời gian
Giới hạn củaPGBenchlà như vậyPGBenchTrên kèo bóng đá euro máy khácPGBenchtrường hợp đồng thời, trên kèo bóng đá euro số
Nếu người dùng không tin cậy có quyền truy cập vào cơ sở dữ liệu không cóAn toàn, không chạyPGBenchTrong cơ sở dữ liệu đó.PGBenchsử dụng tên không đủ tiêu chuẩn và không