Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng soi kèo bóng đá truoctran trang chohiện tạiPhiên bản hoặc một trong soi kèo bóng đá truoctran phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

soi kèo bóng đá truoctranF.23. PGBench

PGBenchlà một chương trình đơn giản Để chạy soi kèo bóng đá truoctran bài kiểm tra điểm chuẩn trênPostgreSQL. Nó chạy cùng một chuỗi SQL soi kèo bóng đá truoctran lệnh lặp đi lặp lại, có thể trong nhiều cơ sở dữ liệu đồng thời soi kèo bóng đá truoctran phiên, và sau đó tính toán tỷ lệ giao dịch trung bình (Giao dịch mỗi giây). Theo mặc định,PGBenchKiểm tra soi kèo bóng đá truoctran kịch bản soi kèo bóng đá truoctran cách lỏng lẻo Dựa trên TPC-B, liên quan đến nămChọn, Cập nhậtChènlệnh cho mỗi giao dịch. Tuy nhiên, nó là Dễ dàng kiểm tra soi kèo bóng đá truoctran trường hợp khác bằng cách viết tập lệnh giao dịch của riêng bạn Tệp.

Đầu ra điển hình từ PGBench trông giống như:

Loại soi kèo bóng đá truoctran: TPC-B (loại)
Hệ số tỷ lệ: 10
Chế độ truy vấn: Đơn giản
Số lượng khách hàng: 10
Số lượng chủ đề: 1
Số lượng soi kèo bóng đá truoctran trên mỗi khách hàng: 1000
Số lượng soi kèo bóng đá truoctran thực sự được xử lý: 10000/10000
TPS = 85.184871 (bao gồm cả kết nối thiết lập)
TPS = 85.296346 (không bao gồm thiết lập kết nối)

10251_10678

F.23.1. Tổng quan

Kiểm tra giao dịch TPC-B mặc định yêu cầu cụ thể soi kèo bóng đá truoctran bảng được thiết lập trước.PGBenchnên được gọi bằng-I10997_11221

pgbench -i [ tùy chọn khác ]dbname

WHEREdbnamelà tên của Cơ sở dữ liệu đã được tạo để kiểm tra. (Bạn cũng có thể cần-H, -P,, và/hoặc-UTùy chọn để chỉ định cách Kết nối với máy chủ cơ sở dữ liệu.)

THẬN TRỌNG

pgbench -iTạo bốn Bảngpgbench_accounts, pgbench_branches, pgbench_historypgbench_tellers, Phá hủy Bất kỳ bảng hiện có của soi kèo bóng đá truoctran tên này. Rất cẩn thận để sử dụng cơ sở dữ liệu khác nếu bạn có soi kèo bóng đá truoctran bảng có những bảng này Tên!

tại mặc định"Yếu tố tỷ lệ"của 1, soi kèo bóng đá truoctran bảng ban đầu chứa nhiều hàng này:

12574_12755

Bạn có thể (và, cho hầu hết soi kèo bóng đá truoctran mục đích, có lẽ nên) tăng số lượng hàng bằng cách sử dụng-S(Hệ số tỷ lệ) tùy chọn. The-f(fillfactor) cũng có thể được sử dụng tại thời điểm này.

Một khi bạn đã thực hiện thiết lập cần thiết, bạn có thể chạy điểm chuẩn với soi kèo bóng đá truoctran không bao gồm-I, đó là

pgbench [ Tùy chọn ]dbname

13344_13450-C(số lượng khách hàng),-T(số lượng soi kèo bóng đá truoctran),-T(giới hạn thời gian) và-f(Chỉ định tệp tập soi kèo bóng đá truoctran tùy chỉnh). Xem bên dưới để biết danh sách đầy đủ.

Phần F.23.2Hiển thị soi kèo bóng đá truoctran tùy chọn được sử dụng trong cơ sở dữ liệu khởi tạo, trong khiPhần F.23.3Hiển thị soi kèo bóng đá truoctran tùy chọn được sử dụng trong khi chạy điểm chuẩn vàPhần F.23.4Hiển thị soi kèo bóng đá truoctran tùy chọn hữu ích trong cả hai trường hợp.

F.23.2.PGBenchTùy chọn khởi tạo

PGBenchChấp nhận soi kèo bóng đá truoctran đối số khởi tạo dòng lệnh sau:

-f fillfactor

Tạopgbench_accounts, PGBench_Tellerspgbench_branchesBảng với giá trị đã cho chất làm đầy. Mặc định là 100.

-I

Yêu cầu gọi chế độ khởi tạo.

-S scale_factor

Nhân số lượng hàng được tạo bởi thang đo nhân tố. Ví dụ,-S 100Will Tạo 10.000.000 hàng trongpgbench_accountsBảng. Mặc định là 1.

F.23.3.PGBenchTùy chọn điểm chuẩn

PGBenchChấp nhận soi kèo bóng đá truoctran đối số điểm chuẩn dòng lệnh sau:

-C Khách hàng

Số lượng khách hàng mô phỏng, nghĩa là số lượng Phiên cơ sở dữ liệu đồng thời. Mặc định là 1.

-C

Thiết lập kết nối mới cho mỗi soi kèo bóng đá truoctran, thay vì làm nó chỉ một lần cho mỗi phiên khách hàng. Cái này rất hữu ích để đo chi phí kết nối.

-D

Đầu ra gỡ lỗi in.

-D varname=giá trị

Xác định một biến để sử dụng bởi tập soi kèo bóng đá truoctran tùy chỉnh (xem dưới). Nhiều-DTùy chọn là cho phép.

-f FileName

Đọc tập lệnh soi kèo bóng đá truoctran từFileName. Xem bên dưới để biết chi tiết.-N, -S,, Và-flà lẫn nhau loại trừ.

-J Chủ đề

Số lượng chủ đề công nhân trongPGBench. Sử dụng nhiều hơn một chủ đề Có thể hữu ích trên soi kèo bóng đá truoctran máy đa CPU. Số lượng của Khách hàng phải là bội số của số lượng chủ đề, Vì mỗi luồng được cung cấp cùng một số máy khách Phiên để quản lý. Mặc định là 1.

-L

Viết thời gian được thực hiện bởi mỗi soi kèo bóng đá truoctran vào nhật ký tài liệu. Xem bên dưới để biết chi tiết.

-M QueryMode

soi kèo bóng đá truoctran thức sử dụng để gửi truy vấn cho máy chủ:

  • đơn giản: Sử dụng truy vấn đơn giản soi kèo bóng đá truoctran thức.

  • mở rộng: Sử dụng mở rộng soi kèo bóng đá truoctran thức truy vấn.

  • Chuẩn bị: Sử dụng mở rộng Giao thức truy vấn với soi kèo bóng đá truoctran câu lệnh đã chuẩn bị.

Mặc định là soi kèo bóng đá truoctran thức truy vấn đơn giản. (Nhìn thấyChương 46Để biết thêm thông tin.)

-N

Thực hiện không có hút bụi trước khi chạy thử nghiệm. Cái này Tùy chọn làcần thiếtNếu bạn là chạy soi kèo bóng đá truoctran kịch bản kiểm tra tùy chỉnh không bao gồm Bảng tiêu chuẩnpgbench_accounts, pgbench_branches, pgbench_historypgbench_tellers.

-N

Không cập nhậtpgbench_tellerspgbench_branches. Điều này sẽ tránh Cập nhật sự tranh chấp trên soi kèo bóng đá truoctran bảng này, nhưng nó làm cho bài kiểm tra trường hợp thậm chí còn ít như tpc-b.

-S Scale_Factor

Báo cáo hệ số tỷ lệ được chỉ định trongPGBenchđầu ra. Với tích hợp soi kèo bóng đá truoctran xét nghiệm, điều này là không cần thiết; Yếu tố quy mô chính xác sẽ được phát hiện bằng cách đếm số lượng hàng trongpgbench_branchesBảng. Tuy nhiên, khi kiểm tra điểm chuẩn tùy chỉnh (-ftùy chọn), yếu tố tỷ lệ sẽ là được báo cáo là 1 trừ khi tùy chọn này được sử dụng.

-S

Thực hiện soi kèo bóng đá truoctran giao dịch chỉ chọn thay vì TPC-B-like Bài kiểm tra.

-T soi kèo bóng đá truoctran

Số lượng soi kèo bóng đá truoctran mỗi khách hàng chạy. Mặc định là 10.

-T giây

Chạy thử nghiệm trong nhiều giây này, thay vì a số lượng soi kèo bóng đá truoctran cố định cho mỗi khách hàng.-T20743_20747là loại trừ lẫn nhau.

-V

VACUUM Tất cả bốn bảng tiêu chuẩn trước khi chạy Bài kiểm tra. Không có-Ncũng không-V, PGBench sẽ hút bụipgbench_tellerspgbench_branchesBảng và sẽ cắt ngắnpgbench_history.

F.23.4.PGBenchTùy chọn chung

PGBenchChấp nhận soi kèo bóng đá truoctran đối số phổ biến theo lệnh sau:

-H tên máy chủ

Tên máy chủ của máy chủ cơ sở dữ liệu

-P Cổng

Số cổng của máy chủ cơ sở dữ liệu

-U Đăng nhập

Tên người dùng để kết nối là

F.23.5. Là gì"soi kèo bóng đá truoctran"Thật ra được thực hiện trong pgbench?

22382_22457

  1. bắt đầu;

  2. Cập nhật PGBench_Accounts Đặt Abalance = Abalance +: Delta WHERE viện trợ =: viện trợ;

  3. Chọn Abalance từ PGBench_Accounts WHERE AID =: AID;

  4. 22867_22950

  5. Cập nhật PGBench_Branches SET BBALEANCE = bbalance +: delta trong đó giá thầu =: giá thầu;

  6. Chèn vào pgbench_history (TID, Giá thầu, viện trợ, Delta, MTIME) Giá trị (: TID,: BID,: AID,: Delta, Current_timestamp);

  7. 23352_23358

Nếu bạn chỉ định-N, Bước 4 và 5 không bao gồm trong soi kèo bóng đá truoctran. Nếu bạn chỉ định-S, chỉChọnIS đã phát hành.

F.23.6. Tập soi kèo bóng đá truoctran tùy chỉnh

PGBenchcó hỗ trợ cho Chạy kịch bản điểm chuẩn tùy chỉnh bằng cách thay thế mặc định tập lệnh soi kèo bóng đá truoctran (được mô tả ở trên) với tập lệnh soi kèo bóng đá truoctran đọc từ một tệp (-fTùy chọn). Trong này trường hợp a"soi kèo bóng đá truoctran"được tính là một thực hiện một tập tin tập soi kèo bóng đá truoctran. Bạn thậm chí có thể chỉ định nhiều tập soi kèo bóng đá truoctran (nhiều-fTùy chọn), trong Trường hợp nào ngẫu nhiên một trong soi kèo bóng đá truoctran tập lệnh được chọn mỗi lần Phiên khách bắt đầu một giao dịch mới.

Định dạng của tệp tập lệnh là một lệnh sql trên mỗi dòng; soi kèo bóng đá truoctran lệnh SQL Multiline không được hỗ trợ. soi kèo bóng đá truoctran đường và đường trống bắt đầu với--bị bỏ qua. Kịch bản dòng tệp cũng có thể là"Meta soi kèo bóng đá truoctran ", được giải thích bởiPGBenchchính nó, như được mô tả bên dưới.

24682_24796-D24826_24942-DTùy chọn dòng soi kèo bóng đá truoctran, The biếnScaleđược đặt trước vào Yếu tố quy mô hiện tại. Sau khi được đặt, giá trị của một biến có thể là được chèn vào soi kèo bóng đá truoctran SQL bằng cách viết:25218_25232. Khi chạy nhiều hơn một phiên khách, mỗi phiên có tập hợp soi kèo bóng đá truoctran biến riêng.

soi kèo bóng đá truoctran lệnh meta tập tin 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 không gian trắng. soi kèo bóng đá truoctran lệnh meta này được hỗ trợ:

\ setvarname operand1[Nhà điều hành operand2]

Đặt biếnvarnamevới giá trị số nguyên được tính toán. MỗiToán tửlà soi kèo bóng đá truoctran số nguyên không đổi hoặc soi kèo bóng đá truoctran:variablenametham chiếu đến a Biến có giá trị số nguyên. TheNhà điều hànhcó thể+, -, *hoặc/.

Ví dụ:

\ SET NTELLERS 10 *: tỷ lệ
\ SetRandomvarname min Max

Đặt biếnvarnamevới giá trị số nguyên ngẫu nhiên giữa soi kèo bóng đá truoctran giới hạnminMaxBao gồm. Mỗi giới hạn có thể là Hằng số số nguyên hoặc:variablenametham chiếu đến a Biến có giá trị số nguyên.

Ví dụ:

\ SetRandom Aid 1: Naccounts
\ ngủSố[chúng tôi | MS | s]

khiến việc thực thi tập soi kèo bóng đá truoctran phải ngủ cho được chỉ định thời lượng tính bằng micro giây (US), mili giây (MS) hoặc giây (S). Nếu đơn vị bị bỏ qua thì giây là mặc định.Sốcó thể là soi kèo bóng đá truoctran số nguyên không đổi hoặc soi kèo bóng đá truoctran:variablenametham chiếu đến a Biến có giá trị số nguyên.

Ví dụ:

\ ngủ 10 ms
\ setshellvarname soi kèo bóng đá truoctran[Đối số...]

Đặt biếnvarnamevới kết quả của soi kèo bóng đá truoctran shellsoi kèo bóng đá truoctran. soi kèo bóng đá truoctran phải trả về một Giá trị số nguyên thông qua đầu ra tiêu chuẩn của nó.

Đối sốCó thể là soi kèo bóng đá truoctran trong hai soi kèo bóng đá truoctran hằng số văn bản hoặc soi kèo bóng đá truoctran:variablenametham chiếu đến a biến của bất kỳ loại. Nếu bạn muốn sử dụngĐối sốBắt đầu với dấu chấm, bạn cần thêm soi kèo bóng đá truoctran dấu hai chấm vào đầuĐối số.

Ví dụ:

29021_29123
\ shellsoi kèo bóng đá truoctran[Đối số...]

giống như\ setshell, nhưng Kết quả bị bỏ qua.

Ví dụ:

\ shell soi kèo bóng đá truoctran literal_argument: biến :: literal_starting_with_colon

Ví dụ, định nghĩa đầy đủ về tích hợp soi kèo bóng đá truoctran TPC-B-like là:

\ Đặt nbranches: tỷ lệ
\ Đặt ntellers 10 *: tỷ lệ
\ Đặt Naccounts 100000 *: Tỷ lệ
\ Setrandom Aid 1: Naccounts
\ Setrandom BID 1: Nbranches
\ setrandom tid 1: ntellers
\ setrandom delta -5000 5000
BẮT ĐẦU;
Cập nhật PGBench_Accounts đặt Abalance = Abalance +: Delta WHERE viện trợ =: viện trợ;
Chọn Abalance từ pgbench_accounts trong đó viện trợ =: viện trợ;
Cập nhật pgbench_tellers đặt tbalance = tbalance +: delta trong đó tid =: tid;
Cập nhật PGBench_Branches Đặt BBalance = BBalance +: Delta WHERE BID =: BID;
Chèn vào pgbench_history (tid, giá thầu, viện trợ, delta, mtime) giá trị (: tid,: giá thầu,: viện trợ,: delta, current_timestamp);
KẾT THÚC;

Tập lệnh này cho phép mỗi lần lặp lại giao dịch Tham khảo soi kèo bóng đá truoctran hàng khác nhau, chọn ngẫu nhiên. (Ví dụ này cũng cho thấy lý do tại sao điều quan trọng đối với mỗi phiên khách hàng có soi kèo bóng đá truoctran biến riêng - nếu không chúng sẽ không chạm vào độc lập soi kèo bóng đá truoctran hàng khác nhau.)

F.23.7. Đăng nhập mỗi lần soi kèo bóng đá truoctran

với-LTùy chọn,PGBenchViết thời gian của mỗi soi kèo bóng đá truoctran vào một tập tin nhật ký. Tệp nhật ký sẽ được đặt tênpgbench_log.nnn, trong đónnnlà PID của quy trình PGBench. Nếu như The-J31133_31399pgbench_log.nnn.MMM, trong đóMMMlà số tuần tự cho mỗi Công nhân bắt đầu với 1.

Định dạng của nhật ký là:

client_id soi kèo bóng đá truoctran dịch_no Thời gian file_no 31896_31908 time_us

WHEREthời gianlà đã qua Thời gian soi kèo bóng đá truoctran tính bằng micro giây,file_noXác định tệp tập soi kèo bóng đá truoctran nào được sử dụng (hữu ích khi nhiều tập soi kèo bóng đá truoctran được chỉ định với-f) vàtime_epoch/time_uslà thời gian định dạng Epoch Unix và bù bằng micro giây (phù hợp để tạo ISO 8601 dấu thời gian với soi kèo bóng đá truoctran giây phân đoạn) hiển thị khi giao dịch hoàn thành.

Đâ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

F.23.8. Thực hành tốt

Nó rất dễ sử dụngPGBenchĐể tạo ra hoàn toàn vô nghĩa số. Dưới đây là soi kèo bóng đá truoctran số hướng dẫn để giúp bạn hữu ích kết quả.

Ở nơi đầu tiên,không bao giờTin bất kỳ bài kiểm tra nào chạy Chỉ trong vài giây. Sử dụng-Thoặc-TTùy chọn để chạy cuối cùng tại ít nhất soi kèo bóng đá truoctran vài phút, để trung bình phát ra tiếng ồn. Trong soi kèo bóng đá truoctran số trường hợp Bạn có thể cần hàng giờ để có được những con số có thể tái tạo. Của nó soi kèo bóng đá truoctran ý tưởng tốt để thử thử nghiệm chạy soi kèo bóng đá truoctran vài lần, để tìm hiểu xem có Số của bạn có thể tái tạo hay không.

Đối với kịch bản kiểm tra TPC-B-like mặc định, việc khởi tạo Yếu tố tỷ lệ (-S) Ít nhất nên lớn như số lượng khách hàng lớn nhất mà bạn dự định kiểm tra (-C); nếu không bạn sẽ chủ yếu là đo lường Cập nhật tranh chấp. Chỉ có-Shàng trongpgbench_branchesBảng, Và mọi soi kèo bóng đá truoctran đều muốn cập nhật một trong số chúng, vì vậy-CGiá trị vượt quá-Schắc chắn sẽ dẫn đến rất nhiều soi kèo bóng đá truoctran giao dịch bị chặn chờ soi kèo bóng đá truoctran giao dịch khác.

Kịch bản kiểm tra mặc định cũng khá nhạy cảm với cách Long nó đã được kể từ khi soi kèo bóng đá truoctran bảng được khởi tạo: tích lũy của soi kèo bóng đá truoctran hàng chết và không gian chết trong soi kèo bóng đá truoctran bảng thay đổi kết quả. Để hiểu kết quả, bạn phải theo dõi tổng số Số lượng cập nhật và khi hút bụi xảy ra. Nếu Autovacuum là kích hoạt nó có thể dẫn đến những thay đổi không thể đoán trước được đo lường hiệu suất.

Giới hạn củaPGBenchIS rằng nó có thể trở thành nút cổ chai khi cố gắng kiểm tra một Số lượng lớn soi kèo bóng đá truoctran phiên khách hàng. Điều này có thể được giảm bớt bởi đang chạyPGBenchtrên soi kèo bóng đá truoctran khác máy từ máy chủ cơ sở dữ liệu, mặc dù độ trễ mạng thấp sẽ là điều cần thiết. Nó thậm chí có thể hữu ích khi chạy soi kèo bóng đá truoctran sốPGBenchsoi kèo bóng đá truoctran thể hiện đồng thời, trên một số máy khách, chống lại cùng một Máy chủ cơ sở dữ liệu.