傳統資料庫應用程式需建立並持續保持連線,但在高併發、Web 環境下極不實際,主要痛點有三:
- 連線資源有限:資料庫僅能維持少量併發連線,過多連線會拖垮效能。
- Web 無狀態特性:瀏覽器請求結束即斷線,無法知曉用戶端是否仍需存取資料,維持長連線不可行。
- 多控制項共用連線複雜:多個 UI 控制項需操作資料時,需建立多連線或設計複雜傳遞機制。
ADO.NET 因此採用離線資料模型:應用程式僅在取得或更新資料時建立連線,其餘時間保持斷開。資料庫不被閒置連線佔用,可服務更多用戶。此外,DataSet 以 XML 描述資料,實現異構資料庫間的資料交換。
DataSet 核心特性
- 記憶體中快取的記錄集合,可包含多個資料表、關聯與條件約束。
- 視為記憶體中的子資料庫,僅在填充/更新時連線。
- 與資料庫無實際持久關聯,操作彈性高。