ADO.Net與ADO在資料記憶體中的差異討論

來源:互聯網
上載者:User
ado|資料

  資料的記憶體中表示形式

  在 ADO 中,資料的記憶體中表示形式為記錄集。在 ADO.NET 中,它為資料集。它們之間有重要的差異。

  表的個數

  記錄集看起來像單個表。如果記錄集將包含來自多個資料庫表的資料,則它必須使用 JOIN 查詢,將來自各個資料庫表的資料群組合到單個結果表中。

  相反,資料集是一個或多個表的集合。資料集內的表稱為資料表;明確地說,它們是 DataTable 對象。如果資料集包含來自多個資料庫表的資料,它通常將包含多個 DataTable 對象。即,每個 DataTable 對象通常對應於單個資料庫表或視圖。這樣,資料集可以模仿基礎資料庫的結構。

  資料集通常還內含項目關聯性。資料集內的關係類似於資料庫中的外鍵關係,即它使多個表中的行彼此關聯。例如,如果資料集包含一個有關投資者的表和另一個有關每個投資者的股票購買情況的表,則資料集可能還包含一個關係來串連投資者表的各個行和購買表的對應行。

  由於資料集可以儲存多個獨立的表並維護有關表之間關係的資訊,因此它可以儲存比記錄集豐富得多的資料結構,包括自關聯的表和具有多對多關係的表。

  資料導航和遊標

  在 ADO 中,您使用 ADO MoveNext 方法順序掃描記錄集的行。在 ADO.NET 中,行表示為集合,因此您可以像依次通過任何集合那樣依次通過表,或通過序號索引或主鍵索引訪問特定行。DataRelation 對象維護有關主記錄和詳細資料記錄的資訊,並提供方法使您可以擷取與正在操作的記錄相關的記錄。例如,從 Investor 表的“Nate Sun”的行開始,可以定位到 Purchase 表中描述其購買情況的那組行。

  “遊標”是資料庫元素,它控制記錄導航、更新資料的能力和其他使用者對資料庫所做更改的可見度。ADO.NET 不具有固有的遊標對象,而是包含提供傳統遊標功能的資料類。例如,在 ADO.NET DataReader 對象中提供只進、唯讀遊標的功能。有關遊標功能的更多資訊,請參見資料訪問技術。

  將開啟串連的時間降至最低

  在 ADO.NET 中,開啟串連的時間僅足夠執行資料庫操作,例如“選擇”(Select) 或“更新”(Update)。您可以將行讀入資料集中,然後在不保持與資料來源的串連的情況下使用它們。在 ADO 中,記錄集可以提供不串連的訪問,但 ADO 主要是為串連的訪問設計的。

  ADO 和 ADO.NET 中的不串連處理之間存在一個顯著差異。在 ADO 中,通過調用 OLE DB 提供者來與資料庫通訊。但在 ADO.NET 中,您通過資料配接器(OleDbDataAdapter、SqlDataAdapter、OdbcDataAdapter 或 OracleDataAdapter 對象)與資料庫通訊,這將調用 OLE DB 提供者或基礎資料來源提供的 API。ADO 和 ADO.NET 之間的主要區別在於:在 ADO.NET 中,資料配接器允許您控制將對資料集所做的更改傳輸到資料庫的方式,方法是實現效能最佳化、執行資料驗證檢查或添加其他任何額外處理。

  注意   資料配接器、資料連線、資料命令和資料讀取器是組成 .NET Framework 資料提供者的組件。Microsoft 和第三方供應商可能會提供其它提供者,這些提供者也可整合到 Visual Studio 中。有關不同 .NET 資料提供者的資訊,請參見 .NET 資料提供者。

  在應用程式間共用資料

  在應用程式間傳輸 ADO.NET 資料集比傳輸 ADO 不串連的記錄集要容易得多。若要將 ADO 不串連的記錄集從一個組件傳輸到另一個組件,請使用 COM 封送。若要在 ADO.NET 中傳輸資料,請使用資料集,它可以傳輸 XML 流。

  相對於 COM 封送,XML 檔案的傳輸提供以下便利之處:

  更豐富的資料類型

  COM 封送提供一組有限的資料類型(由 COM 標準定義的那些類型)。由於 ADO.NET 中的資料集傳輸基於 XML 格式,所以對資料類型沒有限制。因此,共用資料集的組件可以使用這些組件一般會使用的任何豐富的資料類型集。

  效能

  傳輸大型 ADO 記錄集或大型 ADO.NET 資料集會使用網路資源;隨著資料量的增長,施加於網路的壓力也在增加。ADO 和 ADO.NET 都使您可以最大限度地降低所傳輸的資料。但 ADO.NET 還提供另一個效能優勢:ADO.NET 不需要資料類型轉換。而需要 COM 封送來在組件間傳輸記錄集的 ADO,則需要將 ADO 資料類型轉換為 COM 資料類型。

  穿透防火牆

  防火牆可以影響試圖傳輸不串連的 ADO 記錄集的兩個組件。請記住,防火牆通常配置為允許 HTML 文本通過,但防止系統級請求(如 COM 封送)通過。

  因為組件使用 XML 交換 ADO.NET 資料庫,所以防火牆可以允許資料集通過。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。