Linq to sql và store procedure cái nào nhanh hơn ?
Chào mọi người , mình có một thắc mắc mong mọi người giải đáp giúp mình
Mình có làm demo về web asp.net mvc tìm kiếm và phân trang dữ liệu . (với dữ liệu khoảng hơn 100000 dòng)
Cách 1 : mình sử dụng phân trang bằng toPageList của mvc . Danh sách mình trả về mình viết bằng linq thuần và mình trả ra một IQueryable ,sau đó đổ dữ liệu ra view
Cách 2 : mình custom phân trang bằng tay , không sử dụng toPageList . Mình viết một store procedure phân trang sẵn trong sql và gọi nó bằng linq ,sau đó đổ dữ liệu ra view
Mình test thử cả 2 trường hợp thì mình thấy sử dụng toPageList trả ra một IQueryable nhanh hơn việc gọi store procedure đã phân trang sẵn trong sql . Mình không hiểu tại sao mình đã phân trang sẵn trong sql mà vẫn chậm hơn so với việc gọi linq trực tiếp , vì mình thấy mọi người hay nói gọi store sẽ trả dữ liệu nhanh hơn khi gọi linq . Mình có tham khảo một số trang trên mạng ,cả trang của microsoft cũng phân trang với dữ liệu lớn cũng gọi store .Vậy cái nào mới đúng nếu dùng với số lượng dữ liệu lớn