quang cao hosting

Biên dịch các câu truy vấn LINQ để tăng tốc độ ứng dụng

Xem: 3842    Tải: 0   Thảo luận: 0   Mục: Cơ sở dữ liệu   Lĩnh vực: Khác

0 điểm   ( 8 đánh giá ) File đã được kiểm thử

Bài viết này nhằm hướng dẫn cách thức biên dịch câu lệnh LINQ để nhằm giúp tăng tốc độ ứng dụng.

Sự ra đời của LINQ (Language Integrated Query) đã giúp ích rất nhiều cho các lập trình viên .NET, thay vì phải viết các vòng lặp khi tìm kiếm phần tử trong các mảng, hay phải viết các câu lệnh SQL khó nhớ khi truy xuất CSDL, lập trình viên chỉ cần viết những câu lệnh LINQ ngắn gọn dễ hiểu để truy vấn dữ liệu.

Tuy nhiên LINQ cũng có những nhược điểm, một trong các nhược điểm quan trọng là sử dụng LINQ sẽ phần nào làm giảm tốc độ của ứng dụng; ví dụ như trong trường hợp bạn sử dụng câu lệnh LINQ để truy xuất CSDL, thì ứng dụng phải thường xuyên biên dịch câu lệnh LINQ về thành câu lệnh SQL và sau đó mới gọi lệnh SQL để truy xuất CSDL. Trong phần lớn các trường hợp thì quá trình này tác động không đáng kể đến tốc độ thực thi ứng dụng, nhưng đối với các ứng dụng đòi hỏi tốc độ thực thi cao thì bạn phải xét đến việc có nên sử dụng câu lệnh LINQ hay trực tiếp viết các câu lệnh SQL. Nếu bạn muốn tiếp tục sử dụng LINQ giảm bớt lượng code mà bạn phải viết, thì trong tình huống nay bạn phải nghĩ đến viết sử dụng compiled LINQ Query (câu lệnh LINQ được biên dịch trước), tức là các câu lệnh LINQ của bạn sẽ được biên dịch một tại thời điểm đầu tiên được gọi và sau đó sẽ được sử dụng lại cho các lần gọi tiếp theo.

Một câu lệnh LINQ thông thường sẽ như thế này:

Trong trường hợp bạn muốn biên dịch câu lệnh LINQ từ trước thì bạn sẽ viết lại các dòng lệnh nói trên. Đầu tiên bạn sẽ viết một hàm:

Và sau đó bạn sẽ gọi hàm bằng cách như sau:

Câu lệnh LINQ được biên dịch khi trình biên dịch bắt gặp lời gọi CompiledQuery.Compile

Tuy nhiên bạn cũng cần lưu ý rằng, câu lệnh compiled LINQ cần phải được chạy một lần để biên dịch và cache lại rồi sau đó nó mới thể hiện hiệu quả. Và trong trường hợp bạn sử dụng câu lệnh LINQ phức tạp thì việc biên dịch và cache lại cũng khá tốn thời gian. Tuy nhiên, trong hầu hết các trường hợp, việc sử dụng câu lệnh compiled LINQ sẽ giúp tăng tốc độ ứng dụng. (Code mẫu đính kèm sẽ được cập nhật khi chức năng file đính kèm được mở).

Biên dịch các câu truy vấn LINQ để tăng tốc độ ứng dụng

Biên dịch các câu truy vấn LINQ để tăng tốc độ ứng dụng Đăng ngày 10-02-2014  Bài viết này nhằm hướng dẫn cách thức biên dịch câu lệnh LINQ để nhằm giúp tăng tốc độ ứng dụng. 5/10 3842

Thảo luận:

Để bình luận bạn phải đăng nhập thành viên.

File tương tự

Files cùng mục

 
File gợi ý cho bạn
File tải nhiều nhất
Megacode.vn - Thư viện mã nguồn chia sẻ, tải file cho cộng đồng
Copyright © 2013-2021. All rights reserved. Bản quyền thuộc VinaGon
Email: info@vinagon.com
Hotline: 086.924.3838