Postgresql 8.2.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 13. Mẹo hiệu suất | Chuyển tiếp nhanh | NEXT |
PostgreSQLnghĩ ra AKế hoạch truy vấnĐối với mỗi truy vấn được đưa ra. Chọn đúng kế hoạch để phù hợp với cấu trúc truy vấn và Thuộc tính của dữ liệu là hoàn toàn quan trọng cho tốt hiệu suất, vì vậy hệ thống bao gồm kèo bóng đá việt nam phức tạpkế hoạchĐiều đó cố gắng chọn các kế hoạch tốt. Bạn có thể sử kèo bóng đá việt namPostgreSQL: Tàlệnh Để xem kế hoạch truy vấn nào mà người lập kế hoạch tạo ra cho bất kỳ truy vấn nào. Đọc kế hoạch là kèo bóng đá việt nam nghệ thuật xứng đáng với kèo bóng đá việt nam hướng dẫn rộng lớn, mà Đây không phải là; Nhưng đây là kèo bóng đá việt nam số thông tin cơ bản.
Cấu trúc của kế hoạch truy vấn là kèo bóng đá việt nam câyKế hoạch kèo bóng đá việt nam nút. Các nút ở cấp dưới là bảng Các nút quét: Chúng trả lại các kèo bóng đá việt nam thô từ một bảng. Có Các loại nút quét khác nhau cho các phương thức truy cập bảng khác nhau: Quét tuần tự, quét chỉ mục và quét chỉ số bitmap. Nếu Truy vấn yêu cầu tham gia, tổng hợp, sắp xếp hoặc các hoạt động khác Trên các kèo bóng đá việt nam thô, sau đó sẽ có các nút bổ sung"trên đỉnh"Các nút quét để thực hiện các hoạt động này. kèo bóng đá việt nam lần nữa, thường có nhiều hơn kèo bóng đá việt nam cách có thể để làm những điều này Hoạt động, vì vậy các loại nút khác nhau cũng có thể xuất hiện ở đây. Các đầu ra củakèo bóng đá việt namCó kèo bóng đá việt nam dòng cho mỗi dòng nút trong cây kế hoạch, hiển thị loại nút cơ bản cộng với chi phí ước tính rằng người lập kế hoạch đã thực hiện kế hoạch đó nút. Dòng đầu tiên (nút trên cùng) có tổng số ước tính chi phí thực hiện cho kế hoạch; Đó là con số mà người lập kế hoạch tìm cách giảm thiểu.
Đây là kèo bóng đá việt nam ví dụ tầm thường, chỉ để hiển thị những gì đầu ra trông giống.[1]
kèo bóng đá việt nam Chọn * từ TENK1; Kế hoạch truy vấn --------------------------------------------------------------------- SEQ SCAN trên TENK1 (chi phí = 0,00..458.00 hàng = 10000 chiều rộng = 244)
kèo bóng đá việt nam số được trích dẫn bởikèo bóng đá việt namlà:
Chi phí khởi động ước tính (thời gian dành trước khi quét đầu ra có thể bắt đầu, ví dụ: thời gian để thực hiện sắp xếp trong kèo bóng đá việt nam nút sắp xếp.)
Tổng chi phí ước tính (nếu tất cả các kèo bóng đá việt nam được truy xuất, mà họ có thể không phải là: ví dụ, một truy vấn vớigiới hạnmệnh đề sẽ ngừng thanh toán Tổng chi phí củagiới hạnKế hoạch của nút Nút đầu vào.)
Số lượng kèo bóng đá việt nam ước tính đầu ra theo nút kế hoạch này (một lần nữa, Chỉ khi được thực hiện để hoàn thành.)
chiều rộng trung bình ước tính (tính bằng byte) của đầu ra kèo bóng đá việt nam Kế hoạch nút
Chi phí được đo bằng kèo bóng đá việt nam đơn vị tùy ý được xác định bởi tham số chi phí của kế hoạch (xemPhần 17.6.2). Thực tiễn truyền thống là để đo lường chi phí trong Đơn vị của trang đĩa Fetches; đó là,SEQ_PAGE_COSTđược đặt thành thông thường1.0và kèo bóng đá việt nam tham số chi phí khác được đặt liên quan đến điều đó. kèo bóng đá việt nam ví dụ trong Phần này được chạy với kèo bóng đá việt nam tham số chi phí mặc định.
Điều quan trọng cần lưu ý là chi phí của một nút cấp trên Bao gồm chi phí của tất cả các nút con của nó. Nó cũng quan trọng đối với 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 Về. Đặc biệt, chi phí không xem xét thời gian dành truyền các kèo bóng đá việt nam kết quả đến máy khách, có thể là Yếu tố quan trọng trong thời gian trôi qua thực sự; Nhưng người lập kế hoạch Bỏ qua nó bởi vì nó không thể thay đổi nó bằng cách thay đổi kế hoạch. (Mỗi gói chính xác sẽ xuất ra cùng một kèo bóng đá việt nam, chúng tôi tin tưởng.)
Đầu ra kèo bóng đá việt nam có một chút khó khăn vì nó làkhông13707_13836WHEREnút. Lý tưởng nhất là ước tính các kèo bóng đá việt nam cấp cao nhất sẽ gần đúng Số lượng kèo bóng đá việt nam thực sự được trả lại, cập nhật hoặc xóa bởi Truy vấn.
Trở về ví dụ của chúng tôi:
14123_14315
Điều này là đơn giản như nó được. Nếu bạn làm
14415_14484
Bạn sẽ tìm ra rằngTENK1
có 358 trang đĩa và 10000 kèo bóng đá việt nam. Vì vậy, chi phí được ước tính tại
358 trang đọc, chi phíSEQ_PAGE_COSTapiece (1.0 theo mặc định), cộng với 10000 *cpu_tuple_costlà 0,01 theo mặc định.
Bây giờ hãy sửa đổi truy vấn để thêmWHEREđiều kiện:
kèo bóng đá việt nam Chọn * từ TENK1 trong đó độc đáo1 <7000; Kế hoạch truy vấn -------------------------------------------------------------------- SEQ SCAN trên TENK1 (chi phí = 0,00..483.00 hàng = 7033 chiều rộng = 244) Bộ lọc: (độc đáo1 <7000)
Lưu ý rằngkèo bóng đá việt namđầu ra hiển thị TheWHEREmệnh đề được áp kèo bóng đá việt nam dưới dạng"Filter"15409_15611WHEREmệnh đề. Tuy nhiên, việc quét vẫn sẽ phải Ghé thăm tất cả 10000 kèo bóng đá việt nam, vì vậy chi phí chưa giảm; trong thực tế nó đã tăng lên một chút để phản ánh thời gian CPU thêm TheWHEREđiều kiện.
15876_16116Phân tíchLệnh, vì kèo bóng đá việt nam số liệu thống kê được tạo ra quaPhân tíchđược lấy từ kèo bóng đá việt nam ngẫu nhiên hóa mẫu của bảng.
Bây giờ, hãy làm cho điều kiện hạn chế hơn:
16372_16776
16787_17447"Bitmap"được đề cập trong tên nút là cơ chế thực hiện Sắp xếp.)
NếuWHERE17601_17665"đơn giản"Kế hoạch quét chỉ mục:
kèo bóng đá việt nam Chọn * từ Tenk1 trong đó độc đáo1 <3; Kế hoạch truy vấn ------------------------------------------------------------------------------------------ Quét chỉ mục bằng TENK1_UNIQUE1 trên TENK1 (chi phí = 0,00..10.00 hàng = 2 chiều rộng = 244) Chỉ mục Cond: (độc đáo1 <3)
Trong trường hợp này, các kèo bóng đá việt nam bảng được tìm nạp theo thứ tự chỉ mục, mà làm cho chúng thậm chí còn đắt hơn để đọc, nhưng có rất ít Chi phí bổ sung để phân loại các vị trí kèo bóng đá việt nam không đáng giá. Bạn thường thấy loại kế hoạch này cho các truy vấn chỉ tìm hiểu một kèo bóng đá việt nam duy nhất và cho các truy vấn yêu cầuĐặt kèo bóng đá việt nam bởiĐiều kiện phù hợp với chỉ mục đặt kèo bóng đá việt nam.
Thêm điều kiện khác vàoWHEREmệnh đề:
kèo bóng đá việt nam Chọn * từ TENK1 trong đó độc đáo1 <3 và StringU1 = 'xxx'; Kế hoạch truy vấn ------------------------------------------------------------------------------------------ Quét chỉ mục bằng TENK1_UNIQUE1 trên TENK1 (chi phí = 0,00..10,01 hàng = 1 chiều rộng = 244) Index Cond: (độc đáo1 <3) Bộ lọc: (StringU1 = 'xxx' :: name)
Điều kiện được thêm vàoStringU1 = 'xxx'Giảm ước tính kèo bóng đá việt nam đầ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ộ kèo bóng đá việt nam. Lưu ý rằngStringU1mệnh đề không thể được áp kèo bóng đá việt nam dưới dạng điều kiện chỉ mục (vì chỉ mục này chỉ có trênđộc đáo1cột). Thay vào đó nó được áp kèo bóng đá việt nam làm bộ lọc Trên các hàng được lấy bởi chỉ mục. Do đó, chi phí thực sự có Đã đi lên một chút để phản ánh kiểm tra thêm này.
Nếu có các chỉ mục trên một số cột được sử kèo bóng đá việt nam trongở đâu, người lập kế hoạch có thể chọn sử kèo bóng đá việt nam và hoặc hoặc Hoặc kết hợp các chỉ mục:
kèo bóng đá việt nam Chọn * từ TENK1 trong đó độc đáo1 <100 và duy nhất2 9000; Kế hoạch truy vấn --------------------------------------------------------------------------------------------- Quét heap bitmap trên TENK1 (chi phí = 11,27..49.11 hàng = 11 chiều rộng = 244) RECHECK COND: ((độc đáo1 <100) và (độc đáo2 9000))) - bitmapand (chi phí = 11,27..11,27 hàng = 11 chiều rộng = 0) - Quét chỉ mục bitmap trên tenk1_unique1 (chi phí = 0,00..2,37 hàng = 106 chiều rộng = 0) Index Cond: (độc đáo1 <100) - Quét chỉ số bitmap trên TENK1_UNIQUE2 (chi phí = 0,00..8,65 hàng = 1042 chiều rộng = 0) Chỉ mục Cond: (độc đáo2 9000)
Nhưng điều này yêu cầu truy cập cả hai chỉ mục, vì vậy nó không nhất thiết là một chiến thắng so với chỉ sử kèo bóng đá việt nam một chỉ số và điều trị đ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.
Hãy thử tham gia hai bảng, sử kèo bóng đá việt nam các cột chúng tôi đã Thảo luận:
20637_21321
Trong lần nối vòng lặp lồng nhau này, lần quét bên ngoài là cùng một bitmap Quét chỉ mục mà chúng tôi đã thấy trước đó, và vì vậy chi phí và số lượng hàng của nó là Tương tự bởi vì chúng tôi đang áp kèo bóng đá việt namWHEREmệnh đề21554_21572Tại nút đó. Thet1.Unique2 = t2.unique2mệnh đề là Chưa có liên quan, vì vậy nó không ảnh hưởng đến số lượng kèo bóng đá việt nam bên ngoài quét. Đối với quét bên trong,độc đáo2Giá trị của kèo bóng đá việt nam quầy hiện tại được cắm vào bên trong SCAN INDEX để tạo ra một điều kiện chỉ mục nhưT2.Unique2 =hằng số. Vì vậy, chúng tôi cũng nhận được như vậy Kế hoạch quét bên trong và chi phí mà chúng ta sẽ nhận được, nói,kèo bóng đá việt nam Chọn * từ TENK2 trong đó độc đáo2 = 42. Các 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 một lần lặp lại quét bên trong cho mỗi kèo bóng đá việt nam bên ngoài (106 * 3.01, ở đây), cộng với một chút thời gian CPU để tham gia xử lý.
Trong ví dụ này, số lượng kèo bóng đá việt nam đầ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 Chung, bởi vì nói chung bạn có thể cóWHEREĐiều khoản đề cập đến cả hai bảng và do đó có thể Chỉ được áp kèo bóng đá việt nam tại điểm nối, không phải để quét đầu vào. Vì Ví dụ, nếu chúng ta đã thêmở đâu ... và t1.hundred <t2.hundred, sẽ làm giảm số lượng kèo bóng đá việt nam đầu ra của nút nối, nhưng không thay đổi quét đầu vào.
Một cách để xem xét các kế hoạch biến thể là buộc người lập kế hoạch phải coi thường bất kỳ chiến lược nào mà nó nghĩ là người chiến thắng, sử kèo bóng đá việt nam Bật/tắt cờ được mô tả trongPhần 17.6.1. (Đây là kèo bóng đá việt nam công cụ thô, nhưng hữu ích. Xem thêmPhần 13.3.)
23246_24026
Kế hoạch này đề xuất trích xuất 100 kèo bóng đá việt nam thú vị củatenk1
Sử kèo bóng đá việt nam cùng một chỉ mục cũ đó
quét, cất chúng vào bảng băm trong bộ nhớ, và sau đó thực hiện
Quét tuần tựTenk2
, thăm dò
vào bảng băm cho kèo bóng đá việt nam trận đấu có thể củat1.Unique2 = t2.unique2Tại mỗiTENK2
kèo bóng đá việt nam. Chi phí để đọcTENK1
24497_24634Tenk2
.
Tổng ước tính thời gian cho sự tham gia cũng bao gồm kèo bóng đá việt nam khoản phí khổng lồ
Đối với thời gian CPU để thăm dò bảng băm 10000 lần. Ghi chú,
Tuy nhiên, chúng tôi làkhôngSạc 10000 lần 232,35;
Thiết lập bảng băm chỉ được thực hiện kèo bóng đá việt nam lần trong loại kế hoạch này.
Có thể kiểm tra độ chính xác của người lập kế hoạch Chi phí ước tính bằng cách sử kèo bóng đá việt namkèo bóng đá việt nam Phân tích. Lệnh này thực sự thực hiện truy vấn, và sau đó Hiển thị thời gian chạy thực sự tích lũy trong mỗi nút gói cùng với kèo bóng đá việt nam chi phí ước tính tương tự mà đơn giảnkèo bóng đá việt namHiển thị. Ví dụ: chúng ta có thể nhận được kèo bóng đá việt namt quả Như thế này:
Giải thích Phân tích Chọn * Từ Tenk1 T1, Tenk2 T2 trong đó T1.Unique1 <100 và T1.Unique2 = T2.unique2; Kế hoạch truy vấn ------------------------------------------------------------------------------------------------------------------------------------------------------ Vòng lặp lồng nhau (chi phí = 2,37..553.11 hàng = 106 chiều rộng = 488) (thời gian thực tế = 1.392..12.700 hàng = 100 vòng = 1) - Quét heap bitmap trên tenk1 t1 (chi phí = 2,37..232,35 hàng = 106 chiều rộng = 244) (thời gian thực tế = 0.878..2.367 hàng = 100 vòng = 1) RECHECK cond: (độc đáo1 <100) - Quét chỉ số bitmap trên tenk1_unique1 (chi phí = 0,00..2,37 hàng = 106 chiều rộng = 0) (thời gian thực tế = 0,546..0.546 hàng = 100 vòng = 1) Index Cond: (độc đáo1 <100) - Quét chỉ mục sử kèo bóng đá việt nam TENK2_UNIQUE2 trên TENK2 T2 (chi phí = 0,00..3,01 hàng = 1 chiều rộng = 244) (thời gian thực tế = 0,067..0.078 hàng = 1 vòng = 100) INDEX cond: ("Buter" .Unique2 = t2.Unique2) Tổng thời gian chạy: 14.452 ms
Lưu ý rằng"Thời gian thực tế"Giá trị ở trong mili giây của thời gian thực, trong khi"Chi phí"Ước tính được thể hiện bằng kèo bóng đá việt nam đơn vị tùy ý; Vì vậy, họ không có khả năng phù hợp. Điều cần chú ý đến là liệu tỷ lệ thời gian thực và chi phí ước tính có phải là nhất quán.
Trong một số gói truy vấn, có thể cho một nút con thực hiện nhiều hơn một lần. Ví dụ: quét chỉ mục bên trong là được thực hiện một lần trên mỗi kèo bóng đá việt nam bên ngoài trong kế hoạch vòng lặp lồng trên. TRONG Những trường hợp như vậy,"Loops"Báo cáo giá trị tổng số lần thực hiện của nút và thời gian thực tế và các giá trị kèo bóng đá việt nam đượ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 các con số tương đương với cách ước tính chi phí được hiển thị. Nhân với"Loops"Giá trị để có được tổng thời gian thực sự dành cho nút.
TheTổng thời gian chạyđược hiển thị bởikèo bóng đá việt nam Phân tích27381_27551ChọnTruy vấn, tổng thời gian chạy sẽ Thông thường chỉ lớn hơn kèo bóng đá việt nam chút so với tổng thời gian được báo cáo cho Nút kế hoạch cấp cao nhất. VìChèn, Cập nhậtvàXóalệnh, tổng thời gian chạy có thể là lớn hơn đáng kể, bởi vì nó bao gồm thời gian dành xử lý các hàng kết quả. Trong các lệnh này, thời gian cho nút kế hoạch hàng đầu về cơ bản là thời gian dành cho máy tính Hàng và/hoặc định vị các hàng cũ, nhưng nó không bao gồm Thời gian dành cho việc áp kèo bóng đá việt nam các thay đổi. Thời gian dành cho việc kích hoạt kích hoạt, nếu Bất kỳ, cũng nằm ngoài nút kế hoạch hàng đầu và được hiển thị riêng cho mỗi kích hoạt.
Điều đáng chú ý làkèo bóng đá việt namKết quả không nên ngoại suy cho các tình huống khác ngoài một bạn thực sự đang thử nghiệm; Ví dụ: kết quả trên một chiếc đồ chơi có kích thước Bảng không thể được giả định để áp kèo bóng đá việt nam cho các bảng lớn. Người lập kế hoạch Ước tính chi phí không phải là tuyến tính và vì vậy nó cũng có thể chọn một Kế hoạch khác nhau cho một bảng lớn hơn hoặc nhỏ hơn. Một ví dụ cực đoan đó là trên một bảng chỉ chiếm một trang đĩa, bạn sẽ gần như luôn luôn nhận được một kế hoạch quét tuần tự cho dù chỉ mục là có sẵn hay không. Người lập kế hoạch nhận ra rằng nó sẽ mất một trang đĩa đọc để xử lý bảng trong mọi trường hợp, vì vậy có Không có giá trị trong việc đọc các trang bổ sung để xem xét chỉ mục.
[1] |
Ví dụ trong phần này được rút ra từ hồi quy Kiểm tra cơ sở dữ liệu sau khi thực hiệnVacuum Phân tích, Sử kèo bóng đá việt nam 8.2 Nguồn phát triển. Bạn nên được 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ể sẽ thay đổi hơi vìPhân tích's Thống kê là kèo bóng đá việt nam mẫu ngẫu nhiên thay vì chính xác. |