2010-07-05 13 views
5

Trong dự án của chúng tôi, chúng tôi thường kết thúc viết các kết nối phức tạp như 3 bảng. Chúng ta có đạt được bất kỳ lợi thế hiệu suất nào bằng cách sử dụng các khung nhìn hay chúng chỉ làm cho cuộc sống của các tác giả truy vấn dễ dàng hơn? Trong trường hợp nó quan trọng, chúng tôi sử dụng MySQL. Vì vậy, nếu có bất kỳ lợi thế nào (ngoại trừ các truy vấn đơn giản hơn), hãy làm sáng tỏ.Tôi có nhận được bất kỳ lợi thế hiệu suất nào bằng cách sử dụng VIEW thay vì THAM GIA không?

Trả lời

5

Nói chung, chế độ xem bình thường không mang lại nhiều cải thiện hiệu suất so với chỉ chạy truy vấn. Tuy nhiên, hầu hết các hệ thống cơ sở dữ liệu, bao gồm MySql (tôi tin rằng ... đã được một thời gian kể từ khi tôi sử dụng nó) cung cấp một số loại Indexed hoặc Materialized xem khả năng. Thông thường, các khung nhìn như vậy có một số hạn chế hợp lý để có thể tồn tại, nhưng khi được tạo, kết quả của truy vấn sao lưu được lưu trữ trong một bảng vật lý (trong trường hợp các khung nhìn được lập chỉ mục SQL Server, một bảng trong TempDB). sau đó chịu trách nhiệm theo dõi các thay đổi đối với truy vấn cơ bản và cập nhật bản sao được lưu trong bộ nhớ cache. Các truy vấn đối với chế độ xem được lập chỉ mục/vật hoá này thường nhanh hơn nhiều, theo thứ tự truy vấn một bảng bình thường.

+0

Thnx để làm rõ –

3

Chế độ xem chỉ đơn giản là các bảng hợp lý không khác gì so với khi bạn chạy cùng một sql khi chạy. Sự khác biệt duy nhất sẽ là một dạng xem vật hoá, như sử dụng oracle, giống như một khung nhìn được lưu trong bộ nhớ cache.

+2

Tôi muốn đánh dấu câu trả lời của bạn cùng với câu trả lời chính xác của jrista nhưng dường như chỉ có một câu trả lời có thể được đánh dấu như vậy, vì vậy tôi đã trả lời cho bạn một phiếu bầu. –

1

Chế độ xem (chế độ xem bình thường) không tự cung cấp lợi thế hiệu suất trừ khi chế độ xem được lập chỉ mục (còn được gọi là chế độ xem Vật hoá) được sử dụng có nhiều hạn chế. Không phải tất cả các lượt xem đều có thể được thực hiện.

Các vấn đề liên quan