tỷ lệ kèo bóng đá
PostgreSQLnghĩ ra AKế hoạch truy vấnĐối với mỗi truy vấn mà nó nhận được. Chọn đúng kế hoạch để phù hợp với cấu trúc truy vấn và tỷ lệ kèo bóng đá thuộc tính của dữ liệu là hoàn toàn quan trọng cho hiệu suất tốt, vì vậy hệ thống bao gồm một phức tạpPlannerĐiều đó cố gắng chọn các kế hoạch tốt. Bạn có thể sử tỷ lệ kèo bóng đáPostgreSQL: TàLệnh để xem kế hoạch truy vấn nào mà người lập kế hoạch tạo cho bất kỳ truy vấn nào. Đọc kế hoạch là một nghệ thuật đòi hỏi một số kinh nghiệm để làm chủ, nhưng phần này cố gắng bao gồm những điều cơ bản.
Ví dụ trong phần này được rút ra từ cơ sở dữ liệu kiểm tra hồi quy sau khi thực hiệnPhân tích chân không
, sử tỷ lệ kèo bóng đá 9.3 Nguồn phát triển. Bạn sẽ có thể nhận được kết quả tương tự nếu bạn tự mình thử các ví dụ, nhưng chi phí ước tính và số lượng hàng của bạn có thể thay đổi một chút vìPhân tích
S thống kê là tỷ lệ kèo bóng đá mẫu ngẫu nhiên chứ không phải chính xác và vì chi phí vốn có phần phụ thuộc vào nền tảng.
Các ví dụ sử tỷ lệ kèo bóng đátỷ lệ kèo bóng đá
'mặc địnhHồiTextĐịnh dạng đầu ra, nhỏ gọn và thuận tiện cho con người đọc. Nếu bạn muốn cho ăntỷ lệ kèo bóng đá
đầu ra của chương trình để phân tích thêm, bạn nên sử tỷ lệ kèo bóng đá một trong các định dạng đầu ra có thể đọc được bằng máy (XML, JSON hoặc YAML) thay thế.
tỷ lệ kèo bóng đá
cơ bảnCấu trúc của kế hoạch truy vấn là một câyKế hoạch tỷ lệ kèo bóng đá nút. tỷ lệ kèo bóng đá nút ở cấp dưới của cây là tỷ lệ kèo bóng đá nút quét: chúng trả lại tỷ lệ kèo bóng đá hàng thô từ một bảng.giá trị
tỷ lệ kèo bóng đá điều khoản và tỷ lệ kèo bóng đá chức năng hoàn trả trongtừ
, có tỷ lệ kèo bóng đá loại nút quét riêng của chúng. Nếu truy vấn yêu cầu tham gia, tập hợp, sắp xếp hoặc tỷ lệ kèo bóng đá hoạt động khác trên tỷ lệ kèo bóng đá hàng thô, thì sẽ có tỷ lệ kèo bóng đá nút bổ sung phía trên tỷ lệ kèo bóng đá nút quét để thực hiện tỷ lệ kèo bóng đá hoạt động này.tỷ lệ kèo bóng đá
Có một dòng cho mỗi nút trong cây kế hoạch, hiển thị loại nút cơ bản cộng với ước tính chi phí mà người lập kế hoạch thực hiện để thực hiện nút kế hoạch đó. tỷ lệ kèo bóng đá dòng bổ sung có thể xuất hiện, được thụt vào từ dòng tóm tắt của nút, để hiển thị tỷ lệ kèo bóng đá thuộc tính bổ sung của nút.
Đây là một ví dụ tầm thường, chỉ để hiển thị đầu ra trông như thế nào:
tỷ lệ kèo bóng đá Chọn * từ TENK1;
Vì truy vấn này không cóWHERE
mệnh đề, nó phải quét tất cả các hàng của bảng, vì vậy người lập kế hoạch đã chọn sử tỷ lệ kèo bóng đá gói quét tuần tự đơn giản. Các số được trích dẫn trong ngoặc đơn (từ trái sang phải):
Chi phí khởi nghiệp ước tính. Đây là thời gian được sử tỷ lệ kèo bóng đá trước khi pha đầu ra có thể bắt đầu, ví dụ: thời gian để thực hiện sắp xếp trong một nút sắp xếp.
Tổng chi phí ước tính. Điều này được nêu trên giả định rằng nút kế hoạch được chạy để hoàn thành, tức là, tất cả tỷ lệ kèo bóng đá hàng có sẵn đều được truy xuất.giới hạn
Ví dụ bên dưới).
Số lượng hàng ước tính đầu ra theo nút kế hoạch này. Một lần nữa, nút được giả định là chạy để hoàn thành.
Độ rộng trung bình ước tính của đầu ra hàng theo nút kế hoạch này (tính bằng byte).
Chi phí được đo bằng tỷ lệ kèo bóng đá đơn vị tùy ý được xác định bởi tỷ lệ kèo bóng đá tham số chi phí của kế hoạch (xemPhần 19.7.2). Thực tiễn truyền thống là để đo lường chi phí trong tỷ lệ kèo bóng đá đơn vị của trang đĩa Fetches;SEQ_PAGE_COSTđược đặt thành thông thường1.0
và tỷ lệ kèo bóng đá tham số chi phí khác được đặt liên quan đến điều đó. tỷ lệ kèo bóng đá ví dụ trong phần này được chạy với tỷ lệ kèo bóng đá tham số chi phí mặc định.
Điều quan trọng là phải hiểu rằng chi phí của một nút cấp trên bao gồm chi phí của tất cả tỷ lệ kèo bóng đá nút con của nó. Điều quan trọng nữa là nhận ra rằng chi phí chỉ phản ánh những điều mà người lập kế hoạch quan tâm.
Thehàng
Giá trị là một chút khó khăn vì nó không phải là số lượng hàng được xử lý hoặc quét bởi nút kế hoạch, mà là số lượng phát ra từ nút. Điều này thường ít hơn số được quét, do kết quả của việc lọc bởi bất kỳWHERE
-Phout điều kiện đang được áp tỷ lệ kèo bóng đá tại nút. Lý tưởng nhất là ước tính các hàng cấp cao nhất sẽ xấp xỉ số lượng hàng thực sự được trả về, cập nhật hoặc bị xóa bởi truy vấn.
Trở về ví dụ của chúng tôi:
tỷ lệ kèo bóng đá Chọn * từ TENK1;
Những con số này có nguồn gốc rất đơn giản. Nếu bạn làm:
16691_16760
Bạn sẽ tìm thấy điều đóTENK1
Có 358 trang đĩa và 10000 hàng. Chi phí ước tính được tính là (tỷ lệ kèo bóng đá trang đĩa đọc *SEQ_PAGE_COST) + (hàng được quét *cpu_tuple_cost). Theo mặc định,SEQ_PAGE_COST
là 1.0 vàcpu_tuple_cost
là 0,01, vì vậy chi phí ước tính là (358 * 1.0) + (10000 * 0,01) = 458.
Bây giờ hãy sửa đổi truy vấn để thêmWHERE
điều kiện:
tỷ lệ kèo bóng đá Chọn * từ Tenk1 trong đó độc đáo1 <7000;
Lưu ý rằngtỷ lệ kèo bóng đá
đầu ra hiển thịWHERE
mệnh đề được áp tỷ lệ kèo bóng đá dưới dạngFilterĐiều kiện được gắn vào nút Kế hoạch quét SEQ. Điều này có nghĩa là nút kế hoạch kiểm tra điều kiện cho mỗi hàng mà nó quét và chỉ xuất ra tỷ lệ kèo bóng đá nút vượt qua điều kiện.WHERE
mệnh đề. Tuy nhiên, quét vẫn sẽ phải truy cập tất cả 10000 hàng, vì vậy chi phí chưa giảm;CPU_OPERATOR_COST, Để chính xác) để phản ánh thời gian CPU thêm dành cho việc kiểm traở đâu
điều kiện.
Số lượng hàng thực tế mà truy vấn này sẽ chọn là 7000, nhưnghàng
Ước tính chỉ gần đúng. Nếu bạn cố gắng sao chép thí nghiệm này, có lẽ bạn sẽ nhận được một ước tính hơi khác;Phân tích
lệnh, vì tỷ lệ kèo bóng đá số liệu thống kê được tạo bởiPhân tích
được lấy từ một mẫu ngẫu nhiên của bảng.
Bây giờ, hãy làm cho điều kiện hạn chế hơn:
tỷ lệ kèo bóng đá Chọn * từ Tenk1 trong đó độc đáo1 <100;
Ở đây người lập kế hoạch đã quyết định sử tỷ lệ kèo bóng đá kế hoạch hai bước: nút Kế hoạch con truy cập một chỉ mục để tìm vị trí của các hàng phù hợp với điều kiện chỉ mục, và sau đó nút kế hoạch trên thực sự lấy các hàng đó từ bảng. Lấy các hàng riêng biệt đắt hơn nhiều so với việc đọc chúng theo tuần tự, nhưng vì không phải tất cả các trang của bảng phải được truy cập, điều này vẫn rẻ hơn so với quét tuần tự.HồiBitmapxôngĐược đề cập trong tên nút là cơ chế sắp xếp.)
Bây giờ hãy thêm một điều kiện khác vàoWHERE
mệnh đề:
tỷ lệ kèo bóng đá Chọn * từ TENK1 trong đó độc đáo1 <100 và StringU1 = 'xxx';
Điều kiện được thêm vàoStringU1 = 'xxx'
Giảm ước tính số lượng hàng đầu ra, nhưng không phải là chi phí vì chúng tôi vẫn phải truy cập cùng một bộ hàng. Lưu ý rằngStringU1
mệnh đề không thể được áp tỷ lệ kèo bóng đá làm điều kiện chỉ mục, vì chỉ mục này chỉ nằm trênđộc đáo1
Cột. Thay vào đó, nó được áp tỷ lệ kèo bóng đá như một bộ lọc trên các hàng được lấy bởi chỉ mục.
Trong một số trường hợp, người lập kế hoạch sẽ thíchđơn giảnKế hoạch quét chỉ mục:
tỷ lệ kèo bóng đá Chọn * từ Tenk1 trong đó độc đáo1 = 42;
Trong loại kế hoạch này, tỷ lệ kèo bóng đá hàng bảng được tìm nạp theo thứ tự chỉ mục, điều này khiến chúng còn đắt hơn để đọc, nhưng có rất ít chi phí để sắp xếp tỷ lệ kèo bóng đá vị trí hàng không đáng giá. Bạn thường thấy loại kế hoạch này cho tỷ lệ kèo bóng đá truy vấn chỉ lấy một hàng.Đặt hàng bởi
Điều kiện phù hợp với thứ tự chỉ mục, vì sau đó không cần bước sắp xếp bổ sung để đáp ứngĐặt hàng bởi
. Trong ví dụ này, thêmĐặt hàng bởi UNICE1
Sẽ sử tỷ lệ kèo bóng đá cùng một kế hoạch vì chỉ mục đã ngầm cung cấp đơn đặt hàng được yêu cầu.
Người lập kế hoạch có thể thực hiệnĐặt hàng bởi
mệnh đề theo nhiều cách. Ví dụ trên cho thấy một điều khoản đặt hàng như vậy có thể được thực hiện ngầm.Sắp xếp
BƯỚC:
tỷ lệ kèo bóng đá Chọn * từ đơn đặt hàng TENK1 của UNICE1;
Nếu một phần của kế hoạch đảm bảo đặt hàng trên một tiền tố của các khóa sắp xếp bắt buộc, thì người lập kế hoạch có thể quyết định sử tỷ lệ kèo bóng đáSắp xếp gia tăng
BƯỚC:
tỷ lệ kèo bóng đá Chọn * từ thứ tự TENK1 bằng bốn, mười giới hạn 100;
So với tỷ lệ kèo bóng đá loại thông thường, việc sắp xếp tăng dần cho phép trả về tỷ lệ kèo bóng đá bộ dữ liệu trước khi toàn bộ tập kết quả được sắp xếp, đặc biệt cho phép tối ưu hóa vớiGiới hạn
Truy vấn. Nó cũng có thể làm giảm việc sử tỷ lệ kèo bóng đá bộ nhớ và khả năng làm đổ các loại vào đĩa, nhưng nó có chi phí tăng chi phí tăng của kết quả được đặt thành nhiều lô sắp xếp.
Nếu có tỷ lệ kèo bóng đá chỉ mục riêng biệt trên một số cột được tham chiếu trongWHERE
, Người lập kế hoạch có thể chọn sử tỷ lệ kèo bóng đá và hoặc hoặc kết hợp các chỉ mục:
tỷ lệ kèo bóng đá Chọn * từ TENK1 trong đó độc đáo1 <100 và duy nhất2 9000;
Nhưng điều này đòi hỏi phải truy cập cả hai chỉ mục, do đó, nó không nhất thiết phải là một chiến thắng so với chỉ sử tỷ lệ kèo bóng đá một chỉ mục và coi điều kiện khác như một bộ lọc. Nếu bạn thay đổi các phạm vi liên quan, bạn sẽ thấy kế hoạch thay đổi tương ứng.
Đây là một ví dụ hiển thị tỷ lệ kèo bóng đá hiệu ứng củagiới hạn
:
tỷ lệ kèo bóng đá Chọn * từ TENK1 trong đó độc đáo1 <100 và độc đáo2 9000 giới hạn 2;
Đây là cùng một truy vấn như trên, nhưng chúng tôi đã thêm Agiới hạn
để không phải tất cả tỷ lệ kèo bóng đá hàng cần được truy xuất và người lập kế hoạch đã thay đổi suy nghĩ về những việc cần làm. Lưu ý rằng tổng chi phí và số lượng hàng của nút quét chỉ mục được hiển thị như thể nó đã được chạy để hoàn thành.
Hãy thử tham gia hai bảng, sử tỷ lệ kèo bóng đá các cột chúng tôi đã thảo luận:
tỷ lệ kèo bóng đá Chọn *
Trong kế hoạch này, chúng tôi có nút nối vòng lặp lồng nhau với hai lần quét bảng làm đầu vào hoặc trẻ em. Sự thụt của tỷ lệ kèo bóng đá dòng tóm tắt nút phản ánh cấu trúc cây kế hoạch.HồiButer, con là một bản quét bitmap tương tự như những gì chúng ta đã thấy trước đây. Chi phí và số lượng hàng của nó giống như chúng ta nhận được từChọn ... trong đó độc đáo1 <10
Bởi vì chúng tôi đang áp tỷ lệ kèo bóng đáWHERE
mệnh đềđộc đáo1 <10
Tại nút đó. Thet1.Unique2 = t2.unique2
mệnh đề chưa liên quan, vì vậy nó không ảnh hưởng đến số lượng hàng của quét bên ngoài. Nút nối vòng lặp lồng nhau sẽ chạy thứ hai hoặcHồibên trongHồiĐứa trẻ một lần cho mỗi hàng thu được từ đứa trẻ bên ngoài. tỷ lệ kèo bóng đá giá trị cột từ hàng bên ngoài hiện tại có thể được cắm vào quét bên trong;T1.Unique2
Giá trị từ hàng bên ngoài có sẵn, vì vậy chúng tôi nhận được một kế hoạch và chi phí tương tự như những gì chúng tôi đã thấy ở trên cho một đơn giảnChọn ... trong đó t2.unique2 =
trường hợp. (Chi phí ước tính thực sự thấp hơn một chút so với những gì đã thấy ở trên, do kết quả của bộ nhớ đệm dự kiến sẽ xảy ra trong quá trình quét chỉ số lặp đi lặp lại trênhằng số
T2
)
Trong ví dụ này, số lượng hàng đầu ra của tham gia giống như sản phẩm của hai lần quét của hai lần quét, nhưng điều đó không đúng trong mọi trường hợp vì có thể có thêmWHERE
Các điều khoản đề cập đến cả hai bảng và do đó chỉ có thể được áp tỷ lệ kèo bóng đá tại điểm nối, không phải để quét đầu vào. Đây là một ví dụ:
tỷ lệ kèo bóng đá Chọn *
Điều kiệnt1.hundred <t2.hundred
Không thể kiểm tra trongtenk2_unique2
INDEX, vì vậy nó được áp tỷ lệ kèo bóng đá tại nút nối. Điều này làm giảm số lượng hàng đầu ra ước tính của nút nối, nhưng không thay đổi quét đầu vào.
Lưu ý rằng ở đây người lập kế hoạch đã chọn đểVật chất hóaHồiMối quan hệ bên trong của sự tham gia, bằng cách đặt một nút kế hoạch vật chất hóa trên nó. Điều này có nghĩa làT2
SCAN INDEX sẽ được thực hiện chỉ một lần, mặc dù nút nối vòng lặp lồng nhau cần đọc dữ liệu đó mười lần, một lần cho mỗi hàng từ quan hệ bên ngoài. Nút vật chất sẽ lưu dữ liệu trong bộ nhớ khi đọc và sau đó trả về dữ liệu từ bộ nhớ trên mỗi lần truyền tiếp theo.
Khi giao dịch với tỷ lệ kèo bóng đá kết nối bên ngoài, bạn có thể thấy tỷ lệ kèo bóng đá nút kế hoạch tham gia với cả haiTham gia bộ lọcHồivà PlainHồiFilterHồiĐiều kiện đính kèm. Tham gia tỷ lệ kèo bóng đá điều kiện bộ lọc đến từ bên ngoài tham giatrên
mệnh đề, do đó, một hàng không thành công điều kiện bộ lọc nối vẫn có thể được phát ra dưới dạng hàng null. Nhưng một điều kiện bộ lọc đơn giản được áp tỷ lệ kèo bóng đá sau các quy tắc tham gia bên ngoài và do đó có tác tỷ lệ kèo bóng đá loại bỏ các hàng vô điều kiện.
Nếu chúng ta thay đổi tính chọn lọc của truy vấn một chút, chúng ta có thể nhận được một kế hoạch tham gia rất khác:
tỷ lệ kèo bóng đá Chọn *
Ở đây, người lập kế hoạch đã chọn sử tỷ lệ kèo bóng đá tham gia băm, trong đó các hàng của một bảng được nhập vào bảng băm trong bộ nhớ, sau đó bảng khác được quét và bảng băm được thử nghiệm cho các trận đấu với mỗi hàng. Một lần nữa lưu ý cách thụt đầu tư phản ánh cấu trúc kế hoạch: quét bitmap trênTENK1
là đầu vào cho nút băm, xây dựng bảng băm. Sau đó, được trả lại cho nút nối băm, đọc tỷ lệ kèo bóng đá hàng từ gói con bên ngoài của nó và tìm kiếm bảng băm cho mỗi cái.
Một loại tham gia khác có thể là tham gia hợp nhất, được minh họa ở đây:
tỷ lệ kèo bóng đá Chọn *
Hợp nhất tham gia yêu cầu dữ liệu đầu vào của nó được sắp xếp trên tỷ lệ kèo bóng đá phím tham gia. Trong kế hoạch nàyTENK1
Dữ liệu được sắp xếp bằng cách sử tỷ lệ kèo bóng đá quét chỉ mục để truy cập các hàng theo đúng thứ tự, nhưng quét và sắp xếp tuần tự được ưa thích choOnek
, bởi vì có nhiều hàng khác được truy cập trong bảng đó. .
34112_34275Phần 19.7.1. (Đây là một công cụ thô, nhưng hữu ích. Xem thêmPhần 14.3.) Ví dụ, nếu chúng ta không bị thuyết phục rằng quét liên tiếp là cách tốt nhất để đối phó với bảngOnek
Trong ví dụ trước, chúng ta có thể thử
Đặt enable_sort = off;
trong đó cho thấy người lập kế hoạch nghĩ rằng sắp xếpOnek
bằng cách quét chỉ số đắt hơn khoảng 12% so với quét liên tiếp. Tất nhiên, câu hỏi tiếp theo là liệu nó có đúng về điều đó không.tỷ lệ kèo bóng đá Phân tích
, như được thảo luận dưới đây.
tỷ lệ kèo bóng đá Phân tích
Có thể kiểm tra độ chính xác của ước tính của người lập kế hoạch bằng cách sử tỷ lệ kèo bóng đátỷ lệ kèo bóng đá
'sPhân tích
Tùy chọn. Với tùy chọn này,tỷ lệ kèo bóng đá
36179_36345tỷ lệ kèo bóng đá
Hiển thị. Ví dụ: chúng ta có thể nhận được kết quả như thế này:
tỷ lệ kèo bóng đá Phân tích Chọn *
Lưu ý rằngThời gian thực tếHồiGiá trị ở mili giây của thời gian thực, trong khichi phí
Ước tính được thể hiện bằng tỷ lệ kèo bóng đá đơn vị tùy ý; Vì vậy, họ không có khả năng phù hợp.
Trong một số gói truy vấn, có thể thực hiện một nút con được thực thi nhiều lần. Ví dụ: quét chỉ mục bên trong sẽ được thực hiện một lần trên mỗi hàng bên ngoài trong kế hoạch vòng lặp lồng trên.vòng lặp
Giá trị báo cáo tổng số thực thi của nút và tỷ lệ kèo bóng đá giá trị thời gian và hàng thực được hiển thị là trung bình trên mỗi lần thực hiện. Điều này được thực hiện để làm cho tỷ lệ kèo bóng đá con số tương đương với cách mà ước tính chi phí được hiển thị.vòng lặp
Giá trị để có được tổng thời gian thực sự được sử tỷ lệ kèo bóng đá trong nút. Trong ví dụ trên, chúng tôi đã chi tổng cộng 0,220 mili giây để thực hiện các lần quét chỉ mục trênTENK2
.
Trong một số trường hợptỷ lệ kèo bóng đá Phân tích
Hiển thị số liệu thống kê thực thi bổ sung ngoài thời gian thực hiện nút kế hoạch và số lượng hàng. Ví dụ: tỷ lệ kèo bóng đá nút sắp xếp và băm cung cấp thêm thông tin:
tỷ lệ kèo bóng đá Phân tích Chọn *
Nút sắp xếp hiển thị phương thức sắp xếp được sử tỷ lệ kèo bóng đá (đặc biệt, cho dù sắp xếp là trong bộ nhớ hay trên đĩa) và lượng bộ nhớ hoặc không gian đĩa cần thiết. Nút băm hiển thị số lượng thùng băm và lô cũng như lượng bộ nhớ cực đại được sử tỷ lệ kèo bóng đá cho bảng băm.
Một loại thông tin bổ sung khác là số lượng hàng bị xóa bởi điều kiện bộ lọc:
tỷ lệ kèo bóng đá Phân tích Chọn * từ Tenk1 trong đó mười <7;
Các số này có thể đặc biệt có giá trị cho các điều kiện lọc được áp tỷ lệ kèo bóng đá tại các nút nối. TheHàng bị xóaKhăndòng chỉ xuất hiện khi ít nhất một hàng được quét hoặc cặp tham gia tiềm năng trong trường hợp của nút nối, bị từ chối bởi điều kiện bộ lọc.
Một trường hợp tương tự như điều kiện bộ lọc xảy ra vớiMấtKhănQuét chỉ mục. Ví dụ: hãy xem xét tìm kiếm này cho tỷ lệ kèo bóng đá đa giác chứa một điểm cụ thể:
tỷ lệ kèo bóng đá Phân tích Chọn * từ polygon_tbl trong đó f1 @ polygon '(0,5,2,0)';
Người lập kế hoạch nghĩ (khá chính xác) rằng bảng mẫu này quá nhỏ để làm phiền với việc quét chỉ mục, vì vậy chúng tôi có một lần quét tuần tự đơn giản trong đó tất cả tỷ lệ kèo bóng đá hàng bị từ chối bởi điều kiện lọc. Nhưng nếu chúng ta buộc phải quét chỉ mục, chúng ta sẽ thấy:
Đặt enable_seqscan TẮT;
Ở đây chúng ta có thể thấy rằng chỉ mục đã trả lại một hàng ứng cử viên, sau đó bị từ chối bởi một điều kiện kiểm tra lại điều kiện chỉ mục. Điều này xảy ra bởi vì một chỉ mục ý chính làMấtKhănĐối với tỷ lệ kèo bóng đá bài kiểm tra ngăn chặn đa giác: Nó thực sự trả về tỷ lệ kèo bóng đá hàng với tỷ lệ kèo bóng đá đa giác chồng lên mục tiêu, và sau đó chúng ta phải thực hiện kiểm tra ngăn chặn chính xác trên tỷ lệ kèo bóng đá hàng đó.
tỷ lệ kèo bóng đá
có Abộ đệm
Tùy chọn có thể được sử tỷ lệ kèo bóng đá vớiPhân tích
Để có thêm số liệu thống kê thời gian chạy hơn:
tỷ lệ kèo bóng đá (phân tích, bộ đệm) Chọn * từ TENK1 trong đó độc đáo1 <100 và độc đáo2 9000;
tỷ lệ kèo bóng đá số được cung cấp bởibộ đệm
Giúp xác định phần nào của truy vấn là I/O-Tính mạnh nhất.
Hãy nhớ rằng vìtỷ lệ kèo bóng đá Phân tích
Thực tế chạy truy vấn, bất kỳ tác tỷ lệ kèo bóng đá phụ nào cũng sẽ xảy ra như bình thường, mặc dù bất kỳ kết quả nào mà truy vấn có thể xuất hiện đều được loại bỏ để intỷ lệ kèo bóng đá
Dữ liệu. Nếu bạn muốn phân tích truy vấn biến đổi dữ liệu mà không cần thay đổi bảng, bạn có thể cuộn lệnh lại sau đó, ví dụ:
Bắt đầu;
Như đã thấy trong ví dụ này, khi truy vấn làChèn
, Cập nhật
hoặcXóa
Lệnh, công việc thực tế của việc áp tỷ lệ kèo bóng đá các thay đổi bảng được thực hiện bằng một nút chèn, cập nhật hoặc xóa cấp độ cao nhất. Các nút kế hoạch bên dưới nút này thực hiện công việc định vị các hàng cũ và/hoặc tính toán dữ liệu mới.
KhiCập nhật
hoặcXóa
Lệnh ảnh hưởng đến hệ thống phân cấp kế thừa, đầu ra có thể trông như thế này:
tỷ lệ kèo bóng đá Cập nhật bộ cha mẹ F2 = F2 + 1 trong đó F1 = 101;
Trong ví dụ này, nút cập nhật cần xem xét ba bảng con cũng như bảng cha mẹ được đề cập ban đầu. Vì vậy, có bốn phân nhóm quét đầu vào, một trên mỗi bảng.PostgreSQL9.5; Trong tỷ lệ kèo bóng đá phiên bản trước, người đọc phải trực quan tỷ lệ kèo bóng đá bảng mục tiêu bằng cách kiểm tra tỷ lệ kèo bóng đá sơ đồ con.)
TheThời gian lập kế hoạch
Hiển thị bởitỷ lệ kèo bóng đá Phân tích
là thời gian cần thiết để tạo kế hoạch truy vấn từ truy vấn được phân tích cú pháp và tối ưu hóa nó. Nó không bao gồm phân tích cú pháp hoặc viết lại.
TheThời gian thực hiện
hiển thị bởitỷ lệ kèo bóng đá Phân tích
Bao gồm thời gian khởi động và tắt máy thực thi, cũng như thời gian để chạy bất kỳ yếu tố kích hoạt nào được bắn, nhưng nó không bao gồm phân tích cú pháp, viết lại hoặc lập kế hoạch thời gian. Thời gian dành để thực hiệntrước
Trình kích hoạt, nếu có, được bao gồm trong thời gian để chèn, cập nhật hoặc xóa nút liên quan; Nhưng thời gian dành cho việc thực hiệnsau
Triggers không được tính ở đó vìsau
Kích hoạt được bắn sau khi hoàn thành toàn bộ kế hoạch. Tổng thời gian dành cho mỗi lần kích hoạt (trước
hoặcsau
) cũng được hiển thị riêng. Lưu ý rằng tỷ lệ kèo bóng đá kích hoạt ràng buộc hoãn lại sẽ không được thực thi cho đến khi kết thúc giao dịch và do đó không được xem xét bởitỷ lệ kèo bóng đá Phân tích
.
Có hai cách quan trọng trong đó thời gian chạy được đo bằngtỷ lệ kèo bóng đá Phân tích
có thể đi chệch khỏi việc thực hiện bình thường của cùng một truy vấn. Đầu tiên, vì không có hàng đầu ra nào được cung cấp cho máy khách, chi phí truyền mạng và chi phí chuyển đổi I/O không được bao gồm.tỷ lệ kèo bóng đá Phân tích
có thể có ý nghĩa, đặc biệt là trên tỷ lệ kèo bóng đá máy có chậmgetTimeOfday ()
Cuộc gọi hệ điều hành. Bạn có thể sử tỷ lệ kèo bóng đáPostgreSQL: TàiCông cụ để đo chi phí thời gian trên hệ thống của bạn.
tỷ lệ kèo bóng đá
Kết quả không nên được ngoại suy đến các tình huống khác nhiều so với trường hợp bạn thực sự đang thử nghiệm; Ví dụ, kết quả trên một bàn có kích thước đồ chơi không thể được giả định để áp tỷ lệ kèo bóng đá cho các bảng lớn.polygon_tbl
Ví dụ ở trên.)
Có những trường hợp trong đó tỷ lệ kèo bóng đá giá trị thực tế và ước tính sẽ không phù hợp tốt, nhưng không có gì thực sự sai. Một trường hợp như vậy xảy ra khi thực hiện nút kế hoạch bị dừng ngắn bởigiới hạn
hoặc hiệu ứng tương tự. Ví dụ, trongGiới hạn
Truy vấn chúng tôi đã sử tỷ lệ kèo bóng đá trước đó,
tỷ lệ kèo bóng đá Phân tích Chọn * từ TENK1 trong đó độc đáo1 <100 và độc đáo2 9000 giới hạn 2;
Chi phí ước tính và số lượng hàng cho nút quét chỉ mục được hiển thị như thể nó đã được chạy để hoàn thành. Nhưng trong thực tế, nút giới hạn đã ngừng yêu cầu hàng sau khi có hai, vì vậy số lượng hàng thực tế chỉ là 2 và thời gian chạy ít hơn ước tính chi phí sẽ đề xuất.
Merge tham gia cũng có tỷ lệ kèo bóng đá tạo tác đo lường có thể gây nhầm lẫn cho sự bất đắc dĩ. Tham gia hợp nhất sẽ ngừng đọc một đầu vào nếu nó cạn kiệt đầu vào khác và giá trị khóa tiếp theo trong đầu vào lớn hơn giá trị khóa cuối cùng của đầu vào khác;giới hạn
. Ngoài ra, nếu con bên ngoài (thứ nhất) chứa tỷ lệ kèo bóng đá hàng có giá trị khóa trùng lặp, thì con bên trong (thứ hai) được sao lưu và giải cứu cho phần của tỷ lệ kèo bóng đá hàng phù hợp với giá trị khóa đó.tỷ lệ kèo bóng đá Phân tích
đếm tỷ lệ kèo bóng đá phát thải lặp đi lặp lại này có cùng tỷ lệ kèo bóng đá hàng bên trong như thể chúng là tỷ lệ kèo bóng đá hàng bổ sung thực sự. Khi có nhiều bản sao bên ngoài, số lượng hàng thực tế được báo cáo cho nút Kế hoạch con bên trong có thể lớn hơn đáng kể so với số lượng hàng thực sự trong mối quan hệ bên trong.
tỷ lệ kèo bóng đá nút bitmapand và bitmapor luôn báo cáo số lượng hàng thực của chúng là số không, do giới hạn thực hiện.
Thông thường,tỷ lệ kèo bóng đá
Sẽ hiển thị mọi nút kế hoạch được tạo bởi người lập kế hoạch. Tuy nhiên, có những trường hợp người thực thi có thể xác định rằng một số nút nhất định không cần phải được thực thi vì chúng không thể tạo ra bất kỳ hàng nào, dựa trên tỷ lệ kèo bóng đá giá trị tham số không có sẵn tại thời điểm lập kế hoạch.tỷ lệ kèo bóng đá
đầu ra và ASubplans bị xóa:
Chú thích xuất hiện thay thế.n
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ớpMẫu nàyĐể báo cáo vấn đề tài liệu.