Hopes

          Start Here..

           

          oracle 對于多個大表關聯操作如何優化速度?

          oracle 對于多個大表關聯操作如何優化速度?


          1、首先要建立適當的索引。sql在索引字段不要加函數,保證索引起效。如果是復合索引注意在sql的順序。如果已經存在索    引,建議你先重建索引先,因為大數據表的索引維護到了一個階段就是亂的,一般建議重建。建立好的一般可以獲得幾十倍的速度提升。


          2、最大數據量的表放在最前,最小的表放在最后面。sql是從最后面開始反向解析的


          3、其次是要把最有效縮小范圍的條件放到sql末尾去。尤其是主鍵或者索引字段的條件。


          4、保證你sql的算法合理性。保證復雜度和空間度的合理性。


          5、必要時候使用存儲過程。提升30%-40%的速度


          6、建議你分頁讀取不要一下讀完所有的數據。(使用rownum),一下子數據太多會使得內存不夠用的。

          如果這些都做了還不滿意的話,可以考慮建立幾個表空間,然后按照一個算法將各個表的數據,平均的放在各個表空間內(分表分區),在select的時候數據庫就會使用多線程到各個表空間索引數據,這個一般不是上千萬級的表是不用的。 也不是所有人都會用。


          這個得看查詢結果占到源表的比例:如果占比較大(大于10%-20%),則使用臨時表效果會好。

          posted on 2012-10-17 19:36 ** 閱讀(3464) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          收藏夾

          C#學習

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武山县| 汪清县| 建始县| 岫岩| 钟山县| 松阳县| 巴塘县| 岐山县| 锡林浩特市| 阿拉善左旗| 汉川市| 上饶市| 驻马店市| 成都市| 丁青县| 柳州市| 德阳市| 湖口县| 遵化市| 定西市| 天峨县| 松原市| 沿河| 镇康县| 三台县| 金坛市| 萨嘎县| 永济市| 崇左市| 天祝| 祁阳县| 威宁| 桦甸市| 治县。| 巴楚县| 玉田县| 迁西县| 南宫市| 武强县| 和龙市| 化德县|