我想了解數據集的用途,我們可以使用簡單的SQL語句直接與數據庫通信。 另外,哪種方式更好?更新數據集中的數據,然後將它們一次傳送到數據庫或直接更新數據庫?數據集的目的是什麼?
回答
我想了解的數據集的目的時,我們可以使用數據庫中的直接通信的直接訪問簡單的SQL語句。
爲什麼在冰箱裏有食物,當你每次想要吃東西時都可以直接去雜貨店?因爲每次想去雜貨店吃點心都是極其不方便。
DataSets的用途是避免使用簡單的SQL語句直接與數據庫通信。DataSet的目的是作爲您關心的數據的廉價本地副本,以便您不必對數據庫進行昂貴的高延遲調用。他們讓你開車到,一旦,拿起你下一週需要的一切,然後把它放在廚房裏的冰箱裏,這樣當你需要的時候它就在那裏。
另外,哪種方式更好?更新數據集中的數據,然後將它們一次傳送到數據庫或直接更新數據庫?
您從網站訂購了十幾種不同的產品。哪種方式更好:一旦從製造商處獲得這些物品,或者一直等到它們全部可用並一次全部運送它們時,就一件一件地交付物品?第一種方法,你儘快得到每件物品;第二種方式具有較低的運送成本。哪種方式是更好?我們應該知道怎麼樣?這取決於你決定!
數據更新策略是更好是以更好地滿足客戶需求的方式完成此事的人。您還沒有告訴我們您的客戶的「更好」指標是什麼,因此無法回答這個問題。您的客戶需要什麼 - 最新的東西,只要它可用,或低運費?
我通常喜歡練習,如果我需要在大量數據集上執行一堆分析處理,我將填充一個數據集(或數據表,取決於結構)。這樣它就是從數據庫中斷開的模型。
但是對於DML查詢,我更喜歡直接對數據庫進行快速命中(最好通過存儲的特效)。我發現這是最高效的,並且經過良好調優的查詢在數據庫上並不糟糕。
數據集支持斷開連接的體系結構。您可以添加本地數據,從中刪除,然後使用SqlAdapter,您可以將所有數據提交到數據庫。你甚至可以直接將xml文件加載到數據集中。這真的取決於你的要求是什麼。您甚至可以在DataSet中的表之間設置內存關係。
順便說一下,使用嵌入在應用程序中的直接sql查詢是設計應用程序真的非常糟糕和糟糕的方式。您的應用程序將傾向於「Sql注入」。其次,如果你編寫像嵌入在應用程序中的查詢,Sql Server必須每次都執行它的執行計劃,而存儲過程是編譯的,並且它的執行在編譯時已經決定。此外,Sql服務器可以在數據變大時更改它的計劃。你會通過這個獲得性能提升。至少使用存儲過程並在其中驗證垃圾輸入。它們固有地抵抗Sql注入。
存儲過程和數據集是要走的路。
看到這個圖:
編輯:如果你到.NET Framework 3.5的,4.0你可以像使用實體框架,NHibernate的,亞音速奧姆斯的數量。 ORM更真實地代表您的商業模式。如果ORM中不支持某些功能,則可以始終使用帶有ORM的存儲過程。
例如:如果您正在編寫遞歸CTE(公用表表達式)存儲過程非常有用。如果你爲此使用實體框架,你會遇到太多的問題。
This page詳細解釋了在哪些情況下你應該使用一個Dataset
和在何種情況下使用的數據庫
- 1. 什麼是MIR數據集?
- 2. VAR數據集的範圍是什麼?
- 3. 什麼是BaseAdapter的數據集
- 4. TensorFlow中圖集的目的是什麼?
- 5. 排序集的目的是什麼?
- 6. Auth0 SSO集成的目的是什麼?
- 7. 數據庫轉軸 - 目的是什麼?
- 8. 什麼是集羣名稱參數從kubernetes controller_manager的目的是什麼?
- 9. 什麼是這個數據集的最佳數據庫?
- 10. 數據採集的數據庫是什麼?
- 11. 什麼是最好的 - 數據集或數據讀取器?
- 12. 什麼是數據庫中的數據集?
- 13. Apache Jena:什麼是RDF數據集?
- 14. 什麼是dataframe.stack數據集()返回
- 15. 什麼是Oracle數據集成器?
- 16. 創建數據庫,什麼是我的目的正確的字符集
- 17. 在magento CE 1.7中有數據目錄的目的是什麼?
- 18. C#集合的一般區別是什麼?底層數據結構是什麼?
- 19. 爲什麼我的數據庫對象的集合是空的?
- 20. çargv的是什麼數據
- 21. 什麼是我的數據?
- 22. AntiForgery.GetTokens:什麼是oldCookieToken參數的目的是什麼?
- 23. 數組在numpy/sklearn數據集中的含義是什麼? python
- 24. 什麼是我的數據集的好方法推薦系統?
- 25. `complete`參數的目的是什麼?
- 26. atexit函數的目的是什麼?
- 27. eval函數的目的是什麼?
- 28. '身份函數'的目的是什麼?
- 29. KeyedCollection是什麼的集合?
- 30. 集團是做什麼的?
感謝您的解釋:D – Lihini
順便說一句,沒有客戶。就我自己。這只是我爲實踐而做的一個庫存管理系統。由於數據被反覆用於查看和更新,我猜數據集是答案。但是,仍然存在這樣的問題,即在系統發生故障的情況下,用戶完成的所有工作都將丟失,除非數據庫更新爲用戶完成的每次更新。數據集可以防止這種情況嗎? – Lihini
@Lizzie:這是一個很好的候選人的新問題。 –