談談被大家過於在乎的性能


軟件開發者最初為了做出某種功能而努力着。

當有一天,開發者們掌握了開發的門道,實現功能已經家常便飯了。

於是人們開始考慮更多問題,性能就是一個問題。

通常2-4年工作經驗的開發者會很糾結這個問題,但由於基礎參差不齊,對性能的理解也大不相同。

那些年也許我們過於在乎性能問題了。

 

誤區一:O/RM工具影響性能

發現很多人喜歡拿O/RM工具討論性能,害怕引入ORM工具以后帶來損失性能的問題,

不過據我所知目前一些主流的ORM工具性能都半斤八兩,ORM工具之間的比較不是性能問題,而是使用習慣的問題。

ORM與原生ADO.NET比較,肯定會損失一定的性能,但是帶來了提高開發效率的優勢。

據我所知,很多同行做着的OA、ERP什么的系統用戶數量都不多,

過於計較性能問題,那就是拿5%不到的特殊情況,拒絕大多數情況提高開發效率。

沒有人說用了ORM就一定要每個地方都用ORM到底。

 

誤區二:存儲過程可提高性能

采用存儲過程本身沒有什么問題,過於頻繁地用存儲過程,調試就會比較煩。

1、程序里加斷點,然后變量復制到存儲過程里加斷點調試。

2、過於依賴存儲過程,數據庫里包含業務邏輯,業務邏輯就分散在程序與數據庫,代碼可讀性損失。

3、調用存儲過程的確讓很多SQL語句變成了一個存儲過程名和參數,減少了網絡傳輸,但很多情況下不需要這點性能。

4、業務邏輯都寫在存儲過程里了,用面向對象語言的話就當做面向過程語言用了,對開發功能復雜的項目比較不利。

 

誤區三:大數據性能問題

只要接觸到幾百萬或者幾千萬就認為是大數據,有些人甚至以為MSSQLSERVER數據庫碰到千萬級的就得掛了。

其實不然,如果每個月以百萬級的數據增長,那么對查詢而言這些都是小數據,利用分區與查詢約束還是比較容易解決的。

而用同樣的方法,MSSQLSERVER也能處理超越千萬級的數據。

 

數據庫真正的性能問題在哪里?

真正的性能問題從宏觀上講我認為是數據庫設計問題,微觀上則是SQL調優。

 

總結

不該以性能為理由拒絕ORM工具,也不該濫用存儲過程。

關注性能從設計階段開始,不可過於糾結性能問題而損失開發效率。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM