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 / 8.2 / 8.1 / 8.0 / 7.4

52.12.pg_locks #

Viewpg_locksCung cấp quyền truy cập vào thông tin về các cách đọc kèo bóng đá được tổ chức bởi các quy trình hoạt động trong máy chủ cơ sở dữ liệu. Nhìn thấyChương 13Để thảo luận thêm về cách đọc kèo bóng đá.

pg_locksChứa một hàng trên mỗi đối tượng có thể cách đọc kèo bóng đá hoạt động, chế độ cách đọc kèo bóng đá được yêu cầu và quy trình liên quan. Do đó, cùng một đối tượng có thể cách đọc kèo bóng đá có thể xuất hiện nhiều lần, nếu nhiều quy trình đang giữ hoặc chờ cách đọc kèo bóng đá trên đó. Tuy nhiên, một đối tượng hiện không có cách đọc kèo bóng đá trên đó sẽ không xuất hiện.

Có một số loại đối tượng có thể cách đọc kèo bóng đá riêng biệt: toàn bộ mối quan hệ (ví dụ: bảng), các trang quan hệ riêng lẻ, các bộ dữ liệu cá nhân, ID giao dịch (cả ID ảo và ID vĩnh viễn) và các đối tượng cơ sở dữ liệu chung (được xác định bởi lớp OID và đối tượng OID, theo cùng một cáchpg_descriphoặcPG_DEPEND). Ngoài ra, quyền mở rộng một mối quan hệ được biểu diễn dưới dạng đối tượng có thể cách đọc kèo bóng đá riêng, như quyền cập nhậtpg_database.Datfrozenxid. Cũng,Tư vấncách đọc kèo bóng đá có thể được thực hiện trên các số có ý nghĩa do người dùng xác định.

Bảng 52.12.pg_lockscột

loại cột

Mô tả

LockType Text

Loại đối tượng có thể cách đọc kèo bóng đá:Mối quan hệ, mở rộng, frozenid, trang, tuple, TranstercentID, VirtualXid, Spectoken, Đối tượng, userlock, Tư vấnhoặcỨng dụng. (Xem thêmBảng 27.11.)

Cơ sở dữ liệu OID(Tài liệu tham khảopg_database.OID)

OID của cơ sở dữ liệu trong đó mục tiêu cách đọc kèo bóng đá tồn tại hoặc không nếu mục tiêu là đối tượng được chia sẻ hoặc null nếu mục tiêu là ID giao dịch

quan hệ OID(Tài liệu tham khảopg_ class.oid)

oid của mối quan hệ được nhắm mục tiêu bởi cách đọc kèo bóng đá hoặc null nếu mục tiêu không phải là một mối quan hệ hoặc một phần của mối quan hệ

trang INT4

Số trang được nhắm mục tiêu bởi cách đọc kèo bóng đá trong mối quan hệ hoặc null nếu mục tiêu không phải là trang quan hệ hoặc tuple

Tuple INT2

Số Tuple được nhắm mục tiêu bởi cách đọc kèo bóng đá trong trang hoặc null nếu mục tiêu không phải là một tuple

VirtualXid Text

ID ảo của giao dịch được nhắm mục tiêu bởi cách đọc kèo bóng đá hoặc null nếu mục tiêu không phải là ID giao dịch ảo; nhìn thấyChương 66

TranstercentID XID

ID của giao dịch được nhắm mục tiêu bởi cách đọc kèo bóng đá hoặc null nếu mục tiêu không phải là ID giao dịch;Chương 66

classID OID(Tài liệu tham khảoPG_Class.oid)

OID của danh mục hệ thống chứa mục tiêu cách đọc kèo bóng đá hoặc null nếu mục tiêu không phải là đối tượng cơ sở dữ liệu chung

objid oid(Tài liệu tham khảo bất kỳ cột OID nào)

OID của mục tiêu cách đọc kèo bóng đá trong danh mục hệ thống của nó hoặc null nếu mục tiêu không phải là đối tượng cơ sở dữ liệu chung

objsubid INT2

Số cột được nhắm mục tiêu bởi cách đọc kèo bóng đá (TheclassIdobjidTham khảo bản thân bảng) hoặc không nếu mục tiêu là một số đối tượng cơ sở dữ liệu chung khác hoặc null nếu mục tiêu không phải là đối tượng cơ sở dữ liệu chung

VirtualTransaction Text

ID ảo của giao dịch đang giữ hoặc chờ cách đọc kèo bóng đá này

PID INT4

ID xử lý của quy trình máy chủ giữ hoặc chờ cách đọc kèo bóng đá này hoặc null nếu cách đọc kèo bóng đá được tổ chức bởi một giao dịch đã chuẩn bị

Mode Text

Tên của chế độ cách đọc kèo bóng đá được giữ hoặc mong muốn bởi quy trình này (xemPhần 13.3.1Phần 13.2.3)

được cấp bool

Đúng nếu cách đọc kèo bóng đá được giữ, sai nếu cách đọc kèo bóng đá được chờ đợi

Fastpath bool

Đúng nếu cách đọc kèo bóng đá được thực hiện qua đường dẫn nhanh, sai nếu được lấy qua bảng cách đọc kèo bóng đá chính

WaitStart TIMESTAMPTZ

Thời gian khi quá trình máy chủ bắt đầu chờ cách đọc kèo bóng đá này hoặc null nếu cách đọc kèo bóng đá được giữ. Lưu ý rằng điều này có thể là vô giá trị trong một khoảng thời gian rất ngắn sau khi sự chờ đợi bắt đầu mặc dùđược cấpSai.


được cấplà đúng trong một hàng đại diện cho một cách đọc kèo bóng đá được giữ bởi quy trình được chỉ định. Sai chỉ ra rằng quá trình này hiện đang chờ đợi để có được cách đọc kèo bóng đá này, trong đó ngụ ý rằng ít nhất một quy trình khác đang giữ hoặc chờ chế độ cách đọc kèo bóng đá mâu thuẫn trên cùng một đối tượng có thể cách đọc kèo bóng đá. Quá trình chờ sẽ ngủ cho đến khi cách đọc kèo bóng đá khác được phát hành (hoặc tình huống bế tắc được phát hiện). Một quy trình duy nhất có thể chờ để có được nhiều nhất một cách đọc kèo bóng đá tại một thời điểm.

Trong suốt quá trình chạy giao dịch, quy trình máy chủ giữ cách đọc kèo bóng đá độc quyền trên ID giao dịch ảo của giao dịch. Nếu ID vĩnh viễn được gán cho giao dịch (thường chỉ xảy ra nếu giao dịch thay đổi trạng thái của cơ sở dữ liệu), nó cũng giữ cách đọc kèo bóng đá độc quyền trên ID giao dịch vĩnh viễn của giao dịch cho đến khi kết thúc. Khi một quy trình thấy cần phải chờ cụ thể để một giao dịch khác kết thúc, nó sẽ làm như vậy bằng cách cố gắng có được cách đọc kèo bóng đá chia sẻ trên ID giao dịch khác (ID ảo hoặc vĩnh viễn tùy thuộc vào tình huống). Điều đó sẽ chỉ thành công khi giao dịch khác chấm dứt và phát hành cách đọc kèo bóng đá của nó.

Mặc dù các bộ dữ liệu là một loại đối tượng có thể cách đọc kèo bóng đá, thông tin về các cách đọc kèo bóng đá cấp hàng được lưu trữ trên đĩa, không phải trong bộ nhớ và do đó cách đọc kèo bóng đá cấp hàng thường không xuất hiện trong chế độ xem này. Nếu một quá trình đang chờ cách đọc kèo bóng đá cấp hàng, nó thường sẽ xuất hiện trong chế độ xem khi chờ ID giao dịch vĩnh viễn của chủ sở hữu hiện tại của cách đọc kèo bóng đá hàng đó.

cách đọc kèo bóng đá chèn đầu cơ bao gồm ID giao dịch và mã thông báo chèn đầu cơ. Mã thông báo chèn đầu cơ được hiển thị trongobjidcột.

cách đọc kèo bóng đá tư vấn có thể được thu thập trên các cách đọc kèo bóng đá bao gồm mộtBigintGiá trị hoặc hai giá trị số nguyên. MỘTBigintcách đọc kèo bóng đá được hiển thị với nửa thứ tự cao của nó trongclassIdCột, một nửa thứ tự thấp của nó trongobjidCột vàobjsubidbằng 1. Bản gốcBigintGiá trị có thể được lắp lại với biểu thức(classid :: Bigint << 32) | objid :: Bigint. Các phím số nguyên được hiển thị với phím đầu tiên trongclassIDCột, phím thứ hai trongobjidCột vàobjsubidbằng 2. Ý nghĩa thực tế của các cách đọc kèo bóng đá tùy thuộc vào người dùng. cách đọc kèo bóng đá tư vấn là cục bộ cho mỗi cơ sở dữ liệu, vì vậyCơ sở dữ liệuCột có ý nghĩa đối với cách đọc kèo bóng đá tư vấn.

Áp dụng cách đọc kèo bóng đá giao dịch được sử dụng ở chế độ song song để áp dụng giao dịch trong sao chép logic. ID giao dịch từ xa được hiển thị trongGiao dịchIDCột. TheobjsubidHiển thị phân nhóm cách đọc kèo bóng đá là 0 cho cách đọc kèo bóng đá được sử dụng để đồng bộ hóa tập hợp các thay đổi và 1 cho cách đọc kèo bóng đá được sử dụng để chờ giao dịch để hoàn thành để đảm bảo lệnh cam kết.

pg_locksCung cấp chế độ xem toàn cầu về tất cả các cách đọc kèo bóng đá trong cụm cơ sở dữ liệu, không chỉ những cái liên quan đến cơ sở dữ liệu hiện tại. Mặc dù nóMối quan hệCột có thể được kết hợp vớipg_ class.OIDĐể xác định các mối quan hệ bị cách đọc kèo bóng đá, điều này sẽ chỉ hoạt động chính xác cho các mối quan hệ trong cơ sở dữ liệu hiện tại (những người màCơ sở dữ liệuCột là OID hoặc không cơ sở dữ liệu hiện tại).

ThePIDCột có thể được nối vớiPIDCột củapg_stat_activityXem để nhận thêm thông tin về việc giữ phiên hoặc chờ từng cách đọc kèo bóng đá, ví dụ

Chọn * từ pg_locks pl trái tham gia pg_stat_activity psa
    Trên pl.pid = psa.pid;

Ngoài ra, nếu bạn đang sử dụng các giao dịch đã chuẩn bị,VirtualTransactionCột có thể được nối vớiGiao dịchCột củapg_prepared_xactsXem để có thêm thông tin về các giao dịch đã chuẩn bị giữ cách đọc kèo bóng đá. (Một giao dịch đã chuẩn bị không bao giờ có thể chờ cách đọc kèo bóng đá, nhưng nó tiếp tục giữ các cách đọc kèo bóng đá mà nó có được trong khi chạy.) Ví dụ:

Chọn * từ pg_locks pl trái tham gia pg_prepared_xacts ppx
    Trên pl.virtualtransaction = '-1/' || ppx.transaction;

Mặc dù có thể có được thông tin về các quy trình nào chặn các quy trình khác bằng cách tham giapg_locksChống lại chính nó, điều này rất khó để có được đúng chi tiết. Một truy vấn như vậy sẽ phải mã hóa kiến ​​thức về chế độ cách đọc kèo bóng đá nào xung đột với những người khác. Tệ hơn,pg_locksXem không tiết lộ thông tin về các quy trình nào ở phía trước những người khác trong hàng đợi cách đọc kèo bóng đá, cũng như thông tin về quy trình nào là công nhân song song chạy thay mặt cho các phiên khách hàng khác. Tốt hơn là sử dụngpg_blocking_pids ()Hàm (xemBảng 9,69) Để xác định quy trình chờ nào bị chặn phía sau.

Thepg_locksXem hiển thị dữ liệu từ cả trình quản lý cách đọc kèo bóng đá thông thường và trình quản lý cách đọc kèo bóng đá vị ngữ, là các hệ thống riêng biệt; Ngoài ra, trình quản lý cách đọc kèo bóng đá thông thường chia các cách đọc kèo bóng đá của nó thành thông thường vàđường dẫn nhanhcách đọc kèo bóng đá. Dữ liệu này không được đảm bảo là hoàn toàn phù hợp. Khi chế độ xem được truy vấn, dữ liệu trên cách đọc kèo bóng đá đường nhanh (vớiFastPath=TRUE) được thu thập từ mỗi phụ trợ mỗi lần một lần, mà không đóng băng trạng thái của toàn bộ trình quản lý cách đọc kèo bóng đá, do đó có thể cách đọc kèo bóng đá hoặc phát hành cách đọc kèo bóng đá trong khi thông tin được thu thập. Tuy nhiên, lưu ý rằng các cách đọc kèo bóng đá này được biết là không xung đột với bất kỳ cách đọc kèo bóng đá nào khác hiện đang có. Sau khi tất cả các phụ trợ đã được truy vấn cho các cách đọc kèo bóng đá đường nhanh, phần còn lại của trình quản lý cách đọc kèo bóng đá thông thường bị cách đọc kèo bóng đá dưới dạng đơn vị và ảnh chụp nhanh nhất quán của tất cả các cách đọc kèo bóng đá còn lại được thu thập như một hành động nguyên tử. Sau khi mở cách đọc kèo bóng đá trình quản lý cách đọc kèo bóng đá thông thường, trình quản lý cách đọc kèo bóng đá vị ngữ cũng bị cách đọc kèo bóng đá tương tự và tất cả các cách đọc kèo bóng đá dự đoán được thu thập dưới dạng hành động nguyên tử. Do đó, ngoại trừ cách đọc kèo bóng đá đường nhanh, mỗi trình quản lý cách đọc kèo bóng đá sẽ cung cấp một bộ kết quả nhất quán, nhưng vì chúng tôi không cách đọc kèo bóng đá cả trình quản lý cách đọc kèo bóng đá một lúc, có thể cách đọc kèo bóng đá hoặc phát hành cách đọc kèo bóng đá sau khi chúng tôi thẩm vấn trình quản lý cách đọc kèo bóng đá thông thường và trước khi chúng tôi thẩm vấn trình quản lý cách đọc kèo bóng đá dự đoán.

cách đọc kèo bóng đá trình quản lý cách đọc kèo bóng đá thông thường và/hoặc vị từ có thể có một số tác động đến hiệu suất cơ sở dữ liệu nếu chế độ xem này được truy cập rất thường xuyên. Các cách đọc kèo bóng đá chỉ được giữ trong khoảng thời gian tối thiểu cần thiết để có được dữ liệu từ các trình quản lý cách đọc kèo bóng đá, nhưng điều này không hoàn toàn loại bỏ khả năng tác động hiệu suất.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.