oracle 10G和oracle 9i的optimizer_index_cost_adj参数的区别
来源:互联网 发布:免费刷vip软件下载 编辑:程序博客网 时间:2024/05/03 07:43
最近公司买了一台新的服务器,用来做质量采集系统的主服务器,我就在这台新机器上安装了oralce 10g release 2
,把数据从9i老数据库上导出来,然后导入到10g里面。导入 完后,正常启动服务后,一查询,发现速度奇慢无比,原以为数据库刚刚启动,sga区还没有充满,也就没有去管它。一周后,质量分析人员报告,自从换到新数据库后,查询几乎查询不出来,查询都要几个小时。于是登陆进服务器,察看占用时间最长的sql,把这个sql拷出来到老数据库下查询,很快就查询了。我察看了两个数据库的参数,基本一致。 见鬼了,为什么时间相差这么久,
我决定看看这个语句在两个数据库下的执行计划, 发现在9i下sql走的是索引,在10g下走的是全表扫描。晕死,原来区别在这里,现在数据库中数据达到16亿条,走全表扫描还不要人命。在sqlplus下连接到10g数据库下
sql 〉show parameter opt
NAME TYPE VA
------------------------------------ ----------- --
filesystemio_options string
object_cache_optimal_size integer 10
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 10
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string AL
optimizer_secure_view_merging boolean TR
plsql_optimize_level integer 2
看到optimizer_index_cost_adj =100,记得上次看到eygle的一个文章里说一般10g里面的oltp系统这个参数设为50左右,
sql 〉alter session set optimizer_index_cost_adj = 50
在执行一下sql,看执行计划,发现走索引了 。
不过我又回去看9i的optimizer_index_cost_adj 参数,发现他的值是默认的100,
我想10g的系统的执行计划方面算法应该做了大的改动,这个默认的optimizer_index_cost_adj 的100数值不再适合于大数据量的查询了,在默认下,大数据量表会偏向走全表扫描,所以如果是大数据量的oltp系统,安装完毕后记得吧optimizer_index_cost_adj改小
,把数据从9i老数据库上导出来,然后导入到10g里面。导入 完后,正常启动服务后,一查询,发现速度奇慢无比,原以为数据库刚刚启动,sga区还没有充满,也就没有去管它。一周后,质量分析人员报告,自从换到新数据库后,查询几乎查询不出来,查询都要几个小时。于是登陆进服务器,察看占用时间最长的sql,把这个sql拷出来到老数据库下查询,很快就查询了。我察看了两个数据库的参数,基本一致。 见鬼了,为什么时间相差这么久,
我决定看看这个语句在两个数据库下的执行计划, 发现在9i下sql走的是索引,在10g下走的是全表扫描。晕死,原来区别在这里,现在数据库中数据达到16亿条,走全表扫描还不要人命。在sqlplus下连接到10g数据库下
sql 〉show parameter opt
NAME TYPE VA
------------------------------------ ----------- --
filesystemio_options string
object_cache_optimal_size integer 10
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 10
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string AL
optimizer_secure_view_merging boolean TR
plsql_optimize_level integer 2
看到optimizer_index_cost_adj =100,记得上次看到eygle的一个文章里说一般10g里面的oltp系统这个参数设为50左右,
sql 〉alter session set optimizer_index_cost_adj = 50
在执行一下sql,看执行计划,发现走索引了 。
不过我又回去看9i的optimizer_index_cost_adj 参数,发现他的值是默认的100,
我想10g的系统的执行计划方面算法应该做了大的改动,这个默认的optimizer_index_cost_adj 的100数值不再适合于大数据量的查询了,在默认下,大数据量表会偏向走全表扫描,所以如果是大数据量的oltp系统,安装完毕后记得吧optimizer_index_cost_adj改小
- oracle 10G和oracle 9i的optimizer_index_cost_adj参数的区别
- oracle 8i,9i和10g 的区别
- Oracle 9i 、Oracle 10g 和 Oracle 11g 的区别
- Oracle 9i、10g、11g版本的区别
- oracle 8i 、oracle 9i 、oracle 10g 和oracle 11g区别详细剖析
- Oracle 10g和Oracle 9i中merge into的区别
- Oracle 10g(10.1.0.2)中的OPTIMIZER_INDEX_COST_ADJ
- Oracle 10g(10.1.0.2)中的OPTIMIZER_INDEX_COST_ADJ
- oracle 9i 和oracle 10g 和oracle 11g有什么区别
- oracle 9i 和oracle 10g 和oracle 11g区别
- oracle 8i/9i/10g/11g 间的区别
- “Oracle 9i/Oracle 10g” 查询 参数java.util.date 性能慢的问题和解决方案
- oracle 10g 的外部表传输机制和oracle 9i对比
- Oracle 9i 、 10g 、 11g 软件和补丁的下载地址
- Oracle 9i 、 10g 、 11g 软件和补丁的下载地址
- 深入解析Oracle 10g中SGA_MAX_SIZE和SGA_TARGET参数的区别和作用
- 深入解析Oracle 10g中SGA_MAX_SIZE和SGA_TARGET参数的区别和作用
- oracle 10g中db_recovery_file_dest和log_archive_dest参数的关系
- eclipse中怎么在总包中创建子包
- JSP语法总汇
- 利用JSP技术访问MySQL数据库
- 分享:Hibernate+Struts分页代码(三)
- 对24图的灰度图的生成
- oracle 10G和oracle 9i的optimizer_index_cost_adj参数的区别
- 北京人均GDP破6000美元
- 分享。。。。
- 日语学习
- ajax 动态获取
- ASP.NET高级应用(2)
- SQL数据库应用程序发布
- 推荐一款软件: 世界上最好的查看电脑详细配置的软件
- 通用的图像模板操作函数