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 / 7.3 / 7.2 / 7.1
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 một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

50.6. Người cách đọc kèo bóng đá

Thecách đọc kèo bóng đáLấy kế hoạch được tạo bởi người lập kế hoạch/tối ưu hóa và xử lý đệ quy nó để trích xuất tập hợp các hàng yêu cầu. Đây cách đọc kèo bóng đá chất là một cơ chế đường ống kéo theo nhu cầu.

Để cung cấp một ví dụ cụ thể, giả sử rằng nút trên cùng làMergejoinNode. Trước khi bất kỳ sự hợp nhất nào có thể được cách đọc kèo bóng đá hiện, hai hàng phải được tìm nạp (một hàng từ mỗi sơ đồ con).refttree). Nút trên cùng mới (nút trên cùng của sơ đồ con bên trái), giả sử, ASắp xếpNode và một lần nữa đệ quy là cần cách đọc kèo bóng đáết để có được một hàng đầu vào. Nút con củaSắp xếpcó thể là mộtSEQSCANNode, đại diện cho việc đọc thực tế của một bảng. Việc cách đọc kèo bóng đá nút này khiến người cách đọc kèo bóng đá tìm nạp một hàng từ bảng và đưa nó trở lại nút gọi.Sắp xếpNode sẽ liên tục gọi cho con của nó để có được tất cả các cách đọc kèo bóng đá được sắp xếp. Khi đầu vào đã cạn kiệt (như được chỉ định bởi nút con, trả về một null thay vì một cách đọc kèo bóng đá),Sắp xếpMã cách đọc kèo bóng đá hiện sắp xếp và cuối cùng có thể trả về hàng đầu ra đầu tiên của nó, cụ thể là hàng đầu tiên theo thứ tự được sắp xếp. Nó giữ các hàng còn lại được lưu trữ để nó có thể cung cấp chúng theo thứ tự được sắp xếp để đáp ứng các yêu cầu sau này.

TheMergejoinNode tương tự yêu cầu cách đọc kèo bóng đá đầu tiên từ sơ đồ con bên phải của nó. Sau đó, nó so sánh hai cách đọc kèo bóng đá để xem liệu chúng có thể được tham gia hay không;MergejoinNode trả về NULL để cho biết rằng không còn các cách đọc kèo bóng đá tham gia nào có thể được hình thành.

Các truy vấn phức tạp có thể liên quan đến nhiều cấp độ của các nút kế hoạch, nhưng cách tiếp cận chung là như nhau: mỗi nút tính toán và trả về cách đọc kèo bóng đá đầu ra tiếp theo của nó mỗi lần được gọi. Mỗi nút cũng chịu trách nhiệm áp dụng bất kỳ biểu thức lựa chọn hoặc trình chiếu nào được người lập kế hoạch gán cho nó.

Cơ chế cách đọc kèo bóng đá được sử dụng để đánh giá tất cả bốn loại truy vấn SQL cơ bản:Chọn, Chèn, Cập nhậtXóa. VìChọn, Mã cách đọc kèo bóng đá cấp cao nhất chỉ cần gửi từng hàng được trả về bởi cây kế hoạch truy vấn cho máy khách.Chèn ... Chọn, Cập nhậtXóacó hiệu quảChọnS theo nút kế hoạch cấp cao nhất đặc biệt có tên làModifyTable.

Chèn ... ChọnNguồn cung cấp các cách đọc kèo bóng đá lên đếnModifyTableđể chèn. VìCập nhật, người lập kế hoạch sắp xếp rằng mỗi cách đọc kèo bóng đá được tính toán bao gồm tất cả các giá trị cột được cập nhật, cộng vớiTID(id tple hoặc id cách đọc kèo bóng đá) của cách đọc kèo bóng đá mục tiêu ban đầu; Dữ liệu này đã được gia đìnhModifyTableNode, sử dụng thông tin để tạo một cách đọc kèo bóng đá cập nhật mới và đánh dấu cách đọc kèo bóng đá cũ bị xóa. VìXóa, cột duy nhất cách đọc kèo bóng đá sự được trả lại bởi kế hoạch là TID vàModifyTableNode chỉ sử dụng TID để truy cập từng cách đọc kèo bóng đá mục tiêu và đánh dấu nó bị xóa.

Một đơn giảnChèn ... Giá trịLệnh tạo ra một cây kế hoạch tầm thường bao gồm mộtresultNode, chỉ tính toán một cách đọc kèo bóng đá kết quả, cho ăn lên đếnModifyTableĐể cách đọc kèo bóng đá hiện chèn.