Tôi đang sử dụng một truy vấn SQL tương tự như các hình thức sau đây:ngoài trái tham gia vào hai cột vấn đề hiệu suất
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
AND table1.period = table2.period
Và đó là một trong hai cách quá chậm hoặc một cái gì đó của deadlocking vì phải mất ít nhất 4 phút để trở về. Nếu tôi thay đổi nó thành:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
WHERE table1.period = table2.period
thì nó hoạt động tốt (mặc dù không trả lại đúng số cột). Có cách nào để tăng tốc độ này không?
CẬP NHẬT: Nó làm điều tương tự nếu tôi chuyển sang hai dòng cuối cùng của truy vấn sau:
SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.period = table2.period
WHERE table1.person_uid = table2.person_uid
UPDATE 2: Đây là những thực sự xem mà tôi đang tham gia. Thật không may, họ đang ở trên một cơ sở dữ liệu tôi không có quyền kiểm soát, vì vậy tôi không thể (dễ dàng) thực hiện bất kỳ thay đổi nào đối với việc lập chỉ mục. Tôi có khuynh hướng đồng ý rằng đây là một vấn đề lập chỉ mục. Tôi sẽ đợi một lúc trước khi chấp nhận câu trả lời trong trường hợp có một số cách kỳ diệu để điều chỉnh truy vấn này mà tôi không biết. Nếu không, tôi sẽ chấp nhận một trong những câu trả lời hiện tại và cố gắng tìm ra một cách khác để làm những gì tôi muốn làm. Cảm ơn sự giúp đỡ của mọi người cho đến nay.
vui lòng cung cấp kế hoạch thực hiện cho truy vấn này – squadette