我們專注于高端品牌網(wǎng)站創(chuàng)意設(shè)計(jì)與開發(fā)
視圖可以起到簡化應(yīng)用設(shè)計(jì)、提高開發(fā)速度的作用,因此程序員大多有使用視圖的傾向和意愿。這原本沒有問題——簡單的視圖定義能屏蔽復(fù)雜的數(shù)據(jù)查詢結(jié)構(gòu)。
然而,我們也應(yīng)該意識(shí)到視圖在提供簡潔數(shù)據(jù)表述的同時(shí),還造成了SQL在執(zhí)行上的復(fù)雜化,并且某些極端的視圖甚至可能會(huì)導(dǎo)致系統(tǒng)在資源使用上的尖峰載荷。一種常見的開發(fā)失誤是:程序員使用了某定義和視圖,而該視圖又引用了其他的若干視圖。如下圖所示就是這樣的結(jié)構(gòu)——在視圖上創(chuàng)建視圖,形成了由多層視圖構(gòu)成的金字塔結(jié)構(gòu)。
多層視圖的結(jié)構(gòu)
Oracle在運(yùn)行狀態(tài)下調(diào)用視圖時(shí)會(huì)將視圖還原為SQL語句。顯然,最終可能會(huì)導(dǎo)致處于頂層的視圖在還原為SQL語法后十分復(fù)雜,其操作范圍會(huì)涉及若干表。這對(duì)于Oracle來說是個(gè)難題——多表參與SQL操作提升了SQL復(fù)雜度,Oracle優(yōu)化器并不一定能為非常復(fù)雜的SQL計(jì)算出優(yōu)化的執(zhí)行路徑,因?yàn)閮?yōu)化器不會(huì)用幾分鐘時(shí)間去設(shè)計(jì)成百上千種執(zhí)行計(jì)劃,然后再選擇最佳的方案執(zhí)行。
所以,視圖雖好,但在初始設(shè)計(jì)時(shí),應(yīng)考慮避免上述的極端情況。
文章引用:http://www.duhuilife.cn/new/132.html
本站文章為深圳網(wǎng)站建設(shè)·源美網(wǎng)絡(luò)原創(chuàng)策劃,如有版權(quán)糾紛或者違規(guī)問題,請(qǐng)聯(lián)系我們刪除,謝謝!
上一篇: 站外SEO與站內(nèi)SEO
售后保障
承諾任何問題1小時(shí)內(nèi)解決數(shù)據(jù)備份
更安全、更高效、更穩(wěn)定價(jià)格公道精準(zhǔn)
項(xiàng)目經(jīng)理精準(zhǔn)報(bào)價(jià)不弄虛作假合作無風(fēng)險(xiǎn)
重合同講信譽(yù),無效全額退款