WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606
全部博文(599)
发布时间:2013-01-11 13:44:00
最近数据库SQL执行计划老是走错,正好需要使用SQL PROFILE固定执行计划,顺便记录一下如何使用SQL PROFILE固定当前SHARED POOL的执行计划。如果采用手工的方法,需要用到 sqlprof_attr 类型。自己手工构造相对麻烦点。ORACLE提供了一个脚本coe_xfr_sql_profile.sql 用来用共享池中获得SQL语句及其执行计划,并生成一个创建SQL PROFLE的脚本,这个脚本附属在SQLT工具中。看一下这个脚本的使用方法。SQL> desc test 名称 ......【阅读全文】
发布时间:2013-01-10 16:26:51
今天在ITPUB看到一个帖子,关于WHERE条件的执行顺序的。http://www.itpub.net/thread-1755665-1-1.html原文如下:今天看到以下一句话,我记得以下的描述应该是针对RBO的吧,现在CBO优化器应该能自己判断了吧?ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。事实正好相反,可以过滤掉最大数量记录的条件必须写在WHERE子句的前面。看下面一个经典例子:SQL> desc x 名称  ......【阅读全文】
发布时间:2013-01-10 13:35:06
在10G之前,使用DBMS_STATS收集统计信息将会导致与此对象相关的游标失效,下次执行此的时候将会进行HARD PARSE,除非收集的时候NO_INVALIDATE设置为TRUE。由于硬解析会消耗大量的CPU,还会导致大量的library cache 和 shared pool 的LATCH竞争,因此如果由于统计信息收集导致大量的的游标失效,可能会带来HARD PARSE风暴,造成系统的负担。但是如果采用NO_INVALIDATE=TRUE的方法,由于游标不失效,游标无法利用到新的统计信息,除非下一次进行HARD PARSE,譬如CURSOR RELOAD,手工FLUSH SHARED P......【阅读全文】
发布时间:2013-01-08 21:59:37
What is cardinality feedback?Cardinality Feedback is the ability of the optimizer to automatically improves plans for repeated queries that have cardinality misestimates. The optimizer may estimate cardinalities incorrectly for many reasons, such as missing statistics, inaccurate statistics, o......【阅读全文】
发布时间:2013-01-06 17:02:06
When loading objects and data into the buffer cache of the instance there is a functionality which determines the best way to load for full scans. This functionality is called smallness logic and is driven by a hidden parameter called:_small_table_threshold.If the number of blocks to be read is lowe......【阅读全文】