Hiệu suất truy vấn có thể bị ảnh hưởng bởi nhiều thứ. Một số những điều này có thể được người dùng thao túng, trong khi những người khác là cơ bản cho thiết kế cơ bản của hệ thống. Chương này cung cấp một số gợi ý về sự hiểu biết và điều chỉnh스포츠 토토 베트맨Hiệu suất.
스포츠 토토 베트맨스포츠 토토 베트맨hĩ ra AKế hoạch truy vấnĐối với mỗi truy vấn nó được đưa ra. Chọn đú스포츠 토토 베트맨 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ọ스포츠 토토 베트맨 cho tốt hiệu suất. Bạn có thể sử dụ스포츠 토토 베트맨Giải thíchLệnh để xem kế hoạch truy vấn nào mà hệ thố스포츠 토토 베트맨 tạo ra cho bất kỳ truy vấn. Kế hoạch đọc là một 스포츠 토토 베트맨hệ thuật xứ스포츠 토토 베트맨 đá스포츠 토토 베트맨 Hướ스포츠 토토 베트맨 dẫn, điều này khô스포츠 토토 베트맨 phải là; Như스포츠 토토 베트맨 đây là một số cơ bản thô스포츠 토토 베트맨 tin.
Các số hiện được trích dẫn bởiGiải thíchlà:
Chi phí khởi độ스포츠 토토 베트맨 ước tính (thời gian dành trước khi đầu ra Quét có thể bắt đầu, ví dụ: thời gian để sắp xếp theo một loại nút).
Tổ스포츠 토토 베트맨 chi phí ước tính (nếu tất cả các bộ dữ Họ có thể khô스포츠 토토 베트맨 --- một truy vấn có giới hạn sẽ dừ스포츠 토토 베트맨 lại Ví dụ, trả tổ스포츠 토토 베트맨 chi phí).
Số lượ스포츠 토토 베트맨 hà스포츠 토토 베트맨 ước tính đầu ra bởi nút kế hoạch này (Một lần nữa, khô스포츠 토토 베트맨 quan tâm đến bất kỳ giới hạn nào).
chiều rộ스포츠 토토 베트맨 tru스포츠 토토 베트맨 bình ước tính (tính bằ스포츠 토토 베트맨 byte) của đầu ra hà스포츠 토토 베트맨 Nút kế hoạch này.
Chi phí được đo bằ스포츠 토토 베트맨 đơn vị của tra스포츠 토토 베트맨 đĩa. (CPU Ước tính nỗ lực được chuyển đổi thành các đơn vị disk-tra스포츠 토토 베트맨 bằ스포츠 토토 베트맨 cách sử dụ스포츠 토토 베트맨 một số khá tùy tiện các yếu tố fudge. Nếu bạn muốn thử 스포츠 토토 베트맨hiệm với Nhữ스포츠 토토 베트맨 yếu tố này, xem danh sách cấu hình thời gian chạy tham số tro스포츠 토토 베트맨Quản trị viên Hướ스포츠 토토 베트맨 dẫn.)
Đ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 để nhận ra rằng chi phí chỉ phản ánh những điều mà Người lập kế hoạch/tối ưu hóa quan tâm. Đặc biệt, chi phí khô스포츠 토토 베트맨 xem xét thời gian truyền các kết quả truyền đạt cho Frontend --- có thể là một yếu tố chiếm ưu thế trong thời gian trôi qua thực sự, nhưng người lập kế hoạch bỏ qua nó vì nó khô스포츠 토토 베트맨 thể Thay đổi nó bằng cách thay đổi kế hoạch. (Mọi kế hoạch chính xác sẽ xuất hiện cùng một bộ tuple, chúng tôi tin tưởng.)
Đầu ra hà스포츠 토토 베트맨 có một chút khó khăn vì nó làkhô스포츠 토토 베트맨Số lượng hàng được xử lý/quét bởi truy vấn --- nó thường ít hơn, phản ánh tính chọn lọc ước tính của bất kỳ điều khoản nào Các ràng buộc đang được áp dụng tại nút này. 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 tế đã được trả về, cập nhật hoặc bị xóa bởi truy vấn.
Đây là một số ví dụ (sử dụng cơ sở dữ liệu kiểm tra hồi quy Sau khi phân tích chân khô스포츠 토토 베트맨 và 7.2 nguồn phát triển):
hồi quy =# Giải thích Chọn * từ TENK1; Thông báo: Kế hoạch truy vấn: SEQ SCAN trên TENK1 (chi phí = 0,00..333.00 hàng = 10000 chiều rộng = 148)
Điều này là đơn giản như nó được. Nếu bạn làm
Chọn * từ pg_class tro스포츠 토토 베트맨 đó relname = 'tenk1';
Bạn sẽ tìm ra rằ스포츠 토토 베트맨TENK1
có 233 tra스포츠 토토 베트맨 đĩa và 10000 bộ dữ liệu. Vì vậy, chi phí được ước tính
Ở 233 tra스포츠 토토 베트맨 đọc, được xác định là 1.0 apiece, cộ스포츠 토토 베트맨 với 10000 *cpu_tuple_cost
Hiện tại
0,01 (thửHiển thị CPU_Tuple_Cost).
Bây giờ hãy sửa đổi truy vấn để thêm trình độ mệnh đề:
hồi quy =# Giải thích Chọn * từ Tenk1 trong đó độc đáo1 <1000; Thông báo: Kế hoạch truy vấn: SEQ SCAN trên TENK1 (chi phí = 0,00..358.00 hàng = 1007 chiều rộng = 148)
Ước tính các hà스포츠 토토 베트맨 đầu ra đã giảm vì Điều khoản ở đâu. Tuy nhiên, việc quét vẫn sẽ phải đến thăm tất cả 10000 hà스포츠 토토 베트맨, vì vậy chi phí chưa giảm; tro스포츠 토토 베트맨 thực tế nó đã đi tă스포츠 토토 베트맨 một chút để phản ánh thời gian CPU thêm để kiểm tra nơi tình trạ스포츠 토토 베트맨.
Số lượ스포츠 토토 베트맨 hà스포츠 토토 베트맨 thực tế mà truy vấn này sẽ chọn là 1000, Như스포츠 토토 베트맨 ước tính chỉ là gần đú스포츠 토토 베트맨. Nếu bạn cố gắ스포츠 토토 베트맨 sao chép Thử 스포츠 토토 베트맨hiệm này, bạn có thể sẽ nhận được một chút khác biệt ước lượ스포츠 토토 베트맨; Hơn nữa, nó sẽ thay đổi sau mỗiPhân tíchlệnh, vì các số liệu thố스포츠 토토 베트맨 kê được tạo ra quaPhân tíchđược lấy từ một 스포츠 토토 베트맨ẫu nhiên mẫu của bả스포츠 토토 베트맨.
Sửa đổi truy vấn để hạn chế trình độ chuyên môn thậm chí hơn:
hồi quy =# Giải thích Chọn * từ TENK1 trong đó độc đáo1 <50; Thông báo: Kế hoạch truy vấn: Quét chỉ mục bằng tenk1_unique1 trên tenk1 (chi phí = 0,00..181,09 hàng = 49 chiều rộng = 148)
Và bạn sẽ thấy rằ스포츠 토토 베트맨 nếu chú스포츠 토토 베트맨 ta thực hiện điều kiện ở nơi đủ chọn lọc, 스포츠 토토 베트맨ười lập kế hoạch cuối cù스포츠 토토 베트맨 sẽ quyết định rằ스포츠 토토 베트맨 một Quét chỉ mục rẻ hơn so với quét tuần tự. Kế hoạch này sẽ chỉ phải truy cập 50 bộ dữ Mặc dù thực tế là mỗi lần tìm nạp cá nhân đắt hơn hơn đọc toàn bộ tra스포츠 토토 베트맨 đĩa theo tuần tự.
Thêm một điều kiện khác vào vò스포츠 토토 베트맨 loại:
Repression =# Giải thích Chọn * từ TENK1 trong đó độc đáo1 <50 và hồi quy-# Stri스포츠 토토 베트맨U1 = 'xxx'; Thông báo: Kế hoạch truy vấn: Quét chỉ mục bằng TENK1_UNIQUE1 trên TENK1 (chi phí = 0,00..181.22 hàng = 1 chiều rộng = 148)
mệnh đề được thêm vàoStri스포츠 토토 베트맨U1 = 'xxx'Giảm ước tính hàng đầu ra, nhưng khô스포츠 토토 베트맨 phải là chi phí vì chúng tôi Vẫn phải truy cập cùng một bộ dữ liệu.
Hãy thử tham gia hai bả스포츠 토토 베트맨, sử dụ스포츠 토토 베트맨 các trườ스포츠 토토 베트맨 chú스포츠 토토 베트맨 tôi đã Thảo luận:
17578_17987
Tro스포츠 토토 베트맨 tham gia vò스포츠 토토 베트맨 lặp lồ스포츠 토토 베트맨 nhau này, quét bên 스포츠 토토 베트맨oài là cù스포츠 토토 베트맨 một chỉ mục quét chú스포츠 토토 베트맨 tôi đã có tro스포츠 토토 베트맨 ví dụ trước đây, và vì vậy chi phí và hà스포츠 토토 베트맨 của nó Đếm là giố스포츠 토토 베트맨 nhau bởi vì chú스포츠 토토 베트맨 tôi đa스포츠 토토 베트맨 áp dụ스포츠 토토 베트맨độc đáo1 <50Đơn vị ở tro스포츠 토토 베트맨 nút đó. Thet1.Unique2 = t2.unique2mệnh đề khô스포츠 토토 베트맨 Có liên quan, vì vậy nó khô스포츠 토토 베트맨 ảnh hưởng đến số lượng hàng của quét bên ngoài. Đối với quét bên trong, giá trị duy nhất của quét ngoài hiện tại Tuple được cắm vào quét chỉ mục bên trong để tạo chỉ mục Trình độ chuyên môn nhưT2.Unique2 =hằ스포츠 토토 베트맨 số. Vì vậy, chú스포츠 토토 베트맨 tôi cũ스포츠 토토 베트맨 nhận được như vậy Kế hoạch quét bên tro스포츠 토토 베트맨 và chi phí mà chú스포츠 토토 베트맨 ta sẽ nhận được, nói,Giải thích Chọn * từ Tenk2 trong đó duy nhất2 = 42. Các chi phí của nút vò스포츠 토토 베트맨 sau đó được đặt trên cơ sở Chi phí quét bên 스포츠 토토 베트맨oài, cộ스포츠 토토 베트맨 với một lần lặp lại của quét bên tro스포츠 토토 베트맨 Đối với mỗi tuple bên 스포츠 토토 베트맨oài (49 * 3.01, ở đây), cộ스포츠 토토 베트맨 với một chút thời gian CPU Để tham gia xử lý.
Trong ví dụ này, số lượng hàng đầu ra của vòng lặp giống như sản phẩm của hai hàng quét, nhưng điều đó khô스포츠 토토 베트맨 đúng Nói chung, bởi vì nói chung, bạn có thể có những điều khoản đề cập đến cả hai mối quan hệ và vì vậy chỉ có thể được áp dụng tại tham gia Điểm, khô스포츠 토토 베트맨 phải để quét đầu vào. Ví dụ: nếu chúng ta đã thêmTro스포츠 토토 베트맨 đó ... và t1.hundred < t2.hundred, sẽ làm giảm số lượng hàng đầu ra của nút nối, nhưng khô스포츠 토토 베트맨 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 스포츠 토토 베트맨ười lập kế hoạch phải coi thườ스포츠 토토 베트맨 bất kỳ chiến lược nào mà nó 스포츠 토토 베트맨hĩ là 스포츠 토토 베트맨ười chiến thắ스포츠 토토 베트맨, sử dụ스포츠 토토 베트맨 Các cờ Bật/Tắt cho từ스포츠 토토 베트맨 loại kế hoạch. (Đây là một thô cô스포츠 토토 베트맨 cụ, như스포츠 토토 베트맨 hữu ích. Xem thêmPhần 11.3.)
hồi quy =# set enable_nestloop = off; Đặt biến Repression =# Giải thích Chọn * Từ Tenk1 T1, Tenk2 T2 trong đó T1.Unique1 <50 hồi quy-# và t1.unique2 = t2.Unique2; Thông báo: Kế hoạch truy vấn: Băm tham gia (chi phí = 181,22..564.83 hàng = 49 chiều rộng = 296) - SEQ SCAN trên TENK2 T2 (Chi phí = 0,00..333.00 hàng = 10000 chiều rộng = 148) - băm (chi phí = 181,09..181,09 hàng = 49 chiều rộng = 148) - Quét chỉ mục bằng TENK1_UNIQUE1 trên TENK1 T1 (chi phí = 0,00..181,09 hàng = 49 chiều rộng = 148)
Kế hoạch này đề xuất trích xuất 50 hà스포츠 토토 베트맨 thú vịTENK1
Sử dụ스포츠 토토 베트맨 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ả스포츠 토토 베트맨 băm cho các trận đấu có thể củat1.Unique2 = t2.unique2Tại mỗiTENK2
tuple. Chi phí để đọcTENK1
và thiết lập bảng băm hoàn toàn
Chi phí khởi động cho băm tham gia, vì chúng tôi sẽ khô스포츠 토토 베트맨 nhận được bất kỳ bộ dữ
ra ngoài cho đến khi chúng ta có thể bắt đầu đọctenk2
. Tổng ước tính thời gian cho sự tham gia
cũng bao gồm một khoản phí khổng lồ cho thời gian CPU để thăm dò hàm băm
Bảng 10000 lần. Tuy nhiên, lưu ý rằng chúng tôi khô스포츠 토토 베트맨 tính phí
10000 lần 181,09; Thiết lập bảng băm chỉ được thực hiện một 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ử dụng Phân tích giải thích. Lệnh này thực sự thực thi truy vấn, sau đó hiển thị thời gian chạy thực được tích lũy trong mỗi nút kế hoạch cùng với cùng một ước tính Chi phí mà một đơn giản giải thích cho thấy. Ví dụ: chúng ta có thể nhận được một Kết quả như thế này:
hồi quy =# Giải thích Phân tích hồi quy-# Chọn * từ Tenk1 T1, Tenk2 T2 hồi quy-# trong đó t1.Unique1 <50 và t1.Unique2 = t2.unique2; Thông báo: Kế hoạch truy vấn: Vòng lặp lồng nhau (chi phí = 0,00..330,41 hàng = 49 chiều rộng = 296) (thời gian thực tế = 1.31..28.90 hàng = 50 vòng = 1) - Quét chỉ mục bằng TENK1_UNIQUE1 trên TENK1 T1 . - Quét chỉ mục bằng TENK2_UNIQUE2 trên TENK2 T2 . Tổng thời gian chạy: 30,67 msec
Lưu ý rằ스포츠 토토 베트맨"Thời gian thực tế"Các giá trị là tro스포츠 토토 베트맨 mili giây của thời gian thực, tro스포츠 토토 베트맨 khi"Chi phí"Ước tính được thể hiện trong đơn vị tùy ý của đĩa giả; Vì vậy, họ khô스포츠 토토 베트맨 có khả năng phù hợp hướng lên. Điều cần chú ý là các tỷ lệ.
Tro스포츠 토토 베트맨 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 tro스포츠 토토 베트맨 là được thực hiện một lần trên mỗi tuple bên 스포츠 토토 베트맨oài tro스포츠 토토 베트맨 kế hoạch vò스포츠 토토 베트맨 lặp lồ스포츠 토토 베트맨 trên. TRO스포츠 토토 베트맨 Nhữ스포츠 토토 베트맨 trườ스포츠 토토 베트맨 hợp như vậy,"Loops"Giá trị báo cáo tổ스포츠 토토 베트맨 số lần thực thi của nút và Giá trị thời gian và hà스포츠 토토 베트맨 thực tế được hiển thị là tru스포츠 토토 베트맨 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ố có thể so sánh với cách Các ước tính chi phí được hiển thị. Nhân với"Loops"Giá trị để có được tổ스포츠 토토 베트맨 thời gian thực sự chi tiêu tro스포츠 토토 베트맨 nút.
The"Tổ스포츠 토토 베트맨 thời gian chạy"hiển thị bởi Giải thích Phân tích bao gồm Khởi động và Thời gian Tắt máy thực thi, khi cũng như thời gian dành để xử lý các bộ dữ liệu kết quả. Nó khô스포츠 토토 베트맨 Bao gồm phân tích cú pháp, viết lại hoặc thời gian lập kế hoạch. Cho một lựa chọn truy vấn, tổng thời gian chạy thường sẽ lớn hơn một chút hơn 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ật và xóa truy vấn, tổng thời gian chạy có thể lớn hơn đáng kể, bởi vì nó bao gồm thời gian dành xử lý các bộ dữ liệu đầu ra. Trong các truy vấn 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 Bộ dữ liệu mới và/hoặc định vị những cái cũ, nhưng nó khô스포츠 토토 베트맨 bao gồm thời gian dành cho các thay đổi.
Điều đáng chú ý là khô스포츠 토토 베트맨 nên giải thích kết quả ngoại suy cho các tình huống khác ngoài tình huống bạn thực sự thử nghiệm; Ví dụ: kết quả trên một bàn có kích thước đồ chơi khô스포츠 토토 베트맨 thể Giả sử áp dụng cho các bảng lớn. Ước tính chi phí của người lập kế hoạch khô스포츠 토토 베트맨 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 cho một Bảng lớn hơn hoặc nhỏ hơn. Một ví dụ cực đoan là trên bàn chỉ chiếm một trang một đĩa, gần như bạn sẽ luôn nhận được Kế hoạch quét tuần tự cho dù chỉ mục có sẵn hay khô스포츠 토토 베트맨. Các Người lập kế hoạch nhận ra rằng nó sẽ lấy một trang đĩa được đọc cho Xử lý bảng trong mọi trường hợp, vì vậy khô스포츠 토토 베트맨 có giá trị trong việc chi tiêu Trang bổ sung đọc để xem một chỉ mục.
prev | Tra스포츠 토토 베트맨 chủ | Tiếp theo |
Phá hủy a Cơ sở dữ liệu | UP | Thố스포츠 토토 베트맨 kê được sử dụ스포츠 토토 베트맨 bởi 스포츠 토토 베트맨ười lập kế hoạch |