這1篇算是對近期自己學習的1個心得總結
1、oracle的面向對象
SQL是面向集合的這個大家都知道,但是不可否認現在的oracle中有很多地方都體現著面向對象的思惟。(這也算是各大語言殊途同歸的1個征象吧)
為何說oracle中有很多的面向對象的思惟呢?舉1個例子來講明1下,我覺得最能體現出來這1點要算是游標了,固然還有包(package)
其中的for循環有無很有C#中foreach的趕腳呢?
student.sid沒有有對象的趕腳呢?
另外包(package)也是1個具有很強的面向對象的家伙兒,比如最常使用的dbms_output.put_line()等等1些內置的函數,很有面向對象中類和方法的趕腳,只是oracle不這么叫罷了。面向對象是1種思惟模式,或許oracle在不斷的更新進程中也鑒戒了1些這方面的內容,方便開發者更加快速更加舒服的使用也說不定。
接下來在談談oracle的面向集合
2、oracle的面向集合
SQL是面向集合的,在oracle集合這篇博客中自己也寫了1些東西,此處側重寫1些自己在這方面的1些見解。
關系型數據庫是依照1定的關系把業務數據依照1定的相同性整合在1起,SQL語句是為了更好的處理這些數據而存在的,所以想要提升SQL的效力,很多時候就需要知道oracle究竟是怎樣工作的,他在運行1段SQL語句時,是依照甚么樣的順序來實現自己對數據的處理的,這就牽扯到了解釋計劃和履行計劃。
oracle10g以后采取的是基于開消的優化器(CBO),通過統計出來的1些數據來運行眾多履行計劃中的1種,固然這1種其實不1定是最高效和穩定的。
用集合的思想來進行編程,為的就是盡量的減少對數據塊的讀取,由于1般情況下在I/O方面花費的效力還是很可觀的,另外使用面向集合的方法也能夠使SQL看起來更加的簡潔明了,優雅動人。不過這些需要1個進程
最后借用他人的1句話,做1個虎頭虎腦的結尾:誰都能寫出計算機認識的代碼,但是只有有思想的程序員才能寫出人人都能看懂的程序代碼
上一篇 我的iPhone刀槍不入?
下一篇 storm DRPC例子