kèo bóng đá pháp bị - kèo bóng đá pháp bị một tuyên bố để thực thi
kèo bóng đá pháp bịtên
[(data_type
[, ...])] AScâu kèo bóng đá pháp
kèo bóng đá pháp bị
Tạo một câu lệnh đã kèo bóng đá pháp bị. Một câu lệnh đã kèo bóng đá pháp bị là một đối tượng phía máy chủ có thể được sử dụng để tối ưu hóa hiệu suất.kèo bóng đá pháp bị
Câu kèo bóng đá pháp được thực thi, câu kèo bóng đá pháp được chỉ định được phân tích phân tích, phân tích và viết lại. Khi mộtthực thi
Lệnh sau đó được ban hành, câu lệnh đã kèo bóng đá pháp bị được lên kế hoạch và thực thi. Sự phân công lao động này tránh được công việc phân tích phân tích phân tích lặp đi lặp lại, đồng thời cho phép kế hoạch thực hiện phụ thuộc vào các giá trị tham số cụ thể được cung cấp.
Các câu lệnh được kèo bóng đá pháp bị có thể lấy các tham số: Các giá trị được thay thế vào câu lệnh khi nó được thực thi. Khi tạo câu lệnh đã kèo bóng đá pháp bị, hãy tham khảo các tham số theo vị trí, sử dụng$ 1
, $ 2
, v.v ... kèo bóng đá pháp danh sách tương ứng các loại dữ liệu tham số có thể được chỉ định tùy ý. Khi loại dữ liệu của tham số không được chỉ định hoặc được khai báo làkhông xác định
, loại được suy ra từ ngữ cảnh trong đó tham số được tham chiếu đầu tiên (nếu có thể). Khi thực hiện câu kèo bóng đá pháp, chỉ định các giá trị thực cho các tham số này trongthực thi
Tuyên bố. Tham khảothực thiĐể biết thêm thông tin về điều đó.
Các câu lệnh được kèo bóng đá pháp bị chỉ kéo dài trong thời gian của phiên cơ sở dữ liệu hiện tại. Khi phiên kết thúc, câu lệnh đã được kèo bóng đá pháp bị bị lãng quên, vì vậy nó phải được tái tạo trước khi được sử dụng lại.DealLocate
kèo bóng đá pháp.
Các câu lệnh được kèo bóng đá pháp bị có khả năng có lợi thế về hiệu suất lớn nhất khi một phiên được sử dụng để thực hiện một số lượng lớn các câu lệnh tương tự. Sự khác biệt về hiệu suất sẽ đặc biệt có ý nghĩa nếu các câu lệnh phức tạp để lập kế hoạch hoặc viết lại, ví dụ: nếu truy vấn liên quan đến việc nối nhiều bảng hoặc yêu cầu áp dụng một số quy tắc.
tên
Một tên tùy ý được đặt cho câu lệnh đã kèo bóng đá pháp bị cụ thể này. Nó phải là duy nhất trong một phiên duy nhất và sau đó được sử dụng để thực thi hoặc giải quyết một câu lệnh đã kèo bóng đá pháp bị trước đó.
data_type
Loại dữ liệu của một tham số cho câu lệnh đã kèo bóng đá pháp bị. Nếu loại dữ liệu của một tham số cụ thể không được xác định hoặc được chỉ định làkhông xác định
, nó sẽ được suy ra từ ngữ cảnh trong đó tham số được tham chiếu đầu tiên. Để chỉ các tham số trong câu lệnh đã kèo bóng đá pháp bị, hãy sử dụng$ 1
, $ 2
, v.v.
câu kèo bóng đá pháp
bất kỳChọn
, Chèn
, Cập nhật
, Xóa
, hợp nhất
hoặcGiá trị
câu kèo bóng đá pháp.
Một câu lệnh đã kèo bóng đá pháp bị có thể được thực thi bằng mộtKế hoạch chunghoặc AKế hoạch tùy chỉnh. kèo bóng đá pháp kế hoạch chung là giống nhau trên tất cả các thực thi, trong khi kèo bóng đá pháp kế hoạch tùy chỉnh được tạo cho kèo bóng đá pháp thực thi cụ thể bằng cách sử dụng các giá trị tham số được đưa ra trong cuộc gọi đó.
Theo mặc định (nghĩa là khiplan_cache_modeđược đặt thànhAuto
), máy chủ sẽ tự động chọn sử dụng gói chung hay tùy chỉnh cho một câu lệnh đã kèo bóng đá pháp bị có tham số. Quy tắc hiện tại cho điều này là năm lần thực hiện đầu tiên được thực hiện với các kế hoạch tùy chỉnh và chi phí ước tính trung bình của các kế hoạch đó được tính toán.
heuristic này có thể bị ghi đè, buộc máy chủ phải sử dụng các gói chung hoặc tùy chỉnh, bằng cách đặtplan_cache_mode
đếnForce_Generic_Plan
hoặcForce_Custom_Plan
tương ứng. Cài đặt này chủ yếu hữu ích nếu ước tính chi phí của kế hoạch chung là giảm kém vì kèo bóng đá pháp số lý do, cho phép nó được chọn mặc dù chi phí thực tế của nó nhiều hơn nhiều so với kế hoạch tùy chỉnh.
Để kiểm tra kế hoạch truy vấnPostgreSQLđang sử dụng cho một câu lệnh đã kèo bóng đá pháp bị, sử dụngGiải thích
, ví dụ
Giải thích thực thitên
(tham số_values
);
Nếu kèo bóng đá pháp kế hoạch chung đang được sử dụng, nó sẽ chứa các ký hiệu tham số$
, trong khi kèo bóng đá pháp kế hoạch tùy chỉnh sẽ có các giá trị tham số được cung cấp được thay thế vào nó.n
Để biết thêm thông tin về lập kế hoạch truy vấn và các số liệu thống kê được thu thập bởiPostgreSQLVới mục đích đó, xemPhân tíchTài liệu.
Mặc dù điểm chính của câu lệnh đã kèo bóng đá pháp bị là để tránh phân tích phân tích và lập kế hoạch phân tích lặp đi lặp lại của tuyên bố,PostgreSQLsẽ buộc phân tích lại và lập kế hoạch lại câu lệnh trước khi sử dụng nó bất cứ khi nào các đối tượng cơ sở dữ liệu được sử dụng trong tuyên bố đã trải qua các thay đổi xác định (DDL) hoặc số liệu thống kê kế hoạch của họ đã được cập nhật kể từ khi sử dụng trước đây của câu lệnh đã kèo bóng đá pháp bị. Ngoài ra, nếu giá trị củasearch_pathThay đổi từ sử dụng này sang cách tiếp theo, câu kèo bóng đá pháp sẽ được phân loại lại bằng cách sử dụng mớisearch_path
. (Hành vi sau này là mới nhưPostgreSQL9.3.) Một ví dụ về một trường hợp mà sự tương đương ngữ nghĩa không hoàn hảo là nếu câu lệnh đề cập đến một bảng bằng một tên không đủ tiêu kèo bóng đá pháp, và sau đó một bảng mới cùng tên được tạo trong một lược đồ xuất hiện trước đó trongsearch_path
, Không có phân chia lại tự động sẽ xảy ra do không có đối tượng nào được sử dụng trong câu kèo bóng đá pháp thay đổi. Tuy nhiên, nếu một số thay đổi khác buộc phải phân chia lại, bảng mới sẽ được tham chiếu trong các mục đích sử dụng tiếp theo.
Bạn có thể thấy tất cả các câu lệnh đã kèo bóng đá pháp bị có sẵn trong phiên bằng cách truy vấnpg_prepared_statements
Chế độ xem hệ thống.
Tạo câu lệnh đã kèo bóng đá pháp bị cho mộtChèn
Câu kèo bóng đá pháp, sau đó thực hiện nó:
kèo bóng đá pháp bị fooplan (int, văn bản, bool, số) là
Tạo một câu lệnh đã kèo bóng đá pháp bị cho mộtChọn
Câu kèo bóng đá pháp, sau đó thực hiện nó:
kèo bóng đá pháp bị usrrptplan (int)
Trong ví dụ này, loại dữ liệu của tham số thứ hai không được chỉ định, do đó nó được suy ra từ ngữ cảnh trong đó$ 2
được sử dụng.
Tiêu kèo bóng đá pháp SQL bao gồm Akèo bóng đá pháp bị
Tuyên bố, nhưng nó chỉ được sử dụng trong SQL nhúng. Phiên bản này củakèo bóng đá pháp bị
Câu kèo bóng đá pháp cũng sử dụng cú pháp hơi khác.