ORACLE问答精选

发布时间:2006-06-28 09:56     点击:
分页:[1] 2 3 4 5 6  下一页

  Q:如何使用CostBased优化器优化查询操作?

  A:OracleServer提供了基于成本(CostBased)和基于规则(RuleBased)两种优化器,简称为CBO和RBO,用于确定查询操作的执行计划。CostBased优化器将计算各种执行计划的开销,然后选出最低成本的执行计划。可使用下列方法选择使用CBO:方法1:在INIT.ORA文件中设置参数OPTIMIZER_MODE=choose

  方法2:在Session级设置 OPTIMIZER_GOAL=FIRST_ROWS或ALL_ROWS例如:altersessionsetoptimizer_goal=first_rows;方法3:在查询语句中使用Hint,包括CHOOSE,ALL_ROWS,FIRST_ROWS等。

  Q:如何确定某个查询使用了哪一种优化器?

  A:使用EXPLAINPLAN命令生成该查询语句的执行计划,然后检查PLAN_TABLE表中POSITION字段,如果值为Null,说明使用了RuleBased优化器;否则表明使用了CostBased优化器。例如:

  SELECTdecode(nvl(position,-1),-1,’RBO’,’CBO’)

  FROMplan_table

  WHEREid=0;

  Q:我的查询上周的性能很好,为什么现在查询速度很慢?

  A:这是由于执行计划被改变而造成的,下列因素将会改变一个执行计划:

  1)INIT.ORA文件中的参数OPTIMIZER_MODE被改变

  2)表上定义或改变了并行查询度

  3)使用ANALYZE命令重新分析了表,而且使用了ESTIMATE方式,因这种方式选择不同的百分比可产生不同的分析结果。

  4)DB_FILE_MULTIBLOCK_READ_COUNT参数被修改。

  5)SORT_AREA_SIZE参数被修改

  Q:为什么我的执行计划不是最好的?

  A:CBO是依赖表的一些统计信息来选择出最低成本的执行计划,当这些统计信息不准确时,产生的计划便可能不是最佳的。因而应使用ANALYZE命令及时对表进行分析统计。

  Q:当使用ESTIMATE方式对表进行分析时,选用什么百分比最好?

  A:经测试证明,使用5%的的比例较好。即提高了分析效率,又保证分析结果的准确性。

  Q:如何在Oracle8数据库中创建PartitionTable?

  A:使用CREATETABLE命令,并指定PartitionKey和每个Partition的分区范围,Partition名为可选项,如未指定,系统将自动产生Partition名。例如:CREATETABLEemp
分页:[1] 2 3 4 5 6  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有