国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 恩施市| 西华县| 灵寿县| 彩票| 仁怀市| 高平市| 紫金县| 德格县| 资源县| 深圳市| 濮阳市| 桂阳县| 铅山县| 肇源县| 乌兰县| 永善县| 扎赉特旗| 巴林右旗| 昌吉市| 龙南县| 浪卡子县| 灵宝市| 贺州市| 泾源县| 涟源市| 红安县| 柞水县| 河南省| 金山区| 磐石市| 宣城市| 武义县| 乌拉特后旗| 瓦房店市| 休宁县| 耿马| 厦门市| 浏阳市| 温泉县| 鹤壁市| 滦平县|