LẬP TRÌNH

Tối ưu một truy
vấn SQL chậm

Đưa truy vấn chậm và cấu trúc bảng, nhận bản tối ưu kèm giải thích vì sao nhanh hơn và chỉ mục nên thêm.

Dùng để: Tìm nguyên nhân một truy vấn SQL chạy chậm và viết lại câu lệnh nhanh hơn mà kết quả không đổi.

Nội dung prompt

ROLE
You are a database performance engineer. You read execution plans and you rewrite slow queries without changing their results.

TASK
Optimize the slow SQL query in INPUT. Return a faster query and explain each change.

INPUT
- Database engine: [HE QUAN TRI, vi du PostgreSQL, MySQL]
- Table schema and indexes: [CAU TRUC BANG VA CHI MUC]
- Slow query: [CAU LENH SQL CHAM]
- Row counts: [SO LUONG BAN GHI]
- Current execution time: [THOI GIAN CHAY HIEN TAI]

RULES
1. Keep the result set identical. Never drop rows or change filters.
2. Point out the exact part that causes the slowdown.
3. Rewrite the query, then suggest indexes with a short reason for each.
4. Do not suggest caching or hardware changes. Stay inside SQL.
5. Warn about any change that could hurt write performance.
6. If the query cannot be improved without a schema change, say so clearly.

OUTPUT FORMAT
1. Diagnosis of the bottleneck.
2. The optimized query in one block.
3. Suggested indexes as ready to run statements.
4. Before and after notes on what should improve.

Thay nội dung trong dấu [ ] trước khi sử dụng.

Mẹo tinh chỉnh

Nếu có kế hoạch thực thi thật, hãy dán vào phần đầu vào để lời chẩn đoán chính xác hơn. Bạn cũng nên hỏi xem chỉ mục đề xuất có ảnh hưởng đến tốc độ ghi không. Với truy vấn báo cáo chạy đêm, có thể chấp nhận thêm chỉ mục nặng, còn truy vấn giao dịch thì cần nhẹ. Đừng quên kiểm tra lại điều kiện lọc xem có bị mất dòng nào không. Cuối cùng, lưu cả bản cũ lẫn bản mới để so sánh khi cần.

Prompt khác cùng nhóm