Phần trước mình đã giới thiệu cho các bạn một số cách để tăng tốc và cải thiện hiệu suất cho web ASP.NET. Hôm nay mình xin tiếp tục giới thiệu một số các thủ thuật khác để tối ưu hiệu suất và tốc độ website ASP.NET.
Bài viết nằm trong Serie Tối ưu hiệu suất và tốc độ website ASP.NET
Phần trước: Tối ưu hiệu suất và tốc độ website ASP.NET P1
11. Sử dụng connection pooling
Khi bạn request data từ server bạn cần phải thiết lập 1 kết nối đến server và điều này sẽ tiêu hao khá nhiều tài nguyên của server. Và điều gì sẽ xảy ra nếu bạn phải request nhiều lần đến server để lấy dữ liệu? Sẽ rất tốn tài nguyên nếu chúng ta làm như vậy. Vì thế connection pooling đã được tạo ra để sử dụng lại những kết nối đã được thiết lập.
12. Luôn nhớ đóng các kết nối server và truy vấn dữ liệu
Đây là điều cực kì quan trọng nếu bạn không muốn web bị crash liên tục vì bị quá tải. Hãy dùng connection.Close() hoặc SqlDataAdapter.Dispose() hoặc các câu lệnh tương tự để ngắt kết nối và truy vấn khi đã thực thi xong.
13. Tối ưu những câu truy vấn
Để lấy được dữ liệu thì điều cần thiết là phải có câu truy vấn. Nhưng truy vấn như thế nào để tránh gây nghẽn database server và tốn tài nguyên. Hãy luôn nhớ chỉ select những gì chúng ta cần. Mọi người thường có thói quen truy vấn tất cả từ bảng hoặc view mà không bao giờ dùng đến một số trường trong đó.
14. Sử dụng thủ tục(Stored Procedure)
Stored procedure giúp chúng ta tăng tính bảo mật và tránh bị tấn công kiểu sql injection. Nhưng ngoài ra nếu chúng ta sử dụng nó sẽ giúp tăng tốc thực thi các câu lệnh so với việc dùng câu truy vấn bình thường.
15. Khi nào sử dụng SqlDataReader và SqlDataAdapter
Nhiều người trong chúng ta thường sử dụng 2 lớp này để truy vấn dữ liệu và nghĩ rằng chúng giống nhau nhưng không. Nhìn bề ngoài thì có vẻ chúng khá giống nhau về cách thức hoạt động nhưng SqlDataReader là class được xây dựng để cho việc truy vấn dữ liệu và fill vào DataSet hoặc DataTable. Nó nhanh hơn SqlDataAdapter. Còn SqDatalAdapter dùng để thực thi các câu lệnh updating database sẽ tốt hơn vì nó cho phép bạn đóng kết nối khi bạn muốn hoặc thậm chí là có thể tự động đóng kết nối, nó lưu kết quả vào bộ nhớ và bạn có thể lặp qua các bản ghi bao nhiêu lần tùy ý nhưng cái giá phải trả là bạn sẽ tốn khá nhiều bộ nhớ.
16. Đánh index cho các câu truy vấn
Được sử dụng trong truy vấn có Where,Order By, Distinct, Group By,…
17. Sử dụng một tập lệnh trong truy vấn
Nếu trong câu truy vấn của bạn có khá nhiều lệnh hãy ghi nhớ sử dụng tập lệnh(batch) với từ khóa go.\
18. Sử dụng index trên các khóa ngoại
Nó sẽ giúp bạn tăng tốc truy vấn cho các câu lệnh.
19.Sử dụng SETNOCOUNT trong câu lệnh sql
Khi bạn thực thi 1 câu lệnh nó luôn hiển thì 1 dòng là X row(s) affected. Để tắt cái này đi bạn hãy dùng SETNOCOUNT. Tuy không giảm được nhiều tài nguyên server nhưng nếu bạn select hoặc update khoảng vài nghìn bản ghi cho đến hàng chục nghìn bản ghi thì nó sẽ giúp bạn khá đáng kể trong việc tiết kiệm tài nguyên.
20. Tránh dùng view lồng nhau
View khá thuận tiện cho việc tạo ra 1 khung nhìn trên nhiều bảng kết hợp với nhau nhưng truy vấn từ view vẫn khá chậm vì thế nếu bạn sử dụng view lồng nhau thì sẽ còn chậm hơn nữa tuy việc này SQL không cấm nhưng bạn không nên sử dụng quá nhiều.
Phần tiếp:
- Tối ưu hiệu suất và tốc độ website ASP.NET P3
- Tối ưu hiệu suất và tốc độ website ASP.NET P4