oracle大數(shù)據(jù)存儲解決方案 oracle中,一個存儲過程怎么調用另一個存儲過程?
oracle中,一個存儲過程怎么調用另一個存儲過程?直接調用就可以了。舉個例子把 B 存儲過程調用A 存儲過程。PROCEDURE A (p_1 in number,p_2 out number)is
oracle中,一個存儲過程怎么調用另一個存儲過程?
直接調用就可以了。
舉個例子把 B 存儲過程調用A 存儲過程。
PROCEDURE A (p_1 in number,p_2 out number)is v_1 numberbeginV_1:p_1p_2:v_1end A(1)如果A 與B同在一個package里面的話。那么 B里面直接可以調用APS:如果A,B在同一個Package 中無法調用的話,那么很可能是A,B在Spec里沒有聲明。一個package包含Spec 和Body,兩層。不能調用很可能沒有聲明。聲明后應該ok!
PROCEDURE B(p_1 in number)is v_result numberbeginv_result A(p_1)end B其中v_result就是調用A的結果,A的返回值。
(2)如果A與B不在同一個package的話那么B在調用A 的時候,需要加上pkg的名字比如:A 存儲過程在pkg :xxom_test_pkg 中PROCEDURE B(p_1 in number)is v_result numberbeginv_result xxom_test_pkg .A(p_1)
end B----------------------------------------------------------以上簡單介紹了存儲過程的調用。希望對你有幫助
oracle存儲過程出現(xiàn)異常后可以繼續(xù)執(zhí)行嗎?
這個要看異常捕捉處理程序放在哪,從出現(xiàn)異常到異常處理之間的程序應該是不執(zhí)行的
oracle數(shù)據(jù)量大怎么優(yōu)化?
1、首先要建立適當?shù)乃饕ql在索引字段不要加函數(shù),保證索引起效。如果是復合索引注意在sql的順序。如果已經(jīng)存在索引,建議你先重建索引先,因為大數(shù)據(jù)表的索引維護到了一個階段就是亂的,一般建議重建。建立好的一般可以獲得幾十倍的速度提升。
2、最大數(shù)據(jù)量的表放在最前,最小的表放在最后面。sql是從最后面開始反向解析的。
3、其次是要把最有效縮小范圍的條件放到sql末尾去。尤其是主鍵或者索引字段的條件。
4、保證你sql的算法合理性。保證復雜度和空間度的合理性。
5、必要時候使用存儲過程。提升30%-40%的速度6、建議你分頁讀取不要一下讀完所有的數(shù)據(jù)。(使用rownum),一下子數(shù)據(jù)太多會使得內存不夠用的。如果這些都做了還不滿意的話,可以考慮建立幾個表空間,然后按照一個算法將各個表的數(shù)據(jù),平均的放在各個表空間內(分表分區(qū)),在select的時候數(shù)據(jù)庫就會使用多線程到各個表空間索引數(shù)據(jù),這個一般不是上千萬級的表是不用的。也不是所有人都會用。