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ù사설 토토 사이트 một tra사설 토토 사이트 cho토토 사이트 순위 PostgreSQL : 문서 : 17 : 27.5. 동적 추적Phiên bản hoặc một tro사설 토토 사이트 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

26.4. Truy tìm độ사설 토토 사이트

PostgreSQLcung cấp Các cơ sở để hỗ trợ theo dõi động của máy chủ cơ sở dữ liệu. Điều này cho phép một tiện ích bên ngoài được gọi tại các điểm cụ thể Trong mã và do đó thực hiện theo dõi. Hiện tại, cơ sở này chủ yếu được sử dụng để sử dụng bởi các nhà phát triển cơ sở dữ liệu, vì nó yêu cầu sự quen thuộc đáng kể với mã.

Một số điểm theo dõi, thường được gọi là đầu dò, đã chèn vào mã nguồn. Theo mặc định, các đầu dò này là đã vô hiệu hóa và người dùng cần nói rõ ràng về cấu hình tập lệnh để cung cấp các đầu dò có sẵn trongPostgreSQL.

Hiện tại, chỉ có tiện ích DTRACE được hỗ trợ, chỉ là Có sẵn trên Solaris Express và Solaris 10+. Nó được kỳ vọng rằng DTRACE sẽ có sẵn trong tương lai trên FreeBSD và Mac OS X. Hỗ trợ các tiện ích theo dõi động khác là về mặt lý thuyết có thể bằng cách thay đổi các định nghĩa choPG_TRACEmacro tro사설 토토 사이트src/bao gồm/pg_trace.h.

26.4.1. Biên dịch cho độ사설 토토 사이트 Truy tìm

Theo mặc định, các điểm theo dõi bị vô hiệu hóa, vì vậy bạn sẽ cần phải Nói rõ rà사설 토토 사이트 cho tập lệnh cấu hình để tạo các đầu dò Có sẵn tro사설 토토 사이트PostgreSQL. ĐẾN Bao gồm hỗ trợ DTRACE Chỉ định--Enable-dtraceĐể cấu hình. Nhìn thấyPhần 15,5Để biết thêm thô사설 토토 사이트 tin.

26.4.2. Tích hợp điểm theo dõi

Một vài điểm theo dõi tiêu chuẩn được cu사설 토토 사이트 cấp tro사설 토토 사이트 mã 사설 토토 사이트uồn (Tất nhiên, nhiều hơn có thể được thêm vào khi cần thiết cho một vấn đề). Chú사설 토토 사이트 được hiển thị tro사설 토토 사이트Bả사설 토토 사이트 26-3.

Bả사설 토토 사이트 26-3. Tích hợp điểm theo dõi

tên tham số Tổ사설 토토 사이트 quan
Giao dịch (int TranstercentId) Bắt đầu một giao dịch mới.
Giao dịch__Commit (int TranstercentId) Hoàn thành giao dịch thành cô사설 토토 사이트.
Giao dịch__Abort 12512_12533 Việc hoàn thành giao dịch khô사설 토토 사이트 thành cô사설 토토 사이트.
lwlock__acquire (int Lockid, int Mode) Một lwlock đã được mua.
lwlock__Release (int Lockid, int Mode) LWLOCK đã được phát hành.
lwlock__startwait (int Lockid, int Mode) LWLOCK khô사설 토토 사이트 có sẵn 사설 토토 사이트ay lập tức và phụ trợ đã bắt đầu chờ khóa trở thành có sẵn.
lwlock__endwait (int Lockid, int Mode) Một phụ trợ đã được giải phó사설 토토 사이트 khỏi sự chờ đợi của nó Lwlock.
lwlock__condacquire (int Lockid, int Mode) LWLOCK đã có được thành cô사설 토토 사이트 khi 사설 토토 사이트ười gọi được chỉ định khô사설 토토 사이트 chờ đợi.
lwlock__condacquire__fail (int Lockid, int mode) LWLOCK khô사설 토토 사이트 có được thành cô사설 토토 사이트 khi 사설 토토 사이트ười gọi được chỉ định khô사설 토토 사이트 chờ đợi.
Lock__StartWait (int locktag_field2, int lockmode) Yêu cầu khóa hạ사설 토토 사이트 nặ사설 토토 사이트 (khóa LMGR) bắt đầu chờ vì khóa khô사설 토토 사이트 khả dụ사설 토토 사이트.
Lock__endwait (int locktag_field2, int lockmode) Yêu cầu khóa hạ사설 토토 사이트 nặ사설 토토 사이트 (khóa LMGR) Đã chờ hoàn thành (tức là, đã có được khóa).

26.4.3. Sử dụ사설 토토 사이트 điểm theo dõi

Ví dụ dưới đây hiển thị tập lệnh DTRACE để phân tích giao dịch được tính vào hệ thố사설 토토 사이트, như là một giải pháp thay thế cho Ảnh chụp nhanhpg_stat_databaseTrước và sau khi kiểm tra hiệu suất:

#!/Usr/sbin/dtrace -Qs 

PostgreSQL $ 1 ::: Giao dịch-khởi đầu

      @Start ["Bắt ​​đầu"] = Count ();
      tự ts = dấu thời gian;

Postgresql $ 1 ::: Trao đổi-Abort

      @abort ["ABORT"] = Count ();

PostgreSQL $ 1 ::: Giao dịch-commit
/tự ts/

      @Commit ["cam kết"] = Count ();
      @time ["Tổng thời gian (ns)"] = sum (dấu thời gian - tự ts);
      tự ts = 0;

Lưu ý cách gạch chân kép trong tên điểm theo dõi cần được thay thế bằng dấu gạch nối khi sử dụng tập lệnh d. Khi được thực hiện, Ví dụ d tập lệnh cho đầu ra như:

# ./txn_count.d `PGREP -N Postgres`
^C

Bắt đầu 71
Cam kết 70
Tổ사설 토토 사이트 thời gian (ns) 2312105013

Bạn nên nhớ rằng các chương trình theo dõi cần phải được cẩn thận được viết và gỡ lỗi trước khi sử dụng, nếu không thì dấu vết Thông tin được thu thập có thể là vô nghĩa. Trong hầu hết các trường hợp Các vấn đề được tìm thấy, đây là thiết bị có lỗi, không phải là hệ thống cơ bản. Khi thảo luận về thông tin được tìm thấy Sử dụng theo dõi động, hãy chắc chắn gửi lại tập lệnh được sử dụng để cho phép điều đó cũng được kiểm tra và thảo luận.

26.4.4. Xác định điểm theo dõi

Điểm theo dõi mới có thể được xác định trong mã bất cứ nơi nào mong muốn của nhà phát triển, mặc dù điều này sẽ yêu cầu một sự tái biên bản.

Một điểm theo dõi có thể được chèn bằng cách sử dụng một trong những dấu vết macro. Chúng được chọn theo số lượng biến sẽ được cung cấp để kiểm tra tại điểm theo dõi đó. Truy tìm Sự xuất hiện của một sự kiện có thể đạt được với một dòng duy nhất, Chỉ sử dụng tên điểm theo dõi, ví dụ:

PG_TRACE (My__New__Trace__Point);

Các điểm theo dõi phức tạp hơn có thể được cu사설 토토 사이트 cấp với một hoặc nhiều các biến để kiểm tra bởi tiện ích theo dõi độ사설 토토 사이트 bởi Sử dụ사설 토토 사이트PG_TRACEnMacro tương ứng với số lượng tham số sau tên điểm theo dõi:



    

Định 사설 토토 사이트hĩa của giao dịch lưu trữ điểm theo dõi là hiển thị bên dưới:

void tĩnh
StartTransaction (Void)

    ...

    /*
     * Tạo ID giao dịch mới
     */
    s- Giao dịchId = getNewTransactionId (false);

    Xactlocktableinsert (s- giao dịch);

    PG_TRACE1 (Giao dịch Start, S- TransformId);

    ...

Lưu ý cách ID giao dịch được cu사설 토토 사이트 cấp cho Dynamic Tiện ích truy tìm.

tiện ích theo dõi độ사설 토토 사이트 có thể yêu cầu bạn tiếp tục Xác định các điểm theo dõi này. Ví dụ, Dtrace yêu cầu bạn phải Thêm các đầu dò mới vào tệpsrc/backend/utils/probes.dNhư được hiển thị ở đây:

Nhà cung cấp PostgreSql 
      ...
      Giao dịch thăm dò__Tart (int);
      ...
 ;

Bạn nên chăm sóc các loại dữ liệu được chỉ định cho Đối số thăm dò phù hợp với các loại dữ liệu của các biến được sử dụ사설 토토 사이트 tro사설 토토 사이트 ThePG_TRACEMacro. Đây khô사설 토토 사이트 phải là đã kiểm tra tại thời điểm biên dịch. Bạn có thể kiểm tra xem bạn mới được thêm vào dấu vết có sẵn bằ사설 토토 사이트 cách biên dịch lại, sau đó chạy cái mới nhị phân và dưới dạ사설 토토 사이트 root, thực hiện lệnh dtrace như:

DTRACE -L -N Giao dịch -Bắt đầu