Tôi không giỏi SQL.Làm thế nào để tăng tốc độ tham gia đơn giản
Tôi đang tìm kiếm một cách để tăng tốc độ một đơn giản tham gia như thế này:
SELECT
E.expressionID,
A.attributeName,
A.attributeValue
FROM
attributes A
JOIN
expressions E
ON
E.attributeId = A.attributeId
Tôi đang làm hàng chục này ngàn lần và nó lấy ngày càng nhiều như bảng được lớn hơn. Tôi đang nghĩ đến các chỉ mục - Nếu tôi tăng tốc các lựa chọn trên các bảng đơn, tôi có thể đặt các chỉ mục nonclustered trên expressionID cho bảng biểu thức và một bảng khác trên (attributeName, attributeValue) cho bảng thuộc tính - nhưng tôi không ' t biết làm thế nào điều này có thể áp dụng cho tham gia.
EDIT: Tôi đã có một nhóm chỉ số trên expressionId (PK), attributeId (PK, FK) trên bảng biểu và một clustered index trên attributeId (PK) trên bảng thuộc tính
Tôi đã thấy câu hỏi this nhưng tôi yêu cầu một cái gì đó tổng quát hơn và có lẽ đơn giản hơn nhiều.
Bất kỳ trợ giúp nào được đánh giá cao!
Bạn có mệnh đề WHERE trong truy vấn này không? Có bao nhiêu hàng đang được trả lại? – JerSchneid
no WHERE - Tôi đang sử dụng bảng này để điền bảng tạm thời, sau đó được lọc xuống với một số mệnh đề phụ thuộc vào tập hợp các cặp tên-giá trị để có được biểu thức phù hợpId – JohnIdol
Bạn nên đăng nửa sau của truy vấn. Tôi đặt cược chậm lại là do chèn một số lượng lớn các bản ghi vào bảng tạm thời đó. Nó có thể có thể được cải thiện rất nhiều bằng cách kết hợp chúng để các mệnh đề WHERE được sử dụng trước đó để ngăn chặn chèn lớn. – JerSchneid