+44(0) 1234 567 890 info@domainname.com

Tuesday, January 29, 2013

Cải thiện tốc độ và hiệu suất web ASP.NET - Phần 2

12:29 AM

Share it Please

Hôm nay mình xin giới thiệu tiếp những thủ thuật khác để tăng hiệu suất cho web aspnet. Bài này thiên về cách tạo câu truy vấn và truy xuất dữ liệu trong SQL sao cho hiệu quả và tăng hiệu năng cho web ASP.NET. Vì đối những server tầm trung hoặc yếu và mạng của người dùng không ổn định thì việc chờ đợi web load được dữ liệu về thì cực kì mất thời gian và cực kì khó chịu :((. Ở đây mình chỉ nêu một vài cách cơ bản để tối ưu truy vấn SQL, mình sẽ có một bài khác về cách tối ưu truy vấn SQL.

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.

0 comments:

Post a Comment

Tags

Thủ thuật pc Góc Làm Đẹp Làm Đẹp Da Thủ Thuật Blogspot - Wordpress - Joomla Thủ Thuật Network Giải trí Thủ Thuật Hay thu-thuat-blogspot ASP.NET Danh bạ Lập trình CSDL Thủ Thuật Blog Lập trình Thủ thuật Excel Phần Mềm Góc Phụ Nữ SEO TT Windows Lý Thuyết CCNA Dịch Vụ Hot CCNA Sức Khỏe - Đời Sống Office Thủ Thuật Mobile Thủ Thuật Win 8 Download Xây dựng liên kết Android Thủ thuật Word Website thu-thuat-internet Forum PHP Tư Vấn Làm Đẹp Mẹo Vặt tien-ich-widget Đọc báo ASP.NET MVC Ca nhạc Hỏi Đáp Thơ Vui Thủ Thuật Game vui-nhon Download Phần Mềm - Crack VBA Excel thu-thuat-facebook Cuộc sống Download Game Photoshop Thủ thuật Blogspot VBA trong Excel Widget Blogspot Địa Điểm Hot C# CSS Giới Tính Tài Liệu Đại học Chuyện lạ Clip Hài - Video Hot Góc Kỹ Năng Góc Sinh Viên Liên Minh Huyền Thoại Sao Sức Khỏe Giới Tính Thủ Thuật Tin Học template-blogger Chuyện Của Sao Design Pattern Kiến thức cơ bản PM hệ thống Thủ thuật Facebook Tin nổi bật Đề thi LAB CCNA Love story Học và hỏi Môn toán Spring.NET Tủ Sách Video lam-quen-voi-blogger Ảnh Vui Bảng Giá Con trai Cẩm nang du học Dependency Injection Hình ảnh Kinh nghiệm học Kỹ Năng Xin Việc Luật Pháp ORM Tin nóng Tiện ích Truyện cười Việt Nam hinh-anh-hai-huoc tho-vui-con-coc thu-thuat-phan-mem Blogspot Distributed Technologies Hợp Tác Kinh Doanh Khám phá MVP NHibernate Photoshop Action Thủ Thuật Win 7 Trẻ Tư Vấn Tiêu Dùng VietYeah TV Xã Hội thu-thuat-SEO Blogger Templates Game flash Khối B Nghịch Nhân vật Phong Cách Slider Thư giãn Thủ thuật Youtube WCF facebook hinh-anh-dep thu-thuat-may-tinh Đời Sống 2010 Con gái Download Game Mobile Drivers External Post Học Nấu Ăn Học vui Làm Đẹp Tóc MVC N-Tier PM hệ điều hành Sao Quốc tế Thủ thuật internet Thông Tin Tin Tức Hot Tivi Truyện Hay Tuyển Dụng Xả Stress Youtube anh-bia-facebook san-pham-google ung-dung-website Đáp án Đề thi thử AOP Abstract Factory Cool stuffs Design Principles Khối A Thông tin mạng Tình yêu lập trình viên phan-mem-van-phong thu-thuat-windows-7 thu-thuat-windows-8 Điện Tử Ảnh Nghệ Thuật 2009 2011 2012 Adapter Pattern Công Nghệ Factory Method Game Hình sự Khối D Kiếm Tiền Qua Mạng Kỹ Năng Nơi Công Sở LinQ Menu Miễn phí Photoshop PSD Sexy Singleton Sành điệu Thủ Thuật Di Động Tin nhắn SMS phan-mem-do-hoa phan-mem-tien-ich Đọc xong vọc liền .NET Remoting 10-thing series 2013 Ajax Bridge Pattern Bóng đá Castle Windsor Chơi Game Online Cover Facebook Có Thể Bạn Chưa Biết Download Phim Dịch vụ Fedora Garbage Collection Google Plus Góc Tâm Sự HTML Hibernate Hài hước IoC JSF Javascript Jquery Khối C Kỹ Năng Bán Hàng Kỹ Năng Thuyết Trình Lazy Load Linux Lock Log4Net MWC Memory Management Mock Multi-Thread MySQL Môn sử Mặc Đẹp Mẹ Và Bé Mỹ Tâm NUnit Ngọc Trinh Nhịp sống trẻ PM văn phòng POCO Passive View Photoshop tách ảnh Phạm Băng Băng Phầm Mềm Crack PostSharp Primefaces Shop Bít Tuốt Strategy Pattern Supervising Controller Sự kiện Thể thao Thủ Thuật Office Tin đặc biệt Toán Tình bạn Tình dục Tốt nghiệp Unit Testing VBA Word Virtual Server Văn WMC 2012 Windows Service acc fshare acc mien phi anh-nghe-thuat cntt di dong di động dropbox dung luong dropbox fshare hinh nen hinh nen dep hình nền job mac os mang xa hoi may ao mạng xã hội social tang dung luong dropbox thu-thuat-mobile thu-thuat-windows-xp tháng 2 top truyen-cuoi tăng dung lượng dropbox vmware Ảnh đẹp