kèo bóng đá c1
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 đá c1 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ạpkế hoạchĐó là cố gắng chọn các kế hoạch tốt. Bạn có thể sử kèo bóng đá c1kèo bóng đá c1
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ử kèo bóng đá c1 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à kèo bóng đá c1 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ử kèo bóng đá c1kèo bóng đá c1
11297_11310TextHồiĐị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 đá c1
đầu ra của chương trình để phân tích thêm, bạn nên sử kèo bóng đá c1 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ế.
kèo bóng đá c1
Khái niệm cơ bảnCấu trúc của kế hoạch truy vấn là một câyKế hoạch kèo bóng đá c1 nút. kèo bóng đá c1 nút ở cấp dưới của cây là kèo bóng đá c1 nút quét: chúng trả lại kèo bóng đá c1 hàng thô từ một bảng.giá trị
kèo bóng đá c1 mệnh đề và kèo bóng đá c1 chức năng hoàn trả lại trongtừ
, có kèo bóng đá c1 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 đá c1 hoạt động khác trên kèo bóng đá c1 hàng thô, thì sẽ có kèo bóng đá c1 nút bổ sung phía trên kèo bóng đá c1 nút quét để thực hiện kèo bóng đá c1 hoạt động này.kèo bóng đá c1
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 đó. kèo bóng đá c1 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 đá c1 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:
kèo bóng đá c1 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ử kèo bóng đá c1 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 động ước tính. Đây là thời gian được sử kèo bóng đá c1 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 đá c1 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 kèo bóng đá c1 đơn vị tùy ý được xác định bởi kèo bóng đá c1 tham số chi phí của kế hoạch (xemPhần 20.7.2). Thực tiễn truyền thống là để đo lường chi phí trong kèo bóng đá c1 đơn vị của trang đĩa Fetches;SEQ_PAGE_COSTđược đặt thành quy ước1.0
và kèo bóng đá c1 tham số chi phí khác được đặt liên quan đến điều đó. kèo bóng đá c1 ví dụ trong phần này được chạy với kèo bóng đá c1 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 đá c1 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ố 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
-Có điều kiện đang được áp kèo bóng đá c1 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 đá c1 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:
16599_16668
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à (kèo bóng đá c1 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:
kèo bóng đá c1 Chọn * từ Tenk1 trong đó độc đáo1 <7000;
Lưu ý rằngkèo bóng đá c1
Đầu ra hiển thịWHERE
mệnh đề được áp kèo bóng đá c1 dưới dạngHồiFilterĐ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 đá c1 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 traWHERE
đ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ì kèo bóng đá c1 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:
kèo bóng đá c1 Chọn * từ Tenk1 trong đó độc đáo1 <100;
Ở đây người lập kế hoạch đã quyết định sử kèo bóng đá c1 kế hoạch hai bước: nút Kế hoạch con sẽ 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ồ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 đề:
kèo bóng đá c1 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 kèo bóng đá c1 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 kèo bóng đá c1 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íchMạnhđơn giảnKế hoạch quét chỉ mục:
kèo bóng đá c1 Chọn * từ Tenk1 trong đó độc đáo1 = 42;
Trong loại kế hoạch này, kèo bóng đá c1 hàng bảng được tìm nạp theo thứ tự chỉ mục, 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 đá c1 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 đá c1 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ử kèo bóng đá c1 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 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:
kèo bóng đá c1 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ử kèo bóng đá c1Sắp xếp gia tăng
BƯỚC:
kèo bóng đá c1 Chọn * từ thứ tự TENK1 bằng bốn, mười giới hạn 100;
So với kèo bóng đá c1 loại thông thường, sắp xếp tăng dần cho phép trả về kèo bóng đá c1 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ử kèo bóng đá c1 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 đá c1 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 đá c1 và hoặc hoặc kết hợp các chỉ mục:
kèo bóng đá c1 Chọn * từ TENK1 trong đó độc đáo1 <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 đá c1 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 đá c1 hiệu ứng củagiới hạn
:
kèo bóng đá c1 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ả kèo bóng đá c1 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 đá c1 các cột chúng tôi đã thảo luận:
kèo bóng đá c1 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 đá c1 dòng tóm tắt nút phản ánh cấu trúc cây kế hoạch.MạnhButer, 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 kèo bóng đá c1WHERE
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ặcbê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 đá c1 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 ... WHERE 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 kèo bóng đá c1 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 đá c1 Chọn *
Điều kiệnt1.hundred <t2.hundred
Không thể kiểm tra trongtenk2_unique2
INDEX, vì vậy nó được áp kèo bóng đá c1 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 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 kèo bóng đá c1 kết nối bên ngoài, bạn có thể thấy kèo bóng đá c1 nút kế hoạch tham gia với cả haiTham gia bộ lọcHồivà PlainFilterĐiều kiện đính kèm. Tham gia kèo bóng đá c1 đ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 kèo bóng đá c1 sau các quy tắc tham gia bên ngoài và do đó có tác kèo bóng đá c1 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:
kèo bóng đá c1 Chọn *
Ở đây, người lập kế hoạch đã chọn sử kèo bóng đá c1 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, cấu trúc bảng băm. Sau đó, được trả lại cho nút nối băm, đọc kèo bóng đá c1 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à một sự hợp nhất tham gia, được minh họa ở đây:
kèo bóng đá c1 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 kèo bóng đá c1 phím tham gia. Trong kế hoạch nàyTENK1
Dữ liệu được sắp xếp bằng cách sử kèo bóng đá c1 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 đó. .
34020_34183Phần 20.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 thì việc quét và sắp xếp tuần tự 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.kèo bóng đá c1 Phân tích
, như được thảo luận dưới đây.
kèo bóng đá c1 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 đá c1kèo bóng đá c1
'SPhân tích
Tùy chọn. Với tùy chọn này,kèo bóng đá c1
36087_36253kèo bóng đá c1
Hiển thị. Ví dụ: chúng ta có thể nhận được kết quả như thế này:
kèo bóng đá c1 Phân tích Chọn *
Lưu ý rằngThời gian thực tếKhănGiá 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 đá c1 đơ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à kèo bóng đá c1 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 đá c1 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ử kèo bóng đá c1 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ợpkèo bóng đá c1 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ụ: kèo bóng đá c1 nút sắp xếp và băm cung cấp thêm thông tin:
kèo bóng đá c1 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 đá c1 (đặc biệt, cho dù là loại 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 đá c1 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:
kèo bóng đá c1 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ị đối với các điều kiện lọc được áp kèo bóng đá c1 tại các nút nối. TheHàng bị loại bỏ”dò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ấtHàngQuét chỉ mục. Ví dụ: hãy xem xét tìm kiếm này cho kèo bóng đá c1 đa giác chứa một điểm cụ thể:
kèo bóng đá c1 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 đá c1 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 kèo bóng đá c1 bài kiểm tra ngăn chặn đa giác: Nó thực sự trả về kèo bóng đá c1 hàng với kèo bóng đá c1 đ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 đá c1 hàng đó.
kèo bóng đá c1
cóbộ đệm
Tùy chọn có thể được sử kèo bóng đá c1 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 đá c1 (phân tích, bộ đệm) Chọn * từ TENK1 trong đó độc đáo1 <100 và duy nhất2 9000;
kèo bóng đá c1 số được cung cấp bởibộ đệm
44753_44825
Hãy nhớ rằng vìkèo bóng đá c1 Phân tích
Thực tế chạy truy vấn, bất kỳ tác kèo bóng đá c1 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 đá c1
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
, Xóa
hoặcMerge
Lệnh, công việc thực tế của việc áp kèo bóng đá c1 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.
KhiCập nhật
, Xóa
hoặcMerge
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:
kèo bóng đá c1 Cập nhật 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.
TheThời gian lập kế hoạch
hiển thị bởikèo bóng đá c1 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ởikèo bóng đá c1 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 dành để thực hiệntrước
Triggers, nếu có, được bao gồm trong thời gian cho nút chèn, cập nhật hoặc xóa 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 kèo bóng đá c1 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 đá c1 Phân tích
.
Có hai cách quan trọng trong đó thời gian chạy được đo bằngkèo bóng đá c1 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.kèo bóng đá c1 Phân tích
có thể có ý nghĩa, đặc biệt là trên kèo bóng đá c1 máy có chậmgetTimeOfday ()
Cuộc gọi hệ điều hành. Bạn có thể sử kèo bóng đá c1pg_test_timingCông cụ để đo chi phí thời gian trên hệ thống của bạn.
kèo bóng đá c1
Kết quả không nên ngoại suy cho 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 đá c1 cho các bảng lớn.polygon_tbl
Ví dụ ở trên.)
Có những trường hợp trong đó kèo bóng đá c1 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ử kèo bóng đá c1 trước đó,
kèo bóng đá c1 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ó kèo bóng đá c1 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 kèo bóng đá c1 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 đá c1 hàng phù hợp với giá trị khóa đó.kèo bóng đá c1 Phân tích
Đếm kèo bóng đá c1 phát thải lặp đi lặp lại này có cùng kèo bóng đá c1 hàng bên trong như thể chúng là kèo bóng đá c1 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 đá c1 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 đá c1
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 kèo bóng đá c1 giá trị tham số không có sẵn tại thời điểm lập kế hoạch.kèo bóng đá c1
đầ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.