我想了解數據集的用途,我們可以使用簡單的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. 數據庫轉軸 - 目的是什麼?
- 3. 排序集的目的是什麼?
- 4. Auth0 SSO集成的目的是什麼?
- 5. 什麼是集羣名稱參數從kubernetes controller_manager的目的是什麼?
- 6. 數據採集的數據庫是什麼?
- 7. 什麼是最好的 - 數據集或數據讀取器?
- 8. Apache Jena:什麼是RDF數據集?
- 9. 什麼是Oracle數據集成器?
- 10. 什麼是dataframe.stack數據集()返回
- 11. C#集合的一般區別是什麼?底層數據結構是什麼?
- 12. 什麼是我的數據?
- 13. AntiForgery.GetTokens:什麼是oldCookieToken參數的目的是什麼?
- 14. atexit函數的目的是什麼?
- 15. '身份函數'的目的是什麼?
- 16. 集團是做什麼的?
- 17. 集合的逆是什麼?
- 18. 什麼是數據集成的最佳工具
- 19. 綁定到GridView控件的最快數據集類是什麼?
- 20. 用Java訪問數據集的最快方式是什麼?
- 21. C#數據集問題 - 引號中的值是什麼意思?
- 22. 在SSRS中生成數據集的首選方法是什麼?
- 23. 什麼是好的社交數據收集策略?
- 24. 什麼是代表多個集合的數據結構?
- 25. 將大數據集導入MongoDB的最佳做法是什麼?
- 26. 類型化數據集奇怪行爲的原因是什麼?
- 27. 保留大數據集的最佳策略是什麼?
- 28. Backbone中的集合/有序集合的數據結構是什麼?
- 29. mysql中REAL()數據類型的目的/要點是什麼?
- 30. 使用AWS KMS加密數據的目的是什麼?
感謝您的解釋:D – Lihini
順便說一句,沒有客戶。就我自己。這只是我爲實踐而做的一個庫存管理系統。由於數據被反覆用於查看和更新,我猜數據集是答案。但是,仍然存在這樣的問題,即在系統發生故障的情況下,用戶完成的所有工作都將丟失,除非數據庫更新爲用戶完成的每次更新。數據集可以防止這種情況嗎? – Lihini
@Lizzie:這是一個很好的候選人的新問題。 –