Cái nào tham gia nhanh hơn


12

Cái nào nhanh hơn

SELECT * FROM X INNER JOIN Y ON x.Record_ID = y.ForignKey_NotIndexed_NotUnique

hoặc là

SELECT * FROM X INNER JOIN Y ON y.ForignKey_NotIndexed_NotUnique = x.Record_ID

Câu trả lời:


17

Sẽ không có sự khác biệt - công cụ truy vấn trong mssql (và trong hầu hết các công cụ cơ sở dữ liệu) sẽ xây dựng cùng một kế hoạch truy vấn cho cả hai. Bạn có thể xác minh điều này bằng cách xem gói truy vấn ước tính và thực tế trong SQL Workbench.


10

Trình tối ưu hóa sẽ bỏ qua điều này vì nó là một THAM GIA giống hệt nhau.

SQL là khai báo, không phải là thủ tục và truy vấn sẽ được đánh giá trong toto, không phải dòng sau dòng.


4

Làm thế nào về việc tạo một bài kiểm tra sử dụng dữ liệu của riêng bạn để trả lời câu hỏi của bạn?

Nếu bạn chỉ học một điều về lập trình cơ sở dữ liệu, thì thường không bao giờ có một kích thước phù hợp với tất cả giải pháp cho mọi thứ. Tất nhiên có những cách thực hành tốt nhất, nhưng nhìn chung nó luôn luôn tùy từng trường hợp.

Lý do tôi nói điều này là bởi vì với các truy vấn cơ sở dữ liệu quan hệ thường không có một kích thước phù hợp với tất cả các cách tiếp cận với bất kỳ điều gì. Bởi vì có một công cụ lập kế hoạch quyết định cách truy cập dữ liệu của bạn, cùng một truy vấn có thể được chiếu sáng nhanh hoặc siêu chậm tùy thuộc vào những gì công cụ lập kế hoạch chọn thực hiện với thông tin có sẵn tại bất kỳ thời điểm nào. Ví dụ, đôi khi một chỉ mục là người bạn tốt nhất của bạn một tháng và một tháng sau kẻ thù tồi tệ nhất của bạn tùy thuộc vào việc bạn đang tìm kiếm hoặc chèn dữ liệu và cách người khác đang sử dụng hệ thống trong khi bạn đang chạy truy vấn. Vì vậy, tôi luôn khuyên bạn nên tạo một thử nghiệm chứng minh cho trường hợp sử dụng của bạn cách truy vấn này sẽ thực hiện. Và thậm chí sau đó kết quả của bạn có thể thay đổi theo thời gian và bạn sẽ quay lại để tối ưu hóa khi dữ liệu và thay đổi sử dụng.

Tôi nghĩ rằng câu trả lời bạn sẽ nhận được từ stackoverflow sẽ là câu trả lời trong sách giáo khoa, không phải câu trả lời trong thế giới thực mà chỉ môi trường của bạn có thể cung cấp. Và cuối cùng, kết quả thế giới thực của bạn mới là vấn đề.

Bây giờ truy vấn đơn giản của bạn mà bạn đang hiển thị ở đây nên có cùng một hiệu suất khôn ngoan. Nhưng ngay cả sau đó tôi nói kiểm tra nó và chứng minh nếu bạn đang đặt câu hỏi. Tôi sẽ tin tưởng vào kết quả trước khi tôi tin tưởng câu trả lời của bất kỳ ai kể cả của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.