人, 常會給自己設下一些原則, 然後就被陷在那個原則中, 不見光明.
多年以前, 退伍不久, 到一家公司上班, 用的電腦工具都沒學過, 經過自己的日夜研讀, 漸漸的熟能生巧, 終於運用良好. 其中有一個資料庫的程式, 資料庫的概念, 都是自己研讀而無師自通, 給工作上帶來了很大的效率提昇.
這個公司, 有個電腦系統, 管理進耗存, 生產製造, 營業財務等等. 資料收集的部份大都完善, 只是有許多報表不足, 不合用. 經過自修研讀的程式技術就上用場了, 建造了許多的資料查核的程式與報表. 除了自己, 其他人也都獲得了效率提昇.
當然在這個工作中, 用簡潔的程式來完成的原則依然是必要的, 因為程式簡潔代表的是效率. 因此能用一行的就用一行來寫.
關連式資料庫語言, 包含資料的關連, 資訊計算, 資料篩選等等, 很多情況是可以用一行程式寫出來的, 所以, 加上習慣, 會用這樣的方式來做. 用一行程式完成的過程是先關連, 然後計算, 最後篩選. 剛開始時, 資料量少, 這樣做, 對於記憶體, 等待時間是不會有太大的問題, 加上新經驗比原來手工快多了, 不會有等待感. 隨著資料量增加, 加上熟悉感, 漸漸的等待感就來了.
問題點出在那呢? 要從多個資料表中找到所要的資料, 若用上述一行的方法, 會先進行關連, 把所有的表格組成一個大表格, 這個大表的資料行數依關連的方式, 可能會增大, 這樣會花上一些時間及額外的記憶體, 然後再從這個大表中出找出符合的資料. 當資料增加, 關連的時間會增加很多, 從大表中篩資料也要多很多時間.
改善的方法是先篩選, 再關連. 這樣有個好處, 先篩選, 讓資料量減少, 關連時, 花的時間就少. 另外, 從小的表中篩選資料, 花的時間也少, 雖然要多作幾次篩選的工作, 應該還是有省到時間. 要先篩選再關連, 就要把一行程式分成很多很多行來寫, 至少三行, 但每個程式簡單些, 較容易了解.
實際執行結果, 可以只用5~6分之一的時間完成相同的事. 只是程式不是一行而已.
隨著環境變遷, 很多原本可以的, 都會出現問題. 有什麼是一定要堅持的? 你看清楚了嗎? 你在堅持什麼?
沒有留言:
張貼留言