一.如何使用CostBased優(yōu)化器優(yōu)化查詢操作?
Oracle 提供了基于成本(CostBased)和基于規(guī)則(RuleBased)兩種優(yōu)化器,簡稱為CBO和RBO,用于確定查詢操作的執(zhí)行計(jì)劃。CostBased優(yōu)化器將計(jì)算各種執(zhí)行計(jì)劃的開銷,然后選出最低成本的執(zhí)行計(jì)劃??墒褂孟铝蟹椒ㄟx擇使用CBO:
1.在INIT.ORA文件中設(shè)置參數(shù)OPTIMIZER_MODE=choose;
2.在Session級(jí)設(shè)置OPTIMIZER_GOAL=FIRST_ROWS或ALL_ROWS。
3、在查詢語句中使用Hint,包括CHOOSE、ALL_ROWS、FIRST_ROWS等。
二.為什么我的執(zhí)行計(jì)劃不是的?
CBO是依賴于表的一些統(tǒng)計(jì)信息來選擇出最低成本的執(zhí)行計(jì)劃,當(dāng)這些統(tǒng)計(jì)信息不準(zhǔn)確時(shí),產(chǎn)生的計(jì)劃便可能不是的。因而應(yīng)使用ANALYZE命令及時(shí)對(duì)表進(jìn)行分析統(tǒng)計(jì)。
三.我的查詢上周的性能很好,為什么現(xiàn)在查詢速度很慢?
這是由于執(zhí)行計(jì)劃被改變而造成的,下列因素將會(huì)改變一個(gè)執(zhí)行計(jì)劃:
1、INIT.ORA文件中的參數(shù)OPTIMIZER_MODE被改變;
2、表上定義或改變了并行查詢度;
3、使用ANALYZE命令重新分析了表,而且使用了ESTIMATE方式,這種方式選擇不同的百分比可產(chǎn)生不同的分析結(jié)果;
4、DB_FILE_MULTIBLOCK_READ_COUNT參數(shù)被修改;5、SORT_AREA_SIZE參數(shù)被修改。
Oracle 提供了基于成本(CostBased)和基于規(guī)則(RuleBased)兩種優(yōu)化器,簡稱為CBO和RBO,用于確定查詢操作的執(zhí)行計(jì)劃。CostBased優(yōu)化器將計(jì)算各種執(zhí)行計(jì)劃的開銷,然后選出最低成本的執(zhí)行計(jì)劃??墒褂孟铝蟹椒ㄟx擇使用CBO:
1.在INIT.ORA文件中設(shè)置參數(shù)OPTIMIZER_MODE=choose;
2.在Session級(jí)設(shè)置OPTIMIZER_GOAL=FIRST_ROWS或ALL_ROWS。
3、在查詢語句中使用Hint,包括CHOOSE、ALL_ROWS、FIRST_ROWS等。
二.為什么我的執(zhí)行計(jì)劃不是的?
CBO是依賴于表的一些統(tǒng)計(jì)信息來選擇出最低成本的執(zhí)行計(jì)劃,當(dāng)這些統(tǒng)計(jì)信息不準(zhǔn)確時(shí),產(chǎn)生的計(jì)劃便可能不是的。因而應(yīng)使用ANALYZE命令及時(shí)對(duì)表進(jìn)行分析統(tǒng)計(jì)。
三.我的查詢上周的性能很好,為什么現(xiàn)在查詢速度很慢?
這是由于執(zhí)行計(jì)劃被改變而造成的,下列因素將會(huì)改變一個(gè)執(zhí)行計(jì)劃:
1、INIT.ORA文件中的參數(shù)OPTIMIZER_MODE被改變;
2、表上定義或改變了并行查詢度;
3、使用ANALYZE命令重新分析了表,而且使用了ESTIMATE方式,這種方式選擇不同的百分比可產(chǎn)生不同的分析結(jié)果;
4、DB_FILE_MULTIBLOCK_READ_COUNT參數(shù)被修改;5、SORT_AREA_SIZE參數(shù)被修改。