Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển: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

14.1.Sử kèo bóng đá eurokèo bóng đá euro #

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à kèo bóng đá euro 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Đó là cố gắng chọn các kế hoạch tốt. Bạn có thể sử kèo bóng đá eurokèo bóng đá euroLệ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à kèo bóng đá euro nghệ thuật đòi hỏi kèo bóng đá euro 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ử kèo bóng đá euro các nguồn phát triển V17. 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íchThống kê là kèo bóng đá euro mẫu ngẫu nhiên chứ không phải chính xác và vì chi phí vốn đã phụ thuộc vào nền tảng.

Các ví dụ sử kèo bóng đá eurokèo bóng đá euro'mặc địnhTextKhănĐị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 ănkèo bóng đá eurođầu ra của chương trình để phân tích thêm, bạn nên sử kèo bóng đá euro một trong các định dạng đầu ra có thể đọc được bằng máy của nó (XML, JSON hoặc YAML) thay thế.

14.1.1.kèo bóng đá euroKhái niệm cơ bản#

Cấu trúc của kế hoạch truy vấn là kèo bóng đá euro câyKế hoạch kèo bóng đá euro nút. kèo bóng đá euro nút ở cấp dưới của cây là kèo bóng đá euro nút quét: chúng trả lại kèo bóng đá euro hàng thô từ một bảng.Giá trịkèo bóng đá euro mệnh đề và kèo bóng đá euro chức năng hoàn trả trongtừ, có kèo bóng đá euro 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 kèo bóng đá euro hoạt động khác trên kèo bóng đá euro hàng thô, thì sẽ có kèo bóng đá euro nút bổ sung phía trên kèo bóng đá euro nút quét để thực hiện kèo bóng đá euro hoạt động này.kèo bóng đá euroCó 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 đó. kèo bóng đá euro 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ị kèo bóng đá euro thuộc tính bổ sung của nút.

Đây là kèo bóng đá euro ví dụ tầm thường, chỉ để hiển thị đầu ra trông như thế nào:

kèo bóng đá euro chọn * từ Tenk1;

Vì truy vấn này không cóWHEREmệ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ử kèo bóng đá euro 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ử kèo bóng đá euro 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ả kèo bóng đá euro hàng có sẵn đều được truy xuất.Giới hạnVí dụ bên dưới).

  • Số lượng hàng ước tính đầu ra theo nút kế hoạch này. kèo bóng đá euro 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 kèo bóng đá euro theo nút kế hoạch này (tính bằng byte).

Chi phí được đo bằng kèo bóng đá euro đơn vị tùy ý được xác định bởi kèo bóng đá euro 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 kèo bóng đá euro đơn vị của trang đĩa Fetches;SEQ_PAGE_COSTđược đặt thành thông thường1.0và kèo bóng đá euro tham số chi phí khác được đặt liên quan đến điều đó. kèo bóng đá euro ví dụ trong phần này được chạy với kèo bóng đá euro 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ả kèo bóng đá euro 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.

Thekèo bóng đá euroGiá trị là kèo bóng đá euro 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ố 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-Chông điều kiện đang được áp kèo bóng đá euro 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:

kèo bóng đá euro 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:

16504_16573

Bạn sẽ tìm thấy điều đóTENK116640_16731SEQ_PAGE_COST) + (kèo bóng đá euro được quét *cpu_tuple_cost). Theo mặc định,SEQ_PAGE_COSTlà 1.0 vàcpu_tuple_costlà 0,01, vì vậy chi phí ước tính là (345 * 1.0) + (10000 * 0,01) = 445.

Bây giờ hãy sửa đổi truy vấn để thêmWHEREđiều kiện:

kèo bóng đá euro Chọn * từ Tenk1 trong đó độc đáo1 <7000;

Lưu ý rằngkèo bóng đá euroĐầu ra hiển thịWHEREmệnh đề được áp kèo bóng đá euro dưới dạngFilterHồiĐ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 kèo bóng đá euro nút vượt qua điều kiện.WHEREmệnh đề. Tuy nhiên, quét vẫn sẽ phải truy cập tất cả 10000 kèo bóng đá euro, 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 traWHEREđiều kiện.

Số lượng kèo bóng đá euro thực tế mà truy vấn này sẽ chọn là 7000, nhưngkèo bóng đá euroƯớc tính chỉ gần đúng. Nếu bạn cố gắng sao chép thí nghiệm này, bạn cũng có thể nhận được kèo bóng đá euro ước tính hơi khác;Phân tíchlệnh, vì kèo bóng đá euro số liệu thống kê được tạo bởiPhân tíchđược lấy từ kèo bóng đá euro 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:

kèo bóng đá euro Chọn * từ Tenk1 trong đó độc đáo1 <100;

Ở đây người lập kế hoạch đã quyết định sử kèo bóng đá euro 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ự tìm thấ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ồiBitmapHồiđược đề cập trong tên nút là cơ chế sắp xếp.)

Bây giờ hãy thêm kèo bóng đá euro điều kiện khác vàoWHEREmệnh đề:

kèo bóng đá euro 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 kèo bóng đá euro bộ hàng. Đó là bởi vìStringU1mệnh đề không thể được áp kèo bóng đá euro làm điều kiện chỉ mục, vì chỉ mục này chỉ nằm trênđộc đáo1Cột. Thay vào đó, nó được áp kèo bóng đá euro như một bộ lọc trên các hàng được truy xuất bằng chỉ mục.

Trong kèo bóng đá euro 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:

kèo bóng đá euro Chọn * từ Tenk1 trong đó độc đáo1 = 42;

Trong loại kế hoạch này, kèo bóng đá euro 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 kèo bóng đá euro vị trí hàng không đáng giá. Bạn thường thấy loại kế hoạch này cho kèo bóng đá euro truy vấn chỉ lấy một hàng.Đặt kèo bóng đá euro 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 kèo bóng đá euro bởi. Trong ví dụ này, thêmĐặt kèo bóng đá euro bởi UNICE1Sẽ sử kèo bóng đá euro cùng một kế hoạch vì chỉ mục đã ngầm cung cấp đặt hàng được yêu cầu.

Người lập kế hoạch có thể thực hiệnĐặt kèo bóng đá euro bởimệnh đề theo nhiều cách. Ví dụ trên cho thấy kèo bóng đá euro điều khoản đặt hàng như vậy có thể được thực hiện ngầm.Sắp xếpBƯỚC:

kèo bóng đá euro Chọn * từ đơn đặt hàng TENK1 của Unique1;

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 thay vào đó có thể quyết định sử kèo bóng đá euroSắp xếp gia tăngBƯỚC:

kèo bóng đá euro Chọn * từ thứ tự TENK1 theo trăm, mười giới hạn 100;

So với kèo bóng đá euro loại thông thường, việc sắp xếp tăng dần cho phép trả về kèo bóng đá euro 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ạnTruy vấn. Nó cũng có thể làm giảm việc sử kèo bóng đá euro 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ó kèo bóng đá euro 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ử kèo bóng đá euro và hoặc hoặc kết hợp các chỉ mục:

kèo bóng đá euro Chọn * từ TENK1 trong đó duy nhất1 <100 và duy nhất2 9000;

Nhưng điều này yêu cầu 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ử kèo bóng đá euro 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ị kèo bóng đá euro hiệu ứng củagiới hạn:

kèo bóng đá euro Chọn * từ TENK1 trong đó duy nhất1 <100 và độc đáo2 9000 giới hạn 2;

Đây là cùng kèo bóng đá euro 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ả kèo bóng đá euro 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ử kèo bóng đá euro các cột chúng tôi đã thảo luận:

kèo bóng đá euro 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 kèo bóng đá euro dòng tóm tắt nút phản ánh cấu trúc cây kế hoạch.ButerHồi, con là kèo bóng đá euro 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 <10Bởi vì chúng tôi đang áp kèo bóng đá euroWHERE27546_27556độc đáo1 <10Tại nút đó. Thet1.Unique2 = t2.unique2mệnh đề chưa liên quan, vì vậy nó không ảnh hưởng đến số lượng kèo bóng đá euro 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ặcVangbên trongHồiTrẻ em một lần cho mỗi hàng thu được từ đứa trẻ bên ngoài. kèo bóng đá euro 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.Unique2Giá trị từ hàng bên ngoài có sẵn, vì vậy chúng tôi nhận được kèo bóng đá euro kế hoạch và chi phí tương tự như những gì chúng tôi đã thấy ở trên cho kèo bóng đá euro đơn giảnChọn ... WHERE t2.unique2 =hằng sốtrường hợp. (Chi phí ước tính thực sự thấp hơn kèo bóng đá euro 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ênT2.) Chi phí của nút vòng sau đó được đặt trên cơ sở chi phí của quét bên ngoài, cộng với kèo bóng đá euro lần lặp lại của quét bên trong cho mỗi hàng outer (10 * 7.90, ở đây), cộng với thời gian CPU nhỏ để xử lý tham gia.

Trong ví dụ này, số lượng kèo bóng đá euro đầu ra của tham gia giống như sản phẩm 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êmWHERECác điều khoản đề cập đến cả hai bảng và do đó chỉ có thể được áp kèo bóng đá euro tại điểm nối, không phải để quét đầu vào. Đây là một ví dụ:

kèo bóng đá euro Chọn *

Điều kiệnt1.hundred <t2.hundredKhông thể kiểm tra trongtenk2_unique2INDEX, vì vậy nó được áp kèo bóng đá euro 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 đểMật vậtHồiMối quan hệ bên trong của tham gia, bằng cách đặt kèo bóng đá euro nút kế hoạch vật chất hóa trên nó. Điều này có nghĩa làT2SCAN INDEX sẽ được thực hiện chỉ kèo bóng đá euro 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, kèo bóng đá euro 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 kèo bóng đá euro kết nối bên ngoài, bạn có thể thấy kèo bóng đá euro nút kế hoạch tham gia với cả haiTham gia bộ lọcvà PlainFilterĐiều kiện đính kèm. Tham gia kèo bóng đá euro điều kiện bộ lọc đến từ bên ngoài tham giatrênmệnh đề, do đó, một hàng không thành công điều kiện bộ lọc tham gia 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 kèo bóng đá euro sau các quy tắc tham gia bên ngoài và do đó có tác kèo bóng đá euro 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 kèo bóng đá euro chút, chúng ta có thể nhận được kèo bóng đá euro kế hoạch tham gia rất khác:

kèo bóng đá euro Chọn *

Ở đây, người lập kế hoạch đã chọn sử kèo bóng đá euro 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ênTENK1là đầ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 kèo bóng đá euro 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.

kèo bóng đá euro loại tham gia khác có thể là tham gia hợp nhất, được minh họa ở đây:

kèo bóng đá euro Chọn *

Merge tham gia yêu cầu dữ liệu đầu vào của nó được sắp xếp trên các phím tham gia. Trong ví dụ này, mỗi đầu vào được sắp xếp bằng cách sử kèo bóng đá euro quét chỉ mục để truy cập các hàng theo đúng thứ tự;

33723_33886Phần 19.7.1. (Đây là kèo bóng đá euro công cụ thô, nhưng hữu ích. Xem thêmPhần 14.334214_34329

Đặt enable_mergejoin = off;

cho thấy người lập kế hoạch nghĩ rằng băm tham gia sẽ đắt hơn gần 50% so với hợp nhất tham gia cho trường hợp này. Tất nhiên, câu hỏi tiếp theo là liệu nó có đúng về điều đó không.kèo bóng đá euro Phân tích, Như đã thảo luậnbên dưới.

kèo bóng đá euro số kế hoạch truy vấn liên quanSubplans, phát sinh từ phụ-Chọns trong truy vấn ban đầu. kèo bóng đá euro truy vấn như vậy đôi khi có thể được chuyển đổi thành kèo bóng đá euro kế hoạch tham gia thông thường, nhưng khi chúng không thể, chúng tôi sẽ nhận được kèo bóng đá euro kế hoạch như:

kèo bóng đá euro Verbose Chọn độc đáo1

Ví dụ khá nhân tạo này phục vụ để minh họa một vài điểm: kèo bóng đá euro giá trị từ cấp kế hoạch bên ngoài có thể được chuyển thành một kế hoạch con (ở đây,T.Fourđược truyền lại) và kết quả của phần chọn phụ có sẵn cho kế hoạch bên ngoài. kèo bóng đá euro giá trị kết quả đó được hiển thị bởikèo bóng đá eurovới kèo bóng đá euro ký hiệu như(Subplan_name) .coln, trong đó đề cập đếnnChọn.

Trong ví dụ trên,tất cảNhà điều hành chạy lại sơ đồ con cho mỗi hàng của truy vấn bên ngoài (chiếm chi phí ước tính cao). Một số truy vấn có thể sử kèo bóng đá euroSUBS được bămĐể tránh điều đó:

kèo bóng đá euro Chọn *

Ở đây, sơ đồ con được chạy kèo bóng đá euro thời gian và đầu ra của nó được tải vào bảng băm trong bộ nhớ, sau đó được thử nghiệm bởi bên ngoàianytoán tử. Điều này yêu cầu rằng Sub-ChọnKhông tham chiếu bất kỳ biến nào của truy vấn bên ngoài và rằngbất kỳnhà điều hành so sánh có thể chấp nhận được với băm.

Nếu, ngoài việc không tham chiếu bất kỳ biến nào của truy vấn bên ngoài, Sub-ChọnKhông thể trả về nhiều hơn kèo bóng đá euro hàng, thay vào đó nó có thể được thực hiện dưới dạnginitplan:

kèo bóng đá euro Verbose Chọn độc đáo1

Một khởi động chỉ được chạy một lần mỗi lần thực hiện kế hoạch bên ngoài và kết quả của nó được lưu để sử kèo bóng đá euro lại trong các hàng sau của kế hoạch bên ngoài. Vì vậy, trong ví dụ nàyngẫu nhiên ()chỉ được đánh giá một lần và tất cả kèo bóng đá euro giá trị củaT1.TENđược so sánh với cùng kèo bóng đá euro số nguyên được chọn ngẫu nhiên. Điều đó hoàn toàn khác với những gì sẽ xảy ra nếu không có phụ-ChọnXây dựng.

14.1.2.kèo bóng đá euro 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ử kèo bóng đá eurokèo bóng đá euro'sPhân tíchTùy chọn. Với tùy chọn này,kèo bóng đá euro40033_40199kèo bóng đá euroHiển thị. Ví dụ: chúng ta có thể nhận được kết quả như thế này:

kèo bóng đá euro Phân tích Chọn *

Lưu ý rằng"Thời gian thực tếGiá trị ở mili giây của thời gian thực, trong khichi phíƯớc tính được thể hiện bằng kèo bóng đá euro đơn vị tùy ý; Vì vậy, họ không có khả năng phù hợp.

Trong kèo bóng đá euro số gói truy vấn, có thể thực hiện kèo bóng đá euro 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 kèo bóng đá euro 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ặpGiá trị báo cáo tổng số lần thực thi của nút và kèo bóng đá euro 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 kèo bóng đá euro con số tương đương với cách mà ước tính chi phí được hiển thị.vòng lặpGiá trị để có được tổng thời gian thực sự được sử kèo bóng đá euro trong nút. Trong ví dụ trên, chúng tôi đã chi tổng cộng 0,030 mili giây để thực hiện các lần quét chỉ mục trênTENK2.

Trong kèo bóng đá euro số trường hợpkèo bóng đá euro Phân tíchHiể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ụ: kèo bóng đá euro nút sắp xếp và băm cung cấp thêm thông tin:

kèo bóng đá euro 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ử kèo bóng đá euro (đặ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ử kèo bóng đá euro cho bảng băm.

kèo bóng đá euro 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:

kèo bóng đá euro 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 kèo bóng đá euro tại các nút nối. Thekèo bóng đá euro bị loại bỏKhănDòng chỉ xuất hiện khi ít nhất kèo bóng đá euro 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.

kèo bóng đá euro trường hợp tương tự như điều kiện bộ lọc xảy ra vớiHồiMấtQuét chỉ mục. Ví dụ: hãy xem xét tìm kiếm này cho kèo bóng đá euro đa giác chứa một điểm cụ thể:

kèo bóng đá euro 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ả kèo bóng đá euro 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ả về kèo bóng đá euro hàng ứng cử viên, sau đó bị từ chối bởi kèo bóng đá euro đ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ì kèo bóng đá euro chỉ mục ý chính làMấtHồiĐối với kèo bóng đá euro bài kiểm tra ngăn chặn đa giác: Nó thực sự trả về kèo bóng đá euro hàng với kèo bóng đá euro đ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 kèo bóng đá euro hàng đó.

kèo bóng đá eurobộ đệmTùy chọn có thể được sử kèo bóng đá euro vớiPhân tíchĐể có thêm số liệu thống kê thời gian chạy hơn:

kèo bóng đá euro (phân tích, bộ đệm) chọn * từ TENK1 trong đó độc đáo1 <100 và độc đáo2 9000;

kèo bóng đá euro số được cung cấp bởibộ đệmTrợ 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ìkèo bóng đá euro Phân tíchThực tế chạy truy vấn, bất kỳ tác kèo bóng đá euro 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ỏ để inkèo bóng đá euroDữ 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,XóahoặcHợp nhấtLệnh, Công việc thực tế của việc áp kèo bóng đá euro các thay đổi bảng được thực hiện bằng một nút chèn, cập nhật, xóa hoặc hợp nhất 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.

Khi kèo bóng đá euroCập nhật,XóahoặcMergeLệnh ảnh hưởng đến kèo bóng đá euro bảng phân vùng hoặc phân cấp kế thừa, đầu ra có thể trông giống như thế này:

kèo bóng đá euro cập nhật gtest_parent đặt f1 = current_date trong đó f2 = 101;

Trong ví dụ này, nút cập nhật cần xem xét ba bảng con, nhưng không phải là bảng được phân vùng ban đầu (vì không bao giờ lưu trữ bất kỳ dữ liệu nào). Vì vậy, có ba phân nhóm quét đầu vào, kèo bóng đá euro bảng mỗi bảng.

TheThời gian lập kế hoạchHiển thị bởikèo bóng đá euro Phân tíchlà 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được hiển thị bởikèo bóng đá euro Phân tíchBao 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ỳ trình 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ướcTriggers, 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ệnsauTriggers không được tính ở đó vìsauKí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ướchoặcsau) cũng được hiển thị riêng. Lưu ý rằng kèo bóng đá euro 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ởikèo bóng đá euro Phân tích.

Thời gian hiển thị cho nút cấp cao nhất không bao gồm bất kỳ thời gian nào cần thiết để chuyển đổi dữ liệu đầu ra của truy vấn thành biểu mẫu có thể hiển thị hoặc gửi cho máy khách. Trong khikèo bóng đá euro Phân tíchSẽ không bao giờ gửi dữ liệu cho máy khách, nó có thể được yêu cầu chuyển đổi dữ liệu đầu ra của truy vấn thành biểu mẫu có thể hiển thị và đo thời gian cần thiết cho điều đó, bằng cách chỉ địnhsê -riTùy chọn. Thời gian đó sẽ được hiển thị riêng biệt và nó cũng được bao gồm trong tổng sốThời gian thực hiện.

14.1.3.Hãy cẩn thận#

Có hai cách quan trọng trong đó thời gian chạy được đo bằngkèo bóng đá euro Phân tíchcó thể đi chệch khỏi việc thực hiện bình thường của cùng kèo bóng đá euro truy vấn. Đầu tiên, vì không có hàng đầu ra nào được phân phối cho máy khách, chi phí truyền mạng không được bao gồm.sê -riđược chỉ định. Thứ hai, chi phí đo được thêm vào bởikèo bóng đá euro Phân tíchcó thể có ý nghĩa, đặc biệt là trên kèo bóng đá euro máy có chậmgetTimeOfday ()Cuộc gọi hệ điều hành. Bạn có thể sử kèo bóng đá europg_test_timingCông cụ để đo chi phí thời gian trên hệ thống của bạn.

kèo bóng đá euroKế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 kèo bóng đá euro cho các bảng lớn.polygon_tblVí dụ ở trên.)

Có những trường hợp trong đó kèo bóng đá euro 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ạnhoặc hiệu ứng tương tự. Ví dụ, tronggiới hạnTruy vấn chúng tôi đã sử kèo bóng đá euro trước đó,

kèo bóng đá euro Phân tích Chọn * từ TENK1 trong đó độc đáo1 <100 và độc đáo2 9000 giới hạn 2;

Số lượng chi phí và kèo bóng đá euro ước tính 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 kèo bóng đá euro sau khi có hai, vì vậy số lượng kèo bóng đá euro thực tế chỉ là 2 và thời gian chạy ít hơn ước tính chi phí sẽ đề xuất.

Merge Joins cũng có kèo bóng đá euro tạo tác đo lường có thể gây nhầm lẫn cho sự không sẵn sàng. 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 kèo bóng đá euro 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 kèo bóng đá euro hàng phù hợp với giá trị khóa đó.kèo bóng đá euro Phân tíchĐếm kèo bóng đá euro phát thải lặp đi lặp lại này có cùng kèo bóng đá euro hàng bên trong như thể chúng là kèo bóng đá euro 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.

kèo bóng đá euro 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,kèo bóng đá euroSẽ 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 kèo bóng đá euro giá trị tham số không có sẵn tại thời điểm lập kế hoạch.kèo bóng đá eurođầu ra và ASubplans bị xóa:nChú thích xuất hiện thay thế.

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ớpMẫu nàyĐể báo cáo vấn đề tài liệu.