Tối ưu hóa truy vấn Firebird
Tối ưu hóa truy vấn Firebird bao gồm cách các câu lệnh SELECT được thực thi: kế hoạch (plan), thống kê, phương pháp truy cập, các mẫu tinh chỉnh, và cách phát hiện truy vấn chậm bằng MON$ và Trace API.
Chương trình giảng dạy
-
Hiệu suất của truy vấn SELECT - cách một truy vấn được thực thi
- Phương pháp client-server
- Chuẩn bị, tạo kế hoạch, thực thi, tìm nạp, bộ đệm
-
Thống kê thực thi
- Số lần đọc, ghi, tìm nạp, thời gian
- Bộ đệm cơ sở dữ liệu, đĩa, CPU
- Cách rác (garbage) ảnh hưởng đến thực thi
- Cache hits (Classic vs SuperServer)
-
Phương pháp truy cập / đường dẫn dữ liệu
- Quét NATURAL
- Tìm kiếm INDEX: cây B-tree, con trỏ bản ghi, hướng, ví dụ
- Sử dụng chỉ mục bắt buộc, kết hợp bit của các chỉ mục
- Bản số bảng và độ chọn lọc của chỉ mục
- Tắt chỉ mục trong WHERE
- INDEX ORDER vs SORT (cài đặt
firebird.conf) - Tắt chỉ mục trong ORDER BY / GROUP BY
- Kế hoạch trong stored procedures và views
-
Tinh chỉnh truy vấn
- Cách đọc một PLAN
- Các tinh chỉnh của bộ tối ưu hóa
WHERE FIELD IN (…)- LIKE, CONTAINING, STARTING WITH
- JOIN: ngầm định vs tường minh, join sai, LEFT/RIGHT, tự join
- UPDATE + SELECT
- MAX, MIN, COUNT, AVG, SUM
- IN vs EXISTS vs MERGE
WHERE (X AND Y) OR (K AND N)
-
Theo dõi truy vấn chậm bằng MON$ và Trace API
- MON$ và Trace là gì
- Các trường MON$ quan trọng
- Tham số và đầu ra của Trace API
- Công cụ (bao gồm giám sát HQbird)