摘要: 本文来自http://li.angshan.blog.163.com/blog/static/13133228920115284317868/1. Oracle是通过CBO(基于成本的优化器)提供sql的执行计划的, 通常情况, 在统计数据完整的情况下, CBO都能提供最优化的执行计划(优化器会根据事先创建几个执行计划,然后比较选择一个成本最低的执行计划。),所以Oracle DBA 在做sql优化时基本就是对统计数据的管理与日常维护。这就要求DBA们在日常的运维管理中对统计数据的监控和管理更加用心,这样才能为突如其来的sql语句提供最优的执行计划提供保障。2.SQL语句的执行,有时要受到语句 阅读全文
posted @ 2012-06-12 17:55 无尽的缥缈 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 本文来自http://www.cnblogs.com/lanzi/archive/2010/12/31/1923270.html1.分析表与索引(analyze 不会重建索引)analyze table tablename compute statistics等同于 analyze table tablename compute statistics for table for all indexes for all columnsfor table 的统计信息存在于视图:user_tables 、all_tables、dba_tablesfor all indexes 的统计信息存在于视图: 阅读全文
posted @ 2012-06-12 17:44 无尽的缥缈 阅读(1975) 评论(0) 推荐(0) 编辑
摘要: 本文转自http://www.blogjava.net/decode360/archive/2012/01/12/282748.html#368385Connect By的简单运用一、首先从一个经典的查询序列数例子入手: select level from dual connect by level <=10 select level from dual connect by 1 = 1 上例均可查询得到1 .. N 的序列 我们来分析一下其工作原理,level<=10用来控制循环的次数,即要重复多少次扫描表dual中的内容。第一次扫描得出的结果集的level都是1,第二次扫描的结 阅读全文
posted @ 2012-06-12 15:01 无尽的缥缈 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 本文来自http://www.uml.org.cn/sjjm/20100420.asp原理:第一步:应用程序把查询SQL语句发给服务器端执行。我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。第二步:服务器解析请求的SQL语句。1:SQL计划缓存,经常用查询分析器的朋友大概都知道这样一个事实,往往一个查询语句在第一次运行的时候需要执行特别长的时间,但是如果你马上或者在一定时间内运行同样的语句,会在很短的时间内返回查询结果。 原因:1):服务器在接收到查询请求后,并不会马上去数据库查询,而是在数据库中的计划缓存中找是否有相对应的执行计划,如果存在,. 阅读全文
posted @ 2012-06-12 11:57 无尽的缥缈 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 本文转自http://blog.sina.com.cn/s/blog_48e13c9e0100luur.htmlOracle的优化器有两种优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO),在Oracle8及以后的版本,Oracle强列推荐用CBO的方式RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。CBO方式:它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化 阅读全文
posted @ 2012-06-12 11:50 无尽的缥缈 阅读(298) 评论(0) 推荐(0) 编辑