總結一些PLSQL開發的程式設計習慣
阿新 • • 發佈:2019-01-25
太多了,想到的一些記錄以下,提醒自己。歡迎補充:
1、多用包(PACKAGE)
引用TomKyte的話就是“什麼時候用包?任何時候!”
他的理由是實際業務中很少有一個儲存過程或函式能獨立完成一個業務場景,必定是一堆有邏輯關聯的儲存過程、函式、型別等才能完整的實現一個業務。
2、多用變數繫結
這個是共識,好處很多,提升效能(軟解析)、防止SQL注入等等。
3、多用錨定變數宣告(如%TYPE,%ROWTYPE)
好處:基表修改長度或型別時對程式沒有影響。
4、用lob型別替代long型別
Oracle官方推薦,long型別有很多限制,而且lob型別的支援很強
5、模組化程式設計
好處:提高重用性、精簡程式碼、易於維護、可讀性提升
6、用管道(pipeline)函式
好處是提升函式響應速度,支援並行減少處理時間
7、用nocopy傳大物件引數
對於體積龐大的資料結構(如集合),用nocopy傳參可以顯著改善效能
8、用命名法呼叫取代位置法呼叫
位置法:EXEC P_TEST(‘A’,’B’);
命名法:EXEC P_TEST(PARA1=>’A’,PARA2=>’B’);
優點是:不容易出錯,被呼叫程式引數增加或變序後不受影響
9、少用goto、exit等短路設計
原因是容易造成邏輯錯誤
10、函式只在最後放一個return,而不是有多個return
原因同上,減少邏輯錯誤
10、用deterministic宣告頻繁使用重複引數的確定性函式
deterministic函式會快取函式結果,大大改善重複呼叫的時間。
11、少用觸發器
原因是容易導致業務邏輯失控
12、用bulk collect、forall、parallel等方法提升批量操作效能
顯著提升大資料量處理的效率