Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển:Devel
Phiên bản kèo bóng đá c1 được hỗ trợ:12/11/10/9.6/9.5/9.4/9.3/9.2/9.1/9.0/8.4/8.3

PGBench

PGBench - Chạy thử nghiệm điểm chuẩn trênPostgreSQL

Synopsis

PGBench -I[Tùy kèo bóng đá c1...] [dbname]

PGBench[Tùy kèo bóng đá c1...] [dbname]

Mô tả

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

Đầu ra điển hình từPGBenchCó vẻ như:

Loại kèo bóng đá c1: <Buildin: TPC-B (loại)

Bảy dòng đầu tiên báo cáo một số cài đặt tham số quan trọng nhất. Dòng thứ sáu báo cáo số lần thử tối đa cho kèo bóng đá c1 giao dịch có lỗi tuần tự hóa hoặc bế tắc (xemThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin). Dòng thứ tám báo cáo số lượng kèo bóng đá c1 đã hoàn thành và dự định (sau này chỉ là sản phẩm của số lượng khách hàng và số lượng kèo bóng đá c1 trên mỗi khách hàng);-TChế độ, chỉ có số lượng kèo bóng đá c1 thực tế được in.) Dòng tiếp theo báo cáo số lượng kèo bóng đá c1 thất bại do nối tiếp hoặc lỗi bế tắc (xemThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin). Dòng cuối cùng báo cáo số lượng kèo bóng đá c1 mỗi giây.

Kiểm tra giao dịch TPC-B mặc định yêu cầu kèo bóng đá c1 bảng cụ thể được thiết lập trước.PGBenchnên được gọi bằng-I(Khởi tạo) Tùy chọn để tạo và điền vào kèo bóng đá c1 bảng này. .

pgbench -i [ tùy kèo bóng đá c1 khác ]dbname

WHEREdbnamelà tên của cơ sở dữ kèo bóng đá c1 đã đượ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ữ kèo bóng đá c1.)

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ó nào của kèo bóng đá c1 tên này. Hãy cẩn thận khi sử dụng cơ sở dữ liệu khác nếu bạn có kèo bóng đá c1 bảng có kèo bóng đá c1 tên này!

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

Bảng # hàng

Bạn có thể (và, cho hầu hết kèo bóng đá c1 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 kèo bóng đá c1. The-f(fillfactor) cũng có thể được sử dụng tại thời điểm này.

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 của mình bằng một lệnh kèo bóng đá c1 bao gồm-I, đó là

pgbench [ Tùy kèo bóng đá c1 ]dbname

Trong hầu hết kèo bóng đá c1 trường hợp, bạn sẽ cần một số tùy chọn để thực hiện một bài kiểm tra hữu ích. kèo bóng đá c1 tùy chọn quan trọng nhất là-C(số lượng khách hàng),-T(số lượng kèo bóng đá c1),-T(giới hạn thời gian) và-f(Chỉ định tệp tập kèo bóng đá c1 tùy chỉnh). Xem bên dưới để biết danh sách đầy đủ.

Tùy kèo bóng đá c1

Sau đây được chia thành ba tiểu mục. kèo bóng đá c1 tùy chọn khác nhau được sử dụng trong quá trình khởi tạo cơ sở dữ liệu và trong khi chạy điểm chuẩn, nhưng một số tùy chọn rất hữu ích trong cả hai trường hợp.

Tùy kèo bóng đá c1 khởi tạo

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

dbname

Chỉ định tên của cơ sở dữ liệu để kiểm tra. Nếu điều này kèo bóng đá c1 được chỉ định, biến môi trườngpgdatabaseđược sử dụng. Nếu đó kèo bóng đá c1 được đặt, tên người dùng được chỉ định cho kết nối được sử dụng.

-i
--initialize

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

-Iinit_steps
--init-bước =init_steps

Thực hiện chỉ một tập hợp kèo bóng đá c1 bước khởi tạo bình thường được chọn.init_stepsChỉ định kèo bóng đá c1 bước khởi tạo sẽ được thực hiện, sử dụng một ký tự mỗi bước. Mỗi bước được gọi theo thứ tự được chỉ định.DTGVP. kèo bóng đá c1 bước có sẵn là:

D(thả)

Thả bất kỳ hiện tạiPGBenchBảng.

T(Tạo bảng)

Tạo kèo bóng đá c1 bảng được sử dụng bởi tiêu chuẩnPGBenchKịch bản, cụ thể làPGBench_Accounts,pgbench_branches,pgbench_historypgbench_tellers.

ghoặcg(Tạo dữ kèo bóng đá c1, phía máy khách hoặc phía máy chủ)

Tạo dữ liệu và tải nó vào kèo bóng đá c1 bảng tiêu chuẩn, thay thế bất kỳ dữ liệu nào đã có.

vớig(Tạo dữ kèo bóng đá c1 phía máy khách), dữ kèo bóng đá c1 được tạo trongPGBenchMáy khách và sau đó được gửi đến máy chủ. Điều này sử dụng băng thông máy khách/máy chủ rộng rãi thông qua ACopy.PGBenchSử dụng tùy kèo bóng đá c1 đóng băng với phiên bản 14 trở lên củaPostgreSQLĐể tăng tốc độ tiếp theoVACUUM, trừ khi kèo bóng đá c1 phân vùng được bật. Sử dụngggây ra việc đăng nhập để in kèo bóng đá c1 thông báo mỗi 100.000 hàng trong khi tạo dữ liệu chopgbench_accountsBảng.

vớig(Tạo dữ liệu phía máy chủ), chỉ kèo bóng đá c1 truy vấn nhỏ được gửi từPGBenchKhách hàng và sau đó dữ liệu thực sự được tạo trong máy chủ. kèo bóng đá c1 cần băng thông đáng kể cho biến thể này, nhưng máy chủ sẽ làm nhiều việc hơn.ggây ra việc ghi nhật ký kèo bóng đá c1 in bất kỳ thông báo tiến trình nào trong khi tạo dữ liệu.

Hành vi khởi tạo mặc định sử dụng tạo dữ kèo bóng đá c1 phía máy khách (tương đương vớig).

V(chân kèo bóng đá c1)

GọiNút hútTrên kèo bóng đá c1 bảng tiêu chuẩn.

P(Tạo khóa chính)

Tạo kèo bóng đá c1 chỉ mục khóa chính trên kèo bóng đá c1 bảng tiêu chuẩn.

f(Tạo khóa ngoại)

Tạo kèo bóng đá c1 ràng buộc khóa nước ngoài giữa kèo bóng đá c1 bảng tiêu chuẩn. (Lưu ý rằng bước này không được thực hiện theo mặc định.)

-f fillfactor
-fligfactor =fillfactor

Tạopgbench_accounts,pgbench_tellerspgbench_branchesBảng với fillfactor đã cho. Mặc định là 100.

-N
--No-Vacuum

kèo bóng đá c1 thực hiện kèo bóng đá c1 hút bụi trong quá trình khởi tạo. (Tùy chọn này ngăn chặnVBước khởi tạo, ngay cả khi nó được chỉ định trong-i.)

-Q
--quiet

​​Chuyển đổi đăng nhập sang chế độ yên tĩnh, chỉ tạo kèo bóng đá c1 thông báo tiến trình mỗi 5 giây. Ghi nhật ký mặc định in kèo bóng đá c1 thông báo mỗi 100.000 hàng, thường xuất ra nhiều dòng mỗi giây (đặc biệt là trên phần cứng tốt).

Cài đặt này kèo bóng đá c1 có hiệu lực nếugđược chỉ định trong-I.

-S scale_factor
--scale =Scale_Factor

Nhân số lượng hàng được tạo bởi hệ số tỷ lệ. Ví dụ,-S 100sẽ tạo 10.000.000 hàng trongpgbench_accountsBảng. Mặc định là 1. Khi tỷ lệ là 20.000 hoặc lớn hơn, kèo bóng đá c1 cột được sử dụng để giữ số nhận dạng tài khoản (AIDcột) sẽ chuyển sang sử dụng kèo bóng đá c1 số nguyên lớn hơn (Bigint), để đủ lớn để giữ phạm vi nhận dạng tài khoản.

-Eforign-Chốt

Tạo kèo bóng đá c1 ràng buộc khóa nước ngoài giữa kèo bóng đá c1 bảng tiêu chuẩn. (Tùy chọn này thêmfBước vào chuỗi bước khởi tạo, nếu nó chưa có mặt.)

--index-tableSpace =index_tablespace

Tạo kèo bóng đá c1 chỉ mục trong không gian bảng được chỉ định, thay vì không gian bảng mặc định.

--Phân cộng-method =tên

Tạo kèo bóng đá c1 phân vùngpgbench_accountsBảng vớitênPhương pháp. Giá trị dự kiến ​​làphạm vihoặcHash. Tùy kèo bóng đá c1 này yêu cầu rằng--Đoạnđược đặt thành khác kèo bóng đá c1. Nếu kèo bóng đá c1 xác định, mặc định làphạm vi.

--Tiểu phần =num

Tạo kèo bóng đá c1 phân vùngPGBench_AccountsBảng vớinumPhân vùng có kích thước gần như bằng nhau cho số lượng tài khoản được chia tỷ lệ. Mặc định là0, có nghĩa là kèo bóng đá c1 có phân vùng.

--TableSpace =kèo bóng đá c1 gian bảng

Tạo kèo bóng đá c1 bảng trong không gian bảng được chỉ định, thay vì không gian bảng mặc định.

--Unlogged-fables

Tạo tất cả kèo bóng đá c1 bảng dưới dạng kèo bóng đá c1 bảng chưa được tính, thay vì kèo bóng đá c1 bảng vĩnh viễn.

Tùy kèo bóng đá c1 điểm chuẩn

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

-B scriptName [@weight]
-Builtin=scriptName [@weight]

Thêm tập lệnh tích hợp được chỉ định vào danh sách kèo bóng đá c1 tập lệnh sẽ được thực thi. kèo bóng đá c1 tập lệnh tích hợp có sẵn là:TPCB giống như,Đơn giản UpdateChỉ kèo bóng đá c1. Tiền tố rõ ràng của kèo bóng đá c1 tên tích hợp được chấp nhận.Danh sách, Hiển thị danh sách kèo bóng đá c1 tập lệnh tích hợp và thoát ngay lập tức.

Tùy kèo bóng đá c1, viết trọng lượng số nguyên sau@Để điều chỉnh xác suất chọn tập lệnh này so với kèo bóng đá c1 tập lệnh khác. Trọng lượng mặc định là 1. Xem bên dưới để biết chi tiết.

-C Khách hàng
--Client =Khách hàng

Số lượng khách hàng mô phỏng, nghĩa là, số phiên cơ sở dữ kèo bóng đá c1 đồng thời. Mặc định là 1.

-C
--Connect

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

-D
-Debug

Đầu ra gỡ lỗi in.

-D varname=giá trị
--DEFINE =varname=giá trị

Xác định kèo bóng đá c1 biến được sử dụng bởi tập lệnh tùy chỉnh (xem bên dưới). Nhiều-DTùy kèo bóng đá c1 được cho phép.

-f FileName [@weight]
--file =FileName [@weight]

Thêm tập lệnh kèo bóng đá c1 đọc từFileNameđến danh sách kèo bóng đá c1 tập lệnh sẽ được thực thi.

Tùy kèo bóng đá c1, viết trọng lượng số nguyên sau@Để điều chỉnh xác suất chọn tập lệnh này so với kèo bóng đá c1 tập lệnh khác. Trọng lượng mặc định là 1. (Để sử dụng tên tệp tập lệnh bao gồm@ký tự, nối trọng lượng để kèo bóng đá c1 có sự mơ hồ, ví dụfilen@me@1.) Xem bên dưới để biết chi tiết.

-J Chủ đề
--Jobs =Chủ đề

Số lượng chủ đề công nhân trongPGBench. Sử dụng nhiều hơn một luồng có thể hữu ích trên kèo bóng đá c1 máy đa CPU.

-L
--log

Viết thông tin về mỗi kèo bóng đá c1 vào tệp nhật ký. Xem bên dưới để biết chi tiết.

-L Giới hạn
-Latency-limit =Giới hạn

kèo bóng đá c1 tồn tại nhiều hơngiới hạnmili giây được tính và báo cáo riêng, làmuộn.

Khi sử dụng điều chỉnh (--Rate = ...), kèo bóng đá c1 giao dịch chậm trễ theo lịch trình nhiều hơngiới hạnMS, và do đó kèo bóng đá c1 có hy vọng đáp ứng giới hạn độ trễ, hoàn toàn kèo bóng đá c1 được gửi đến máy chủ. Chúng được tính và báo cáo riêng làBỏ qua.

Khi--Max-TriesTùy chọn được sử dụng, một giao dịch không thành công do dị thường tuần tự hóa hoặc từ bế tắc sẽ không được thử lại nếu tổng thời gian của tất cả kèo bóng đá c1 lần thử của nó lớn hơnGiới hạnMS. Để chỉ giới hạn thời gian thử và kèo bóng đá c1 phải số của họ, hãy sử dụng--Max-Tries = 0. Theo mặc định, tùy kèo bóng đá c1--Max-Triesđược đặt thành 1 và kèo bóng đá c1 giao dịch có lỗi tuần tự hóa/bế tắc không được thử lại. Nhìn thấyThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin về việc thử lại kèo bóng đá c1 giao dịch đó.

-M QueryMode
--Protocol =QueryMode

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

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

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

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

TrongChuẩn bịchế độ,PGBenchTái sử dụng kết quả phân tích phân tích bắt đầu từ lần lặp truy vấn thứ hai, vì vậyPGBenchChạy nhanh hơn kèo bóng đá c1 chế độ khác.

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

-N
--No-Vacuum

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

-N
--skip-some-updates

Chạy tập kèo bóng đá c1 cập nhật đơn giản tích hợp. Tốc ký cho-B Đơn giản Update.

-P Sec
--ProTHER =Sec

Hiển thị báo cáo tiến độ mỗiSecgiây. Báo cáo bao gồm thời gian kể từ khi bắt đầu lần chạy, TPS kể từ báo cáo cuối cùng và trung bình độ trễ kèo bóng đá c1, độ lệch chuẩn và số lượng kèo bóng đá c1 thất bại kể từ báo cáo cuối cùng.-R), độ trễ được tính toán liên quan đến thời gian bắt đầu theo lịch trình giao dịch, kèo bóng đá c1 phải là thời gian bắt đầu giao dịch thực tế, do đó nó cũng bao gồm thời gian trễ lịch trình trung bình. Khi--Max-Triesđược sử dụng để cho phép thử lại kèo bóng đá c1 sau khi tuần tự hóa/bế tắc

-R

Báo cáo kèo bóng đá c1 số liệu thống kê sau cho mỗi lệnh sau khi kết thúc điểm chuẩn: độ trễ trung bình trên mỗi statement (thời gian thực hiện từ quan điểm của khách hàng), số lần thất bại và số lần thử lại sau khi tuần tự hóa hoặc tình trạng bế tắc trong lệnh này. Báo cáo chỉ hiển thị số liệu thống kê thử lại nếu--Max-TriesTùy chọn kèo bóng đá c1 bằng 1.

-R Rate
--Rate =RATE

Thực hiện kèo bóng đá c1 giao dịch nhắm mục tiêu tỷ lệ được chỉ định thay vì chạy nhanh nhất có thể (mặc định). Tỷ lệ được đưa ra trong kèo bóng đá c1 giao dịch mỗi giây.

Tỷ lệ được nhắm mục tiêu bằng cách bắt đầu kèo bóng đá c1 giao dịch dọc theo dòng thời gian lịch trình phân phối Poisson. Lịch thời gian bắt đầu dự kiến ​​di chuyển về phía trước dựa trên khi khách hàng bắt đầu, không phải khi giao dịch trước đó kết thúc.

Khi điều chỉnh hoạt động, độ trễ kèo bóng đá c1 được báo cáo khi kết thúc lần chạy được tính từ thời gian bắt đầu theo lịch trình, do đó, bao gồm thời gian mỗi kèo bóng đá c1 phải chờ kèo bóng đá c1 trước đó kết thúc. Thời gian chờ được gọi là thời gian trễ lịch trình, và trung bình và tối đa của nó cũng được báo cáo riêng.

nếu-Latency-Limitđược sử dụng cùng với--Rate, một giao dịch có thể tụt lại phía sau đến mức đã vượt quá giới hạn độ trễ khi giao dịch trước đó kết thúc, vì độ trễ được tính từ thời gian bắt đầu theo lịch trình. kèo bóng đá c1 giao dịch như vậy không được gửi đến máy chủ, nhưng được bỏ qua hoàn toàn và được tính riêng.

Thời gian trễ lịch trình cao là một dấu hiệu cho thấy hệ thống không thể xử lý kèo bóng đá c1 giao dịch theo tỷ lệ được chỉ định, với số lượng khách hàng và luồng được chọn. Khi thời gian thực hiện giao dịch trung bình dài hơn khoảng thời gian theo lịch trình giữa mỗi giao dịch, mỗi giao dịch liên tiếp sẽ tụt lại phía sau và thời gian trễ lịch trình sẽ tiếp tục tăng lâu hơn.

-S scale_factor
--scale =Scale_Factor

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

-S
--select chỉ

Chạy tập kèo bóng đá c1 chỉ chọn tích hợp. Tốc ký cho-B CHỌN CHỈ.

-T kèo bóng đá c1
--TransActions =kèo bóng đá c1

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

-T giây
-thời gian =giây

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

-V
--vacuum-all

Chacuum Tất cả bốn bảng tiêu chuẩn trước khi chạy thử nghiệm. kèo bóng đá c1 có-NNor-V,PGBenchSẽ hút bụipgbench_tellerspgbench_branchesBảng và sẽ cắt ngắnpgbench_history.

--Ggregate-interval =giây

Độ dài của khoảng thời gian tổng hợp (tính bằng giây). Chỉ có thể được sử dụng với-LTùy chọn. Với tùy chọn này, nhật ký chứa dữ kèo bóng đá c1 tóm tắt trên khoảng thời gian, như được mô tả bên dưới.

--Failures-Detailed

Báo cáo thất bại trong Nhật ký giao dịch và tập hợp, cũng như trong kèo bóng đá c1 báo cáo chính và trên mỗi kịch bản, được nhóm theo kèo bóng đá c1 loại sau:

  • Thất bại tuần tự hóa;

  • thất bại;

xemThất bại và tuần tự hóa/lần thử lạiĐể biết thêm thông tin.

-log-prefix =tiền tố

Đặt tiền tố tệp cho kèo bóng đá c1 tệp nhật ký được tạo bởi--log. Mặc định làpgbench_log.

--Max-Tries =number_of_tries

Kích hoạt thử lại cho kèo bóng đá c1 giao dịch có lỗi tuần tự hóa/bế tắc và đặt số lượng tối đa của kèo bóng đá c1 lần thử này. Tùy chọn này có thể được kết hợp với-Latency-LimitTùy chọn giới hạn tổng thời gian của tất cả kèo bóng đá c1 lần thử giao dịch; Hơn nữa, bạn không thể sử dụng một số lần thử không giới hạn (--Max-Tries = 0) kèo bóng đá c1 có-Latency-Limithoặc-thời gian. Giá trị mặc định là 1 và kèo bóng đá c1 giao dịch có lỗi tuần tự hóa/bế tắc không được thử lại.Thất bại và tuần tự hóa/lần thử lạiĐể biết thêm thông tin về việc thử lại kèo bóng đá c1 giao dịch đó.

-ProTros-Timestamp

Khi hiển thị tiến trình (tùy kèo bóng đá c1-P), Sử dụng dấu thời gian (Epoch Unix) thay vì số giây kể từ khi bắt đầu chạy. Đơn vị này trong vài giây, với độ chính xác mili giây sau dấu chấm.

-random-seed =hạt giống

Đặt hạt giống máy phát ngẫu nhiên. Hạt giống Trình tạo số ngẫu nhiên của hệ thống, sau đó tạo ra một chuỗi kèo bóng đá c1 trạng thái máy phát ban đầu, một cho mỗi luồng.hạt giốngcó thể là:Thời gian(Mặc định, hạt giống dựa trên thời gian hiện tại),rand(Sử dụng nguồn ngẫu nhiên mạnh, kèo bóng đá c1 thành công nếu kèo bóng đá c1 có) hoặc giá trị số nguyên thập phân kèo bóng đá c1 dấu. Trình tạo ngẫu nhiên được gọi rõ ràng từ tập lệnh PGBench (ngẫu nhiên ...chức năng) hoặc ngầm (ví dụ tùy kèo bóng đá c1--RateSử dụng nó để lên lịch kèo bóng đá c1). Khi được thiết lập rõ ràng, giá trị được sử dụng để gieo hạt được hiển thị trên thiết bị đầu cuối.hạt giốngcũng có thể được cung cấp thông qua biến môi trườngpgbench_random_seed. Để đảm bảo rằng hạt giống được cung cấp ảnh hưởng đến tất cả kèo bóng đá c1 mục đích sử dụng có thể, hãy đặt tùy chọn này lên hàng đầu hoặc sử dụng biến môi trường.

Đặt hạt giống cho phép tái tạo kèo bóng đá c1PGBenchChạy chính xác, theo như kèo bóng đá c1 số ngẫu nhiên có liên quan. Vì trạng thái ngẫu nhiên được quản lý cho mỗi luồng, điều này có nghĩa là chính xácPGBenchChạy cho một lời cầu khẩn giống hệt nhau nếu có một máy khách trên mỗi luồng và kèo bóng đá c1 có phụ thuộc bên ngoài hoặc dữ liệu. Từ một quan điểm thống kê tái tạo chính xác là một ý tưởng xấu bởi vì nó có thể che giấu sự thay đổi hiệu suất hoặc cải thiện hiệu suất quá mức, ví dụ, bằng cách nhấn cùng một trang như lần chạy trước đó.

-Sampling-Rate =RATE

Tốc độ lấy mẫu, được sử dụng khi ghi dữ liệu vào nhật ký, để giảm lượng nhật ký được tạo. Nếu tùy chọn này được đưa ra, chỉ có một phần kèo bóng đá c1 được chỉ định được ghi lại.

Hãy nhớ đưa tỷ lệ lấy mẫu vào tài khoản khi xử lý tệp nhật ký. Ví dụ: khi tính toán kèo bóng đá c1 giá trị TPS, bạn cần nhân kèo bóng đá c1 số tương ứng (ví dụ: với tỷ lệ mẫu 0,01, bạn sẽ chỉ nhận được 1/100 TPS thực tế).

--Show-script =ScriptName

Hiển thị mã thực tế của tập kèo bóng đá c1 tích hợpscriptNametrên stderr và thoát ngay lập tức.

In tin nhắn về tất cả kèo bóng đá c1 lỗi và lỗi (lỗi mà không thử lại) bao gồm giới hạn để thử lại đã vượt quá và mức độ vượt quá đối với kèo bóng đá c1 lỗi tuần tự hóa/bế tắc. (Lưu ý rằng trong trường hợp này, đầu ra có thể tăng đáng kể.) XemThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin.

Tùy kèo bóng đá c1 chung

PGBenchCũng chấp nhận kèo bóng đá c1 đối số dòng lệnh chung sau đây cho kèo bóng đá c1 tham số kết nối:

-H tên máy chủ
--host =tên máy chủ

Tên máy chủ của máy chủ cơ sở dữ kèo bóng đá c1

-P Cổng
--port =Cổng

Số cổng của máy chủ cơ sở dữ kèo bóng đá c1

-U Đăng nhập
--Username =Đăng nhập

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

-V
--Version

inPGBenchPhiên bản và Thoát.

-?
--Help

Hiển thị trợ giúp vềPGBenchĐối số dòng kèo bóng đá c1 và thoát.

Trạng thái thoát

Chạy thành công sẽ thoát với trạng thái 0. Trạng thái thoát 1 cho biết kèo bóng đá c1 vấn đề tĩnh như kèo bóng đá c1 tùy chọn dòng lệnh không hợp lệ hoặc kèo bóng đá c1 lỗi nội bộ được cho là không bao giờ xảy ra. kèo bóng đá c1 lỗi sớm xảy ra khi bắt đầu điểm chuẩn như lỗi kết nối ban đầu cũng thoát theo trạng thái 1. Lỗi trong quá trình chạy như lỗi cơ sở dữ liệu hoặc kèo bóng đá c1 vấn đề trong tập lệnh sẽ dẫn đến trạng thái thoát 2. Trong trường hợp sau,PGBenchSẽ in kết quả kèo bóng đá c1 phần.

Môi trường

pgdatabase
PGHOST
PGPORT
PGUSER

Tham số kết nối mặc định.

Tiện ích này, giống như hầu hết kèo bóng đá c1 khácPOSTGRESQLTiện ích, sử dụng kèo bóng đá c1 biến môi trường được hỗ trợ bởilibpq(xemPhần 34.15).

Biến môi trườngpg_colorChỉ định có nên sử dụng màu trong kèo bóng đá c1 thông báo chẩn đoán hay không. kèo bóng đá c1 giá trị có thể làLuôn luôn,Autokèo bóng đá c1 bao giờ.

Ghi chú

là gìkèo bóng đá c1HồiThực tế được thực hiện trongPGBench?

PGBenchThực thi kèo bóng đá c1 tập lệnh kiểm tra được chọn ngẫu nhiên từ một danh sách được chỉ định. kèo bóng đá c1 tập lệnh có thể bao gồm kèo bóng đá c1 tập lệnh tích hợp được chỉ định với-Bvà kèo bóng đá c1 tập lệnh do người dùng cung cấp được chỉ định với-f. Mỗi tập lệnh có thể được cung cấp kèo bóng đá c1 trọng số tương đối được chỉ định sau kèo bóng đá c1@để thay đổi xác suất lựa kèo bóng đá c1 của nó. Trọng lượng mặc định là1. Tập kèo bóng đá c1 có trọng lượng0bị bỏ qua.

Tập lệnh kèo bóng đá c1 tích hợp mặc định (cũng được gọi bằng-B TPCB giống như) Phát hành bảy lệnh cho mỗi kèo bóng đá c1 được chọn ngẫu nhiênAID,TID,BIDDelta. Kịch bản được lấy cảm hứng từ điểm chuẩn TPC-B, nhưng kèo bóng đá c1 thực sự là TPC-B, do đó tên.

  1. bắt đầu;

  2. Cập nhật PGBench_Accounts Đặt Abalance = Abalance +: Delta WHERE AID =: AID;

  3. kèo bóng đá c1 Abalance từ PGBench_Accounts WHERE AID =: AID;

  4. 49904_49979

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

  6. 50245_50358

  7. kết thúc;

Nếu bạn kèo bóng đá c1Đơn giản updatetích hợp (cũng-N), Bước 4 và 5 không được bao gồm trong giao dịch. Điều này sẽ tránh được sự tranh chấp cập nhật trên kèo bóng đá c1 bảng này, nhưng nó làm cho trường hợp thử nghiệm thậm chí còn giống như TPC-B.

Nếu bạn kèo bóng đá c1Chỉ kèo bóng đá c1tích hợp (cũng-S), Chỉkèo bóng đá c1được ban hành.

tập kèo bóng đá c1 tùy chỉnh

PGBenchcó hỗ trợ để chạy kèo bóng đá c1 kịch bản điểm chuẩn tùy chỉnh bằng cách thay thế tập lệnh giao dịch mặc định (được mô tả ở trên) bằng tập lệnh giao dịch được đọc từ tệp (-fTùy kèo bóng đá c1). Trong trường hợp này Akèo bóng đá c1Khănđược tính là kèo bóng đá c1 lần thực hiện tệp tập lệnh.

Tệp tập lệnh chứa một hoặc nhiều lệnh SQL bị chấm dứt bởi dấu chấm phẩy. kèo bóng đá c1 đường và đường trống bắt đầu bằng--bị bỏ qua. Tệp tập kèo bóng đá c1 cũng có thể chứakèo bóng đá c1 metaKhăn, được giải thích bởiPGBenchchính nó, như được mô tả bên dưới.

Lưu ý

trướcPOSTGRESQL9.6, kèo bóng đá c1 lệnh SQL trong kèo bóng đá c1 tệp script đã bị chấm dứt bởi Newlines và do đó chúng không thể được tiếp tục trên kèo bóng đá c1 dòng. Bây giờ là một dấu chấm phẩy làYêu cầuĐể tách kèo bóng đá c1 lệnh SQL liên tiếp (mặc dù lệnh SQL không cần phải có nếu nó được theo sau bởi lệnh meta). Nếu bạn cần tạo một tệp tập lệnh hoạt động với cả phiên bản cũ và mới củaPGBench, Hãy chắc chắn viết mỗi lệnh SQL trên kèo bóng đá c1 dòng kết thúc bằng dấu chấm phẩy.

Giả sử rằng kèo bóng đá c1 tập lệnh PGBench không chứa kèo bóng đá c1 khối giao dịch SQL không đầy đủ. Nếu vào thời gian chạy, máy khách đến cuối tập lệnh mà không hoàn thành khối giao dịch cuối cùng, nó sẽ bị hủy bỏ.

Có một cơ sở thay thế biến đơn giản cho kèo bóng đá c1 tệp script. Tên biến phải bao gồm kèo bóng đá c1 chữ cái (bao gồm kèo bóng đá c1 chữ cái không phải là latin), chữ số và dấu gạch dưới, với ký tự đầu tiên không phải là một chữ số.-DTùy chọn, được giải thích ở trên hoặc bởi kèo bóng đá c1 lệnh meta được giải thích dưới đây. Ngoài bất kỳ biến nào được đặt trước bởi-DTùy chọn dòng lệnh, có kèo bóng đá c1 vài biến được đặt trước tự động, được liệt kê trongBảng 288. Một giá trị được chỉ định cho kèo bóng đá c1 biến này bằng cách sử dụng-Dđược ưu tiên hơn kèo bóng đá c1 cài đặt trước tự động. Sau khi được đặt, giá trị của một biến có thể được chèn vào lệnh SQL bằng cách viết:variablename. Khi chạy nhiều phiên khách, mỗi phiên có bộ biến riêng.PGBenchHỗ trợ tối đa 255 Biến sử dụng trong kèo bóng đá c1 câu.

Bảng 288. Biến tự động PGBench

biến Mô tả
client_id Số duy nhất Xác định phiên khách (bắt đầu từ số 0)
default_seed Hạt giống được sử dụng trong kèo bóng đá c1 hàm hoán vị băm và giả và giả theo mặc định
Random_seed Hạt giống máy phát ngẫu nhiên (trừ khi được ghi đè bằng-D)
Scale Yếu tố tỷ lệ hiện tại

kèo bóng đá c1 lệnh meta tập tin tập lệnh bắt đầu bằng dấu gạch chéo ngược (\) và thường mở rộng đến cuối dòng, mặc dù chúng có thể được tiếp tục thêm kèo bóng đá c1 dòng bổ sung bằng cách viết ngược lại. kèo bóng đá c1 đối số cho một lệnh meta được phân tách bằng không gian trắng.

\ GSET [tiền tố] \ ASET [tiền tố]

kèo bóng đá c1 lệnh này có thể được sử dụng để kết thúc kèo bóng đá c1 truy vấn SQL, thay thế dấu chấm phẩy chấm dứt (;).

Khi\ GSETLệnh được sử dụng, truy vấn SQL trước dự kiến ​​sẽ trả về một hàng, kèo bóng đá c1 cột được lưu thành kèo bóng đá c1 biến được đặt theo tên cột và được đặt trước vớitiền tốNếu được cung cấp.

Khi\ ASETLệnh được sử dụng, tất cả kèo bóng đá c1 truy vấn SQL kết hợp (được phân tách bởi\;) Có kèo bóng đá c1 cột được lưu trữ thành kèo bóng đá c1 biến được đặt tên theo tên cột và có tiền tố vớitiền tốNếu được cung cấp. Nếu một truy vấn trả về kèo bóng đá c1 có hàng, kèo bóng đá c1 có bài tập nào được thực hiện và biến có thể được kiểm tra cho sự tồn tại để phát hiện điều này.

\ GSET\ ASETKhông thể được sử dụng trong chế độ đường ống, vì kết quả truy vấn chưa có sẵn vào thời điểm kèo bóng đá c1 lệnh sẽ cần chúng.

Ví dụ sau đây đặt số dư tài khoản cuối cùng từ truy vấn đầu tiên vào biếnAbalance, và điền kèo bóng đá c1 biếnP_TWOp_threevới số nguyên từ truy vấn thứ ba. Kết quả của truy vấn thứ hai bị loại bỏ.bốnnăm.

Cập nhật pGBench_accounts
\ if Biểu thức
\ Elif Biểu thức
\ other
\ endif

Nhóm lệnh này thực hiện kèo bóng đá c1 khối điều kiện có thể làm tổ, tương tự nhưPSQL's\ if Biểu thức. Biểu thức có điều kiện giống hệt với kèo bóng đá c1 biểu thức có\ set, với kèo bóng đá c1 giá trị khác không được hiểu là đúng.

\ setvarname Biểu thức

Đặt biếnvarnamevới giá trị được tính từBiểu thức. Biểu thức có thể chứaNULLHằng số, hằng số booleanTRUESai, hằng số nguyên như5432, Hằng số kép như3.14159, Tài liệu tham khảo về kèo bóng đá c1 biến:variablename,toán tửVới ưu tiên và kết hợp SQL thông thường của họ,Chức năng gọi, SQLcaseBiểu thức có điều kiện chungvà dấu ngoặc đơn.

Hàm và hầu hết kèo bóng đá c1 toán tử trở lạinulltrênnullĐầu vào.

Đối với mục đích có điều kiện, kèo bóng đá c1 giá trị số không phải làTRUE, Giá trị số kèo bóng đá c1 vànullSai.

60156_60248+,-,*/) Tăng lỗi trên tràn.

Khi kèo bóng đá c1 có cuối cùngkhácmệnh đề được cung cấp cho Acase, giá trị mặc định lànull.

Ví dụ:

\ SET NTELLERS 10 *: Tỷ lệ
\ ngủSố[chúng tôi | MS |

khiến việc thực thi tập kèo bóng đá c1 ngủ trong thời lượng được chỉ định 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à hằng số nguyên hoặc:Variablenametham chiếu đến kèo bóng đá c1 biến có giá trị số nguyên.

Ví dụ:

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

Đặt biếnvarnamevới kết quả của kèo bóng đá c1 shellkèo bóng đá c1với đã choĐối số(s). kèo bóng đá c1 phải trả về giá trị số nguyên thông qua đầu ra tiêu chuẩn của nó.

kèo bóng đá c1và mỗiĐối sốcó thể là hằng số văn bản hoặc:variablenametham chiếu đến kèo bóng đá c1 biến. Nếu bạn muốn sử dụngĐối sốBắt đầu bằng dấu hai chấm, viết thêm kèo bóng đá c1 dấu hai chấm vào đầuĐối số.

Ví dụ:

62711_62813
\ shellkèo bóng đá c1[Đối số...]

giống như\ setshell, nhưng kết quả của kèo bóng đá c1 bị loại bỏ.

Ví dụ:

\ shell kèo bóng đá c1 literal_argument: biến :: literal_starting_with_colon
\ startPipeline
\ EndPipeline

kèo bóng đá c1 lệnh này phân định sự khởi đầu và kết thúc của một đường ống của kèo bóng đá c1 câu lệnh SQL. Trong chế độ Pipeline, kèo bóng đá c1 câu lệnh được gửi đến máy chủ mà không chờ kết quả của kèo bóng đá c1 câu lệnh trước đó.Phần 34.5Để biết thêm chi tiết. Chế độ đường ống yêu cầu sử dụng kèo bóng đá c1 thức truy vấn mở rộng.

toán tử tích hợp

kèo bóng đá c1 toán tử số học, bitwise, so sánh và logic được liệt kê trongBảng 289được tích hợp vàoPGBenchvà có thể được sử dụng trong kèo bóng đá c1 biểu thức xuất hiện trong\ set. kèo bóng đá c1 nhà khai thác được liệt kê theo thứ tự ưu tiên tăng.

Bảng 289. kèo bóng đá c1 toán tử PGBench

Nhà điều hành

Mô tả

Ví dụ

Boolean hoặc BooleanBoolean

logic hoặc

5 hoặc 0TRUE

Boolean BooleanBoolean

logic và

3 và 0Sai

kèo bóng đá c1 BooleanBoolean

logic kèo bóng đá c1

kèo bóng đá c1 saiTRUE

Boolean là [kèo bóng đá c1] (null | true | false)Boolean

Bài kiểm tra giá trị Boolean

1 là nullSai

giá trị isnull | notnullBoolean

thử nghiệm nullness

1 NotnullTRUE

Số = SốBoolean

bằng

5 = 4Sai

Số < SốBoolean

kèo bóng đá c1 bằng

5 < 4TRUE

Số ! = SốBoolean

kèo bóng đá c1 bằng

5! = 5Sai

Số < SốBoolean

ít hơn

5 <4Sai

Số <= SốBoolean

nhỏ hơn hoặc bằng

5 <= 4false

Number SốBoolean

lớn hơn

5 4TRUE

Số = SốBoolean

lớn hơn hoặc bằng

5 = 4TRUE

Số nguyên | Số nguyênSố nguyên

bitwise hoặc

1 | 23

Số nguyên # Số nguyênSố nguyên

BitWise XOR

1 # 32

Số nguyên & Số nguyênSố nguyên

bitwise và

1 & 31

~ Số nguyênSố nguyên

bitwise kèo bóng đá c1

~ 1-2

Số nguyên << Số nguyênSố nguyên

Bitwise Shift Left

1 << 24

Số nguyên Số nguyênSố nguyên

BitWise Shift phải

8 22

Số + SốSố

Bổ sung

5 + 49

Số - SốSố

trừ

3 - 2.01.0

Số * SốSố

Nhân

5 * 420

Số / SốSố

Phân chia (cắt ngắn kết quả về 0 nếu cả hai đầu vào đều là số nguyên)

5 / 31

Số nguyên % Số nguyênSố nguyên

modulo (phần còn lại)

3 % 21

- SốSố

phủ định

- 2.0-2.0


Hàm tích hợp

kèo bóng đá c1 chức năng được liệt kê trongBảng 290được tích hợp vàoPGBenchvà có thể được sử dụng trong kèo bóng đá c1 biểu thức xuất hiện trong\ set.

Bảng 290. Hàm PGBench

chức năng

Mô tả

Ví dụ (s)

abs(Số) → cùng loại với đầu vào

Giá trị tuyệt đối

abs (-17)17

Debug(Số) → cùng loại với đầu vào

In đối số thànhstderr, và trả về đối số.

Debug (5432.1)5432.1

Double(Số) →Double

đúc để tăng gấp đôi.

Double (5432)5432.0

exp(Số) →Double

theo cấp số nhân (Eđược nâng lên cho sức mạnh đã cho)

exp (1.0)2.718281828459045

vĩ đại nhất(Số[,...]) →DoubleNếu bất kỳ đối số nào là gấp đôi, khácSố nguyên

Chọn giá trị lớn nhất trong số kèo bóng đá c1 đối số.

vĩ đại nhất (5, 4, 3, 2)5

Hash(giá trị[,hạt giống]) →Số nguyên

Đây là bí danh choHash_murmur2.

Hash (10, 5432)-5817877081768721676

Hash_fnv1a(giá trị[,hạt giống]) →Số nguyên

Tính toánFNV-1A Hash.

Hash_fnv1a (10, 5432)-7793829335365542153

Hash_murmur2(giá trị[,hạt giống]) →Số nguyên

Tính toánmurmurhash2 băm.

Hash_murmur2 (10, 5432)-5817877081768721676

int(Số) →Số nguyên

đúc theo số nguyên.

int (5.4 + 3.8)9

Ít nhất(Số[,...]) →DoubleNếu bất kỳ đối số nào là gấp đôi, khácSố nguyên

Chọn giá trị nhỏ nhất trong số kèo bóng đá c1 đối số.

Ít nhất (5, 4, 3, 2.1)2.1

ln(Số) →Double

logarit tự nhiên

LN (2.718281828459045)1.0

mod(Số nguyên,Số nguyên) →Số nguyên

modulo (phần còn lại)

Mod (54, 32)22

permute(i,size[,hạt giống]) →Số nguyên

Giá trị hoán vị củai, trong phạm vi[0, size). Đây là vị trí mới củai(modulosize) trong một hoán vị giả của kèo bóng đá c1 số nguyên0 ... size-1, được tham số hóa bởihạt giống, xem bên dưới.

Permute (0, 4)số nguyên từ 0 đến 3

PI() →Double

Giá trị gần đúng củaπ

pi ()3.14159265358979323846

POW(x,Y) →Double

Power(x,y) →Double

xđược nâng lên sức mạnh củaY

POW (2.0, 10)1024.0

ngẫu nhiên(lb,UB) →Số nguyên

Tính toán số nguyên ngẫu nhiên được phân phối đồng đều trong[lb, ub].

ngẫu nhiên (1, 10)kèo bóng đá c1 số nguyên từ 1 đến 10

ngẫu nhiên_exponential(lb,UB,tham số) →Số nguyên

Tính toán số nguyên ngẫu nhiên được phân phối theo cấp số nhân trong[lb, ub], xem bên dưới.

Random_Exponential (1, 10, 3.0)kèo bóng đá c1 số nguyên từ 1 đến 10

Random_gaussian(lb,UB,tham số) →Số nguyên

Tính toán số nguyên ngẫu nhiên do Gaussian phân phối trong[lb, ub], xem bên dưới.

Random_gaussian (1, 10, 2.5)kèo bóng đá c1 số nguyên từ 1 đến 10

Random_zipfian(lb,UB,tham số) →Số nguyên

Tính toán số nguyên ngẫu nhiên do Zipfian phân phối trong[lb, ub], xem bên dưới.

Random_zipfian (1, 10, 1.5)kèo bóng đá c1 số nguyên từ 1 đến 10

SQRT(Số) →Double

căn bậc hai

SQRT (2.0)1.414213562


Thengẫu nhiênHàm tạo ra kèo bóng đá c1 giá trị bằng phân phối đồng đều, đó là tất cả kèo bóng đá c1 giá trị được rút ra trong phạm vi được chỉ định với xác suất bằng nhau. TheRandom_Exponential,Random_gaussianRandom_zipfiankèo bóng đá c1 hàm yêu cầu tham số kép bổ sung để xác định hình dạng chính xác của phân phối.

  • Đối với phân phối theo cấp số nhân,tham sốKiểm soát phân phối bằng cách cắt ngắn phân phối theo cấp số nhân giảm nhanh tạitham số, và sau đó chiếu lên số nguyên giữa kèo bóng đá c1 giới hạn. Để chính xác, với


    f (x) = exp (-parameter*(x-min)/(max-min+1))/(1-exp (-parameter))

    Sau đó, valueigiữaminMaxBao gồm được vẽ với xác suất:f (i) - f (i + 1).

    theo trực giác, càng lớntham số, kèo bóng đá c1 giá trị thường xuyên hơn gầnminđược truy cập và kèo bóng đá c1 giá trị ít thường xuyên hơn gầnMaxđược truy cập. Gần với 0tham sốIS, Flatter (đồng nhất hơn) Phân phối truy cập. Một xấp xỉ thô của phân phối là kèo bóng đá c1 giá trị 1% thường xuyên nhất trong phạm vi, gần vớiMin, được vẽtham số% thời gian. Thetham sốGiá trị phải hoàn toàn dương.

  • Đối với phân phối Gaussian, khoảng thời gian được ánh xạ vào kèo bóng đá c1 phân phối bình thường tiêu chuẩn (đường cong Gaussian hình chuông cổ điển) bị cắt ngắn tại-Parameterở bên trái và+tham sốỞ bên phải. kèo bóng đá c1 giá trị ở giữa khoảng thời gian có nhiều khả năng được rút ra.PHI (x)là hàm phân phối tích lũy của phân phối bình thường tiêu chuẩn, với giá trị trung bìnhMUđược xác định là(tối đa + min) / 2.0, với


    f (x) = PHI (2.0*tham số*(x-mu)/(tối đa-tối thiểu+1))/
    (2.0*PHI (tham số)-1)

    Sau đó, ValueigiữaminMaxBao gồm được rút ra với xác suất:f (i + 0,5) - f (i - 0,5). Theo trực giác, càng lớntham số, kèo bóng đá c1 giá trị thường xuyên hơn gần giữa khoảng thời gian được rút ra và kèo bóng đá c1 giá trị ít thường xuyên hơn gần vớiminMaxgiới hạn. Khoảng 67% giá trị được rút ra từ giữa1.0 / tham số, đó là kèo bóng đá c1 người quan hệ0.5 / tham sốXung quanh giá trị trung bình và 95% ở giữa2.0 / tham số, đó là kèo bóng đá c1 người quan hệ1.0 / tham sốxung quanh trung bình; Ví dụ, nếutham sốlà 4.0, 67% giá trị được rút ra từ quý giữa (1.0 / 4.0) của khoảng (nghĩa là, từ3.0 / 8.0đến5.0 / 8.0) và 95% từ nửa giữa (2.0 / 4.0) của khoảng thời gian (tứ phân vị thứ hai và thứ ba). Tối thiểu cho phéptham sốGiá trị là 2.0.

  • Random_zipfianTạo phân phối Zipfian bị ràng buộc.tham sốXác định cách phân phối sai lệch. Càng lớntham số, kèo bóng đá c1 giá trị thường xuyên hơn gần với đầu của khoảng thời gian được rút ra. Phân phối là như vậy, giả sử phạm vi bắt đầu từ 1, tỷ lệ xác suất vẽKso với bản vẽK+1((K+1)/K) **tham số. Ví dụ,Random_zipfian (1, ..., 2.5)Sản xuất giá trị1về(2/1) ** 2.5 = 5.66lần thường xuyên hơn2, bản thân nó được sản xuất(3/2) ** 2.5 = 2.76lần thường xuyên hơn3, v.v.

    PGBenchS Triển khai dựa trên "Tạo biến thể ngẫu nhiên kèo bóng đá c1 đồng nhất", Luc Devroye, p. 550-551, Springer 1986. Do những hạn chế của thuật toán đó,tham sốGiá trị bị giới hạn trong phạm vi [1,001, 1000].

Note

Khi thiết kế điểm chuẩn chọn kèo bóng đá c1 hàng không đồng nhất, hãy lưu ý rằng kèo bóng đá c1 hàng được chọn có thể tương quan với kèo bóng đá c1 dữ liệu khác như ID từ trình tự hoặc thứ tự hàng vật lý, có thể làm lệch kèo bóng đá c1 phép đo hiệu suất.

Để tránh điều này, bạn có thể muốn sử dụngPermuteHàm hoặc một số bước bổ sung khác có hiệu ứng tương tự, để xáo trộn kèo bóng đá c1 hàng đã chọn và xóa kèo bóng đá c1 tương quan đó.

hàm bămHash,Hash_murmur2Hash_fnv1aChấp nhận giá trị đầu vào và tham số hạt giống tùy chọn. Trong trường hợp hạt giống kèo bóng đá c1 được cung cấp giá trị của: default_seedđược sử dụng, được khởi tạo ngẫu nhiên trừ khi được đặt bởi dòng kèo bóng đá c1-DTùy kèo bóng đá c1.

PermuteChấp nhận giá trị đầu vào, kích thước và tham số hạt giống tùy chọn. Nó tạo ra một hoán vị giả của kèo bóng đá c1 số nguyên trong phạm vi[0, size), và trả về chỉ mục của giá trị đầu vào trong kèo bóng đá c1 giá trị hoán vị. Hoán vị được chọn được tham số hóa bởi hạt giống, mặc định là: default_seed, nếu không được chỉ định. Không giống như kèo bóng đá c1 hàm băm,PermuteĐảm bảo rằng không có va chạm hoặc lỗ hổng nào trong kèo bóng đá c1 giá trị đầu ra. kèo bóng đá c1 giá trị đầu vào bên ngoài khoảng thời gian được giải thích modulo kích thước.Permutecó thể được sử dụng để phân tán phân phối kèo bóng đá c1 hàm ngẫu nhiên không đồng nhất nhưRandom_zipfianhoặcngẫu nhiên_exponentialđể kèo bóng đá c1 giá trị được rút ra thường xuyên hơn không được tương quan một cách tầm thường. Ví dụ, sau đâyPGBench97962_98106

\ Đặt kích thước 1000000

Trong một số trường hợp, một số phân phối riêng biệt là cần thiết kèo bóng đá c1 tương quan với nhau và đây là khi tham số hạt giống tùy chọn có ích:

98439_98546

kèo bóng đá c1 hành vi tương tự cũng có thể được xấp xỉ vớiHash:

\ Đặt kích thước 1000000

Tuy nhiên, kể từHashTạo va chạm, một số giá trị sẽ kèo bóng đá c1 thể truy cập được và những giá trị khác sẽ thường xuyên hơn dự kiến ​​từ phân phối ban đầu.

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

\ Đặt Aid Random (1, 100000 *: Tỷ lệ)

tập lệnh này cho phép mỗi lần lặp lại của giao dịch tham chiếu kèo bóng đá c1 hàng khác nhau, được chọn ngẫu nhiên. .

Ghi nhật ký PER-Transaction

với-LTùy chọn (nhưng kèo bóng đá c1 có--Ggregate-Intervaltùy kèo bóng đá c1),PGBenchViết thông tin về mỗi kèo bóng đá c1 vào một tệp nhật ký. Tệp nhật ký sẽ được đặt têntiền tố.nnn, trong đótiền tốMặc định làpgbench_lognnnlà pid củaPGBenchQuy trình. Tiền tố có thể được thay đổi bằng cách sử dụng-Log-PrefixTùy kèo bóng đá c1. Nếu-JTùy kèo bóng đá c1 là 2 hoặc cao hơn, để có nhiều luồng công nhân, mỗi luồng sẽ có tệp nhật ký riêng. Công nhân đầu tiên sẽ sử dụng cùng tên cho tệp nhật ký của nó như trong trường hợp công nhân đơn tiêu chuẩn.tiền tố.nnn.MMM, trong đóMMMlà số tuần tự cho mỗi công nhân bắt đầu với 1.

Mỗi dòng trong một tệp nhật ký mô tả một giao dịch. Nó chứa kèo bóng đá c1 trường phân tách không gian sau:

client_id

Xác định phiên khách chạy kèo bóng đá c1

kèo bóng đá c1 dịch_no

Đếm số lượng kèo bóng đá c1 đã được thực hiện bởi phiên đó

thời gian

Thời gian đã qua của kèo bóng đá c1, tính bằng micro giây

script_no

Xác định tệp tập lệnh được sử dụng cho kèo bóng đá c1 (hữu ích khi nhiều tập lệnh được chỉ định với-fhoặc-B)

time_epoch

Thời gian hoàn thành của kèo bóng đá c1, dưới dạng dấu thời gian unix-epoch

time_us

Phần thứ hai của thời gian hoàn thành kèo bóng đá c1, tính bằng micro giây

Lịch trình_lag

Độ trễ bắt đầu kèo bóng đá c1, đó là sự khác biệt giữa thời gian bắt đầu theo lịch trình của kèo bóng đá c1 và thời gian nó thực sự bắt đầu, trong micro giây (chỉ có mặt nếu--Rateđược chỉ định)

Retries

Số lần thử lại sau khi tuần tự hóa hoặc lỗi bế tắc trong quá trình kèo bóng đá c1 (chỉ có mặt nếu--Max-Trieskèo bóng đá c1 bằng một)

Khi cả hai--Rate-Latency-Limitđược sử dụng,Thời gianĐối với một kèo bóng đá c1 bị bỏ qua sẽ được báo cáo làBỏ qua. Nếu kèo bóng đá c1 kết thúc bằng một lỗi, nóThời giansẽ được báo cáo làkèo bóng đá c1 thành công. Nếu bạn sử dụng--Failures-DetailedTùy kèo bóng đá c1, Thethời giancủa kèo bóng đá c1 thất bại sẽ được báo cáo làtuần tự hóahoặcbế tắcTùy thuộc vào loại thất bại (xemThất bại và tuần tự hóa/lần thử lạiĐể biết thêm thông tin).

Đây là kèo bóng đá c1 đoạn của kèo bóng đá c1 tệp nhật ký được tạo trong kèo bóng đá c1 lần chạy đơn:

0 199 2241 0 1175850568 995598
0 200 2465 0 1175850568 998079
0 201 2513 0 1175850569 608
0 202 2038 0 1175850569 2663

kèo bóng đá c1 ví dụ khác với-RATE = 100-Latency-limit = 5(Lưu ý bổ sungLịch trình_lagcột):

0 81 4621 0 1412881037 912698 3005

Trong ví dụ này, kèo bóng đá c1 82 đã trễ, vì độ trễ của nó (6.173 ms) đã vượt quá giới hạn 5 ms. Hai kèo bóng đá c1 tiếp theo đã bị bỏ qua, vì chúng đã bị trễ trước khi chúng bắt đầu.

Ví dụ sau đây hiển thị một đoạn của tệp nhật ký với kèo bóng đá c1 lỗi và thử lại, với số lần thử tối đa được đặt thành 10 (lưu ý bổ sungRetriescột):

3 0 47423 0 1499414498 34501 3

Nếu--Failures-DetailedTùy kèo bóng đá c1 được sử dụng, loại lỗi được báo cáo trongTimenhư thế này:

3 0 47423 0 1499414498 34501 3

Khi chạy thử nghiệm dài về phần cứng có thể xử lý nhiều giao dịch, kèo bóng đá c1 tệp nhật ký có thể trở nên rất lớn. The-Sampling-RateTùy chọn có thể được sử dụng để chỉ ghi lại một mẫu kèo bóng đá c1 ngẫu nhiên.

Ghi nhật ký tổng hợp

với--Ggregate-IntervalTùy chọn, một định dạng khác được sử dụng cho kèo bóng đá c1 tệp nhật ký. Mỗi dòng nhật ký mô tả một khoảng thời gian tổng hợp.

Interval_Start

Thời gian bắt đầu của khoảng thời gian, dưới dạng tem thời gian unix-epoch

num_transactions

Số lượng kèo bóng đá c1 trong khoảng thời gian

sum_latency

Tổng độ trễ kèo bóng đá c1

sum_latency_2

Tổng bình phương của độ trễ kèo bóng đá c1

min_latency

Độ trễ kèo bóng đá c1 tối thiểu

Max_Latency

Độ trễ kèo bóng đá c1 tối đa

sum_lag

Tổng độ trễ bắt đầu giao dịch (kèo bóng đá c1 trừ khi--Rateđược chỉ định)

sum_lag_2

Tổng số bình phương của sự chậm trễ bắt đầu giao dịch (kèo bóng đá c1 trừ khi--Rateđược chỉ định)

MIN_LAG

Độ trễ bắt đầu kèo bóng đá c1 tối thiểu (0 trừ khi--Rateđược chỉ định)

MAX_LAG

Độ trễ bắt đầu kèo bóng đá c1 tối đa (0 trừ khi--Rateđược chỉ định)

Bỏ qua

Số lượng giao dịch bị bỏ qua vì họ đã bắt đầu quá muộn (kèo bóng đá c1 trừ khi--Rate--Latency-Limitđược chỉ định)

đã lại

Số lượng giao dịch được thử lại (kèo bóng đá c1 trừ khi--Max-Trieskèo bóng đá c1 bằng một)

Retries

Số lần thử lại sau khi tuần tự hóa hoặc lỗi bế tắc (kèo bóng đá c1 trừ khi--Max-Trieskèo bóng đá c1 bằng một)

serialization_failures

Số lượng giao dịch có lỗi tuần tự hóa và kèo bóng đá c1 được thử lại sau đó (kèo bóng đá c1 trừ khi--Failures-Detailedđược chỉ định)

deadlock_failures

Số lượng giao dịch có lỗi bế tắc và kèo bóng đá c1 được thử lại sau đó (kèo bóng đá c1 trừ khi--Failures-Detailedđược chỉ định)

Đây là một số ví dụ đầu ra được tạo với kèo bóng đá c1 tùy chọn sau:

110777_110909

1650260552 5178 26171317 177284491527 1136 44462 2647617 7321113867 0 9866 64 7564 28340 4148 0
1650260562 4808 25573984 220121792172 1171 62083 3037380 9666800914 0 9998 598 7392 26621 4527 0

Lưu ý rằng trong khi định dạng nhật ký đơn giản (kèo bóng đá c1 phân chia) hiển thị tập lệnh nào được sử dụng cho mỗi giao dịch, định dạng tổng hợp thì kèo bóng đá c1. Do đó, nếu bạn cần dữ liệu trên mỗi kịch bản, bạn cần phải tự mình tổng hợp dữ liệu.

Báo cáo trên mỗi statement

với-RTùy kèo bóng đá c1,PGBenchThu thập kèo bóng đá c1 số liệu thống kê sau cho mỗi câu lệnh:

  • độ trễ- Thời gian kèo bóng đá c1 đã trôi qua cho mỗi câu lệnh.PGBenchBáo cáo giá trị trung bình của tất cả kèo bóng đá c1 lần chạy thành công của câu lệnh.

  • Số lượng thất bại trong câu kèo bóng đá c1 này. Nhìn thấyThất bại và tuần tự hóa/lần thử lạiĐể biết thêm thông tin.

  • Số lần thử lại sau khi tuần tự hóa hoặc lỗi bế tắc trong câu kèo bóng đá c1 này. Nhìn thấyThất bại và tuần tự hóa/bế tắc lạiĐể biết thêm thông tin.

Báo cáo chỉ hiển thị số kèo bóng đá c1 thống kê thử lại nếu--Max-TriesTùy chọn kèo bóng đá c1 bằng 1.

Tất cả kèo bóng đá c1 giá trị được tính toán cho mỗi câu lệnh được thực hiện bởi mỗi máy khách và được báo cáo sau khi điểm chuẩn kết thúc.

Đối với tập kèo bóng đá c1 mặc định, đầu ra sẽ trông tương tự như thế này:

Khởi động chân kèo bóng đá c1 ... kết thúc.

Một ví dụ khác về đầu ra cho tập lệnh mặc định bằng cách sử dụng cấp độ phân lập kèo bóng đá c1 mặc định có thể nối tiếp (pgoptions = '-c default_transaction_isolation = serializable' pgbench ...):

Khởi động chân kèo bóng đá c1 ... kết thúc.

Nếu nhiều tệp tập lệnh được chỉ định, tất cả kèo bóng đá c1 số liệu thống kê được báo cáo riêng cho mỗi tệp tập lệnh.

Lưu ý rằng việc thu thập thông tin thời gian bổ sung cần thiết cho tính toán độ trễ trên mỗi statement thêm một số chi phí. Điều này sẽ làm chậm tốc độ thực thi trung bình và giảm kèo bóng đá c1 TPS được tính toán.

Thất bại và tuần tự hóa/bế tắc lại

Khi thực hiệnPGBench, Có ba loại lỗi chính:

  • Lỗi của chương trình chính. Họ là người nghiêm túc nhất và luôn dẫn đến kèo bóng đá c1 lối thoát ngay lập tức từPGBenchVới thông báo lỗi tương ứng. Họ bao gồm:

    • Lỗi ở đầuPGBench(ví dụ: giá trị tùy chọn kèo bóng đá c1 hợp lệ);

    • Lỗi trong chế độ khởi tạo (ví dụ: truy vấn để tạo bảng cho kèo bóng đá c1 tập lệnh tích hợp không thành công);

    • Lỗi trước khi bắt đầu kèo bóng đá c1 luồng (ví dụ: không thể kết nối với máy chủ cơ sở dữ liệu, lỗi cú pháp trong lệnh meta, lỗi tạo luồng);

    • Nội bộPGBenchLỗi (được cho là kèo bóng đá c1 bao giờ xảy ra ...).

  • Lỗi khi luồng quản lý máy khách của mình (ví dụ: máy khách không thể khởi động kết nối với máy chủ cơ sở dữ liệu / ổ cắm để kết nối máy khách với máy chủ cơ sở dữ liệu đã không hợp lệ). Trong những trường hợp như vậy, tất cả kèo bóng đá c1 máy khách của chủ đề này dừng trong khi kèo bóng đá c1 luồng khác tiếp tục hoạt động.

  • Lỗi khách hàng trực tiếp. Họ dẫn đến thoát ngay lập tức khỏiPGBenchChỉ với thông báo lỗi tương ứng trong trường hợp nội bộPGBenchLỗi (được cho là không bao giờ xảy ra ...). Mặt khác, trong trường hợp xấu nhất, họ chỉ dẫn đến việc phá thai của khách hàng thất bại trong khi kèo bóng đá c1 khách hàng khác tiếp tục chạy (nhưng một số lỗi của khách hàng được xử lý mà không phá thai của khách hàng và báo cáo riêng, xem bên dưới).PGBenchlỗi.

Chạy của khách hàng bị hủy bỏ trong trường hợp có lỗi nghiêm trọng; Ví dụ: kết nối với máy chủ cơ sở dữ liệu đã bị mất hoặc kết thúc của tập lệnh mà kèo bóng đá c1 hoàn thành giao dịch cuối cùng."kèo bóng đá c1" thực sự được thực hiện trong PGBench?Để biết thêm thông tin). kèo bóng đá c1 giao dịch có lỗi tuần tự hóa hoặc bế tắc được lặp lại sau khi rollback cho đến khi chúng hoàn thành thành công hoặc đạt được số lần thử tối đa (được chỉ định bởi--Max-TriesTùy kèo bóng đá c1) / thời gian thử lại tối đa (được chỉ định bởi-Latency-Limittùy kèo bóng đá c1) / kết thúc điểm chuẩn (được chỉ định bởi-Thời gianTùy chọn). Nếu lần chạy thử cuối cùng thất bại, giao dịch này sẽ được báo cáo là thất bại nhưng khách hàng kèo bóng đá c1 bị hủy bỏ và tiếp tục hoạt động.

Lưu ý

mà kèo bóng đá c1 cần chỉ định--Max-TriesTùy chọn, một giao dịch sẽ kèo bóng đá c1 bao giờ được thử lại sau khi tuần tự hóa hoặc lỗi bế tắc vì giá trị mặc định của nó là 1. Sử dụng số lần thử kèo bóng đá c1 giới hạn (--Max-Tries = 0) và-Latency-LimitTùy chọn chỉ giới hạn thời gian tối đa của kèo bóng đá c1 lần thử. Bạn cũng có thể sử dụng-Thời gianTùy chọn để giới hạn thời lượng điểm chuẩn theo số lần thử kèo bóng đá c1 giới hạn.

Hãy cẩn thận khi lặp lại kèo bóng đá c1 tập lệnh có chứa nhiều giao dịch: tập lệnh luôn được thử lại hoàn toàn, vì vậy kèo bóng đá c1 giao dịch thành công có thể được thực hiện nhiều lần.

Hãy cẩn thận khi lặp lại kèo bóng đá c1 giao dịch với kèo bóng đá c1 lệnh shell. Không giống như kết quả của kèo bóng đá c1 lệnh SQL, kết quả của kèo bóng đá c1 lệnh shell không được quay lại, ngoại trừ giá trị biến của\ setshellkèo bóng đá c1.

Độ trễ của một giao dịch thành công bao gồm toàn bộ thời gian thực hiện giao dịch với rollbacks và retries. Độ trễ chỉ được đo cho kèo bóng đá c1 giao dịch và lệnh thành công nhưng không phải cho kèo bóng đá c1 giao dịch hoặc lệnh không thành công.

Báo cáo chính chứa số lượng kèo bóng đá c1 thất bại. Nếu--Max-TriesTùy chọn không bằng 1, báo cáo chính cũng chứa kèo bóng đá c1 số liệu thống kê liên quan đến thử lại: Tổng số giao dịch được thử lại và tổng số lần thử lại. Báo cáo trên mỗi kịch bản kế thừa tất cả kèo bóng đá c1 trường này từ báo cáo chính.--Max-TriesTùy chọn kèo bóng đá c1 bằng 1.

Nếu bạn muốn nhóm kèo bóng đá c1 lỗi theo kèo bóng đá c1 loại cơ bản trong nhật ký tổng hợp và tổng hợp, cũng như trong kèo bóng đá c1 báo cáo chính và trên mỗi kịch bản, sử dụng--Failures-DetailedTùy chọn. Nếu bạn cũng muốn phân biệt tất cả kèo bóng đá c1 lỗi và lỗi (lỗi mà không thử lại) theo loại bao gồm cả giới hạn để thử lại đã vượt quá và mức độ vượt quá của nó đối với kèo bóng đá c1 lỗi tuần tự hóa/bế tắc, hãy sử dụngTùy kèo bóng đá c1.

Thực hành tốt

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

Ở nơi đầu tiên,kèo bóng đá c1 bao giờTin bất kỳ bài kiểm tra nào chỉ chạy trong vài giây. Sử dụng-Thoặc-T123169_123427

Đối với kịch bản thử nghiệm TPC-B mặc định, hệ số tỷ lệ khởi tạo (-S) ít nhất phải 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 kèo bóng đá c1, bạn sẽ chủ yếu là đo lường sự tranh chấp cập nhật.-Shàng trongpgbench_branchesBảng và mọi kèo bóng đá c1 đều muốn cập nhật một trong số đó, vì vậy-CGiá trị vượt quá-Schắc chắn sẽ dẫn đến rất nhiều giao dịch bị chặn chờ kèo bóng đá c1 giao dịch khác.

Kịch bản kiểm tra mặc định cũng khá nhạy cảm với thời gian kể từ khi kèo bóng đá c1 bảng được khởi tạo: tích lũy kèo bóng đá c1 hàng chết và không gian chết trong kèo bóng đá c1 bảng thay đổi kết quả. Để hiểu kết quả, bạn phải theo dõi tổng số cập nhật và khi việc hút bụi xảy ra.

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

bảo mật

Nếu người dùng kèo bóng đá c1 tin cậy có quyền truy cập vào cơ sở dữ liệu chưa áp dụngmẫu sử dụng lược đồ an toàn, kèo bóng đá c1 chạyPGBenchTrong cơ sở dữ kèo bóng đá c1 đó.PGBenchSử dụng tên kèo bóng đá c1 đủ tiêu chuẩn và kèo bóng đá c1 thao tác đường dẫn tìm kiếm.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu kèo bóng đá c1 chính xác, kèo bóng đá c1 khớpMẫu nàyĐể báo cáo vấn đề tài kèo bóng đá c1.