AFAIK, Sự khác biệt chính là phiên là mỗi người dùng, trong khi bộ nhớ cache sẽ dành cho các mục có ứng dụng.
Như đã lưu ý trong các câu trả lời khác, bạn có thể lưu trữ mỗi thông tin người dùng trong bộ nhớ cache, cung cấp cho bạn khóa (theo phiên hoặc cookie). Sau đó, bạn sẽ có nhiều quyền kiểm soát hơn để hết hạn các mục trong bộ nhớ cache và cũng đặt các phụ thuộc vào chúng. Vì vậy, nếu DataTable trong câu hỏi sẽ thay đổi một cách thường xuyên, thì bộ nhớ đệm có lẽ là một tùy chọn thích hợp. Nếu không, nếu đó là phiên tĩnh có thể phù hợp hơn. Steven Smith has an excellent video on caching at dnrtv đáng để trả tiền.
Nó thực sự phụ thuộc vào những gì bạn đang cố gắng đạt được, bạn đã có bao nhiêu thời gian. Có một số lựa chọn thay thế khác để xem xét về cách bạn lưu trữ trạng thái trong một ứng dụng. Tùy thuộc vào độ lớn của bảng, bạn có thể xem xét lưu trữ trạng thái trong một cookie (được mã hóa nếu đó là thông tin nhạy cảm). Ngoài ra, nếu đó là ứng dụng dữ liệu phạm vi bạn lạnh sử dụng một trường tĩnh trên một trang hoặc lớp học. Cũng có đối tượng Application.
Cập nhật: Tôi nghĩ rằng câu hỏi chính bạn phải tự hỏi mình, là ai sẽ xem dữ liệu này.
Are they going to access the data frequently?
(Không, đừng bận tâm).
Is it going to change?
(Không, sử dụng trường tĩnh hoặc Ứng dụng).
Is it acceptable for user a and user b to see the same results?
(Không, sử dụng bộ nhớ cache có khóa bao gồm tên người dùng và cụm từ tìm kiếm).
(Có, sử dụng bộ nhớ cache bằng cách sử dụng khóa của cụm từ tìm kiếm).
Thành thật mà nói, nếu bạn không ở xa trong sự phát triển của bạn, tôi sẽ xem xét việc đậu xe vấn đề bộ nhớ đệm/trạng thái cho một ngày sau đó - thậm chí bạn có thể không cần đến nó.
Ba quy tắc điều chỉnh hiệu suất đầu tiên là: 1. Đo lường, 2. Đo lường thêm. 3. Đo lại ...
Bạn sẽ bộ nhớ cache dữ liệu mà bạn muốn tất cả người dùng để sử dụng trên các ứng dụng. Dữ liệu có thể không thay đổi trong lịch sử. Phiên nên được sử dụng để lưu trữ dữ liệu cho ngữ cảnh của người dùng, ví dụ như nếu như kết quả lọc của dữ liệu được lưu trong bộ nhớ cache chẳng hạn. – ppumkin
*** 'HttpContext.Current.Cache vs HttpRuntime.Cache' ***? – Kiquenet
@Kiquenet Tôi ngưỡng mộ bạn nỗ lực, thực sự. – ozgur