Life, SAP, Consulting, Programming, Coding, ASP.NET, Sharepoint, MVC, Javascript, PHP, WebDesign, CSS, HTML

Thấy bài viết này trên MSDN mặc dù bài viết từ năm 2002, tuy nhiên đây là bài viết bổ ích nên mình dịch ra tiếng Việt cho mọi người cùng tham khảo.

Bài viết này cung cấp cho bạn những giải pháp tốt nhất để đạt được hiệu suất tối đa, khả năng mở rộng và tận dụng các chức năng hỗ trợ khi cài đặt ứng dụng MS ADO.NET. Bài viết cũng thảo luận những kinh nghiệm thực tiễn trong việc sử dụng các đối tượng được hỗ trợ trong ADO.NET và đề xuất những kỹ thuật giúp bạn tận tối ưu thiết kế của ứng dụng ADO.NET

Bài viết bao gồm các phần:

  • Giới thiệu về .NET Framework và các projvider trong .NET Framework
  • So sánh giữa DataSetDataReader, thảo luận các tình huống sử dụng của 2 loại đối tượng
  • Giải thích cách sử dụng DataSet, CommandsConnections.
  • Tích hợp ADO.NET với XML
  • Những kỹ thuật nhỏ khi sử dụng và các vấn đề khác

.NET Framework Data Providers

Một Data provider trong .NET Framework là cầu nối giữa các ứng dụng và nguồn dữ liệu. Một .NET Framework data provider cho phép bạn lấy kết quả một truy vấn từ nguồn dữ liệu, thực thi các lệnh tại nguồn dữ liệu và đồng bộ những thay đổi trong DataSet với nguồn dữ liệu. Bài viết này hướng dẫn để sử dụng .NET Framework Data Provider một cách thích hợp nhất với nhu cầu sử dụng của bạn.

Sử dụng Data Provider nào cho phù hợp?

Xin được bỏ qua phần này. Những điểm chính cần lưu ý đó là Provider hay sử dụng nhất với MS Sql Server hiện tại là SQL Server Provider ( System.Data.SqlClient namespace)(MS SQL Server 7.0 trở lên). Với những Database Server cũ hơn, hoặc với Access database, nên sử dụng OLE DB .NET Data Provider (System.Data.OleDb namespace). Một loại nữa hay gặp là ODBC .NET Data provider(Microsoft.Data.Odbc namespace) cho những Data Source sử dụng ODBC để kết nối. Oracle cũng có Provider được cung cấp thêm từ site của MS (System.Data.OracleClient namespace). NET Framework cũng hỗ trợ cài đặt Custom Provider cho những Data Source đặc biệt dựa trên môt bộ các interfaces.

Kết nối đến cơ sở dữ liệu SQL Server 7.0 hoặc cao hơn

Để đạt được hiệu suất hoạt động cao nhất khi kết nối đến MSSQL Server 7.0 hoặc cao hơn, sử dụng SQL Server .NET Data Provider. Provider này được thiết kế để truy cập trực tiếp đến SQL Server mà không qua một lớp kỹ thuật nào khác. Sơ đồ sau minh họa các kỹ thuật được sử dụng để truy cập đến SQL Server

Kết nối đến ODBC Data Sources

ODBC .NET Data Provider được cung cấp trong namespace Microsoft.Data.Odbc, có cùng kiến trúc như .NET Data Provider for SQL Server và OLE DB. ODBC .NET Data Provider tuân thủ quy ước đặt tên sử dụng tiền tố “ODBC”(ví dụ OdbcConnection) và sử dụng chuỗi kết nối ODBC chuẩn.

Làm việc với DataReader, DataSet, DataAdapter và DataView

ADO.NET cung cấp 2 đối tượng để tiếp nhận dữ liệu quan hệ và lưu trữ trong bộ nhớ: DataSet DataReader. DataSet cung cấp một đại diện cho dữ liệu trong bộ nhớ, một tập toàn bộ dữ liệu bao gồm cả các bảng có ràng buộc, sắp xếp, cũng như là quan hệ giữa các bảng đó. DataReader cung cấp dòng một chiều, chỉ-đọc của CSDL.

Khi sử dụng một DataSet, bạn thường sử dụng DataAdapter (và có thể có cả CommandBuilder) để tương tác với nguồn dữ liệu. Khi sử dụng DataSet, bạn cũng có thể sử dụng thêm môt DataView để sắp xếp, lọc dữ liệu trong DataSet. DataSet cũng có thể được thừa kế để tạo ra môt loại DataSet để cung cấp các bảng, hàn, cột như là những thuộc tính.

DataSet vs. DataReader

Để quyết định sử dụng DataSet hay là DataReader khi thiết kế ứng dụng, hãy xem xét các mức chức năng cần đến trong ứng dụng.

Sử dụng DataSet trong những trường hợp sau:

  • Cần duyệt qua nhiều bảng khác nhau trong kết quả.
  • Thao tác với dữ liệu từ nhiều nguồn (ví dụ dữ liệu được lấy từ nhiều CSDL, từ các file XML và từ DataSheet).
  • Có sự trao đổi dữ liệu giữa các Tiers và sử dụng XML Webservice. Không giống như DataReader, DataSet có thể được truyền qua mạng.
  • Sử dụng lại môt tập các hàng để đạt được hiệu suất hoạt động, bằng cách cache lại (như là để sắp xếp, lọc dữ liệu)
  • Thực hiện một lượng xử lý lớn trên các dòng. Những xử lý mở rộng trên mỗi dòng được trả về khi sử dụng DataReader buộc chặt các kết nối đang phục vụ cho DataReader dài hơn bình thường, vì thế sẽ ảnh hưởng đến hiệu suất.
  • Xử lý dữ liệu sử dụng các operations của XML như là Extensible StyleSheet Language Transformations(XLST) hay là Xpath queries.

Sử dụng DataReader khi:

  • Không cần phải cached dữ liệu
  • Đang xử lý một tập kết quả quá lớn để lưu trong bộ nhớ.
  • Cần một kết nối nhanh, dùng một lần, chỉ-có-chiều-gửi-đi và chỉ-đọc

Chú ý DataAdapter sử dụng DataReader khi đổ dữ liệu cho một DataSet . Vì thế, hiệu suất được tăng lên khi sử dụng DataReader thay cho DataSet chính là bạn sẽ tiết kiệm được không gian bộ nhớ. Tuy nhiên, sự tăng hiệu suất này là không đáng kể vì thế bạn cần phải quyết định thiết kế dựa vào những chức năng được yêu cầu của ứng dụng.

<Hết phần 1>

Advertisements

Comments on: "Best practices for using ADO.NET" (2)

  1. Best practices for using ADO.NET « Kite’s world…

    Thank you for submitting this cool story – Trackback from Up.VietGeeks.com…

  2. Cám ơn bài dịch của bạn, nó rất hay, mình đã share link bài viết này lên trang http://up.vietgeeks.com để mọi người cùng đọc, hi!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: