国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle的優(yōu)化原理

2024-08-29 13:39:25
字體:
來源:轉載
供稿:網友
    前面講了Oracle性能調優(yōu)原則,但是可能有許多朋友不知道ORACLE優(yōu)化機理到底是什么?下面作一簡單說明。    解釋     先說明一下,ORACLE有一個優(yōu)化器(Optimizer),ORACLE的優(yōu)化機理就是從Optimizer開始的。    明確兩個概念:Optimizer 對ORACLE的優(yōu)化方式有兩種,一種是基于規(guī)則的,我們稱為RBO(Rule-Based Optimization),一種是基于代價的CBO(Cost-Based Optimization),我們從字面就可基本理解這兩個優(yōu)化方式的含義,不錯,RBO是根據ORACLE的內定規(guī)則實現的,比如我在“ORACLE性能調優(yōu)原則”中講到的:索引,索引就是ORACLE的內定規(guī)則;而對于CBO,由于是基于代價的,也就是ORACLE機器的資源了,比如CPU和內存等,這個時候有朋友就問了,既然有這兩個方式,那ORACLE到底如何選擇呢,其實,這個問題有一半需要我們自己回答,有一半由ORACLE回答。因為我們在安裝ORACLE時就已決定了ORACLE到底調用什么方式,這個就是init.ora中設定的OPTIMIZER_MODE參數,假如我們設為OPTIMIZER_MODE=RULE,它就會按RBO方式進行,反之按CBO了。當然,我們在開發(fā)程序時也可認為的改變規(guī)則,如SQL:    SELECT /*RULE*/  *  FROM  TABLE_NAME ,這個就使ORACLE強制使用RBO規(guī)則了,當然,ORACLE也比較“聰明”,它會根據用戶檢索表和該表的索引的統(tǒng)計信息來選擇優(yōu)化方式了,這里就出現了一個問題了,假如統(tǒng)計信息是陳舊的或者說是錯誤的,我們就必須用analyze人為的對表和索引進行重新統(tǒng)計了。    ORACLE的優(yōu)化模式有如下幾種:RULE,CHOOSE,FIRSTROWS,ALLROWS四種,這四種模式必須和前面講的優(yōu)化方式放在一起解釋,CHOOSE就是選擇的意思,假如有表和索引有統(tǒng)計信息,ORACLE就會CHOOSE CBO的優(yōu)化方式了。對于FIRSTROWS,我給的解釋是它和CHOOSE差不多,只是以最快的方式返回前面的記錄行了;當然了ALLROWS就是以最快的方式返回所有行。    以上講了ORACLE的優(yōu)化方式和優(yōu)化模式,以及ORACLE如何選擇,下面我再講講我們認為的改變ORACLE的優(yōu)化了:    1、  修改ORACLE的init.ora的OPTIMIZER_MODE參數;    2、  在寫SQL時人為指定優(yōu)化方式,如:SELECT /*RULE*/  *  FROM  TABLE_NAME    3、  為不讓ORACLE犯錯誤,我們有必要在日常維護中使用如下語句來優(yōu)化表和索引:    spool d:/temp/analyze_table.sql    SELECT 'analyze table 'table_name' compute statistics;' from user_tables;    spool off    spool d:/temp/analyze_index.sql    SELECT 'analyze index 'index_name' compute statistics;' from user_indexes;    spool off    上面的SQL將對我們的表和索引產生批量的SQL,我們再執(zhí)行這些SQL就行了。    OK,這些就是ORACLE的優(yōu)化機理和我們人為的影響了,相信大家明白了,希望對大家有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 永康市| 夏河县| 福鼎市| 内江市| 肥城市| 法库县| 临潭县| 嘉黎县| 柳河县| 赤水市| 阿鲁科尔沁旗| 永城市| 南部县| 岑巩县| 水城县| 郸城县| 张家口市| 耒阳市| 花莲市| 鹤山市| 武义县| 武隆县| 平武县| 广灵县| 贞丰县| 新巴尔虎左旗| 抚远县| 洱源县| 辛集市| 进贤县| 潢川县| 温州市| 凤阳县| 朔州市| 平泉县| 汕尾市| 桂阳县| 邛崃市| 天全县| 宜昌市| 庄河市|