現在在制造業從事開發ERP系統,絕大部分的復雜業務都是在存盤程序中實作,雖然現在業務量小,并行壓力不大,但越往后問題肯定越大,如果以后業務代碼都在C#中撰寫,資料庫回歸最基本的應用(增刪改查),那么資料庫的增刪改查也是要用存盤程序實作嗎?只是把表中的資料抽出來,在后端使用Linq實作嗎?使用WebServiec把每一張表分成一個介面,是否也能緩解壓力呢
uj5u.com熱心網友回復:
這人不能一概而論吧,要看實際的業務場景。有些時候,分攤壓力的同時也增加了服務器整體的壓力。反之亦然。我作業中的經驗是,對資料完整性要求不高的場景,就分開。反之就用存盤程序讓資料庫一次性干完。
另外,這個和資料庫也有一定的關系,比如:oracle本身就比較強大,你無論怎么弄都可以。但如果mysql就不行了,有些時候寫在存盤程序中反而效率還低了。
總之,我個人的理解。這個不是一個純資料庫的問題,關鍵是你的業務邏輯。
uj5u.com熱心網友回復:
你說的復雜業務可能是資料處理和報表,要區分它們。就拿生產來說,生產計劃,設定生成計劃所要的前置資訊是業務。而根據這些資訊生成的生產計劃資料是資料處理(程序相當復雜但是用戶只要一個結果就行了,并不需要了解中間的處理程序。)
這種大量的資料處理動作,用資料庫的存盤程序是最方便和最易維護的。(甚至可以單獨搞一個資料處理服務器,將基礎資料拉過去算一個結果再寫回來,防止業務資料庫崩潰。)如果你們用的是SQLSERVER 關注一下臨時表的使用,只需要加大記憶體,可以極大的提高運算速度。
uj5u.com熱心網友回復:
你現在這個認識,還不足以對系統進行改造,還是學習吸取他人經驗為主。===
現在在制造業從事開發ERP系統,絕大部分的復雜業務都是在存盤程序中實作,雖然現在業務量小,并行壓力不大,但越往后問題肯定越大,
你這問題越大的判斷,并沒有實際依據。要知道正常情況下,存盤程序性能是最高的,而不是通過c#實作。
如果以后業務代碼都在C#中撰寫,資料庫回歸最基本的應用(增刪改查),那么資料庫的增刪改查也是要用存盤程序實作嗎?
從這里可以看出,你對存盤程序是干什么的,是不清楚的。這也說明你上面說的問題越大也是胡亂判斷,因為你根本不知道存盤程序該做什么,那么你對存盤程序的所有判斷,都是偏離事實的。
我認為存盤程序的主要用途,就是整合代碼,提升性能。那么一個insert陳述句,用存盤程序封裝,能因此提高性能嗎,能提升封裝程度嗎?
只是把表中的資料抽出來,在后端使用Linq實作嗎?使用WebServiec把每一張表分成一個介面,是否也能緩解壓力呢
一張表一個webservice,你博客園看多了。webservice也是淘汰的技術,你還拿出來說。
uj5u.com熱心網友回復:
疑問在于你需要主動去接收新的東西,就連你們ERP的標桿Sap都在開始使用ETL,Spark,storm,datalake,grahpsql在全世界IT在討論Big data時候,中臺,你們在討論insert,select,在討論一張表一個webservice
ps:順帶說一下,Bigdata不是XX園認為的什么幾千萬資料,幾億資料,什么left join,什么索引,也不是這里人們自我麻醉的“我不是Bat,我接觸不到這些,活該net是最底層”
Bigdata來源于一本書“Big Brother”----------Big不代表大,big代表的是無處不在。就ERP來說,本來就是無處不在的典型,人們想構建ERP,就是想要他無處不在,so,你就應該去關心“無處不在”的技術,而不是討論一張表,幾個left join
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/56871.html
標籤:C#
