oracle的执行计划居然出错!:9204中查询重写的bug。BITMAP索引的结构:介绍BITMAP索引的存储结构。sql语句中常量的处理:在使用SQL中,怎样处理常量效率更高。奇怪的Cluster提示:CLUSTER提示的特点。函数索引和初始化参数的关系:9i后函数索引使用不再需要设置初始化参数。通过USE_CONCAT提示想到的:HINT与执行计划的关系问题。在RULE模式下NL_AJ和NL_SJ提示无效:NL_AJ和NL_SJ提示在RULE模式下被忽略。NO_PUSH_SUBQ提示无效:Oracle提示无效的bug。利用Oracle的bug进行测试——UNNEST提示的测试记录:利用BUG测试UNNEST提示的功能。奇怪的PUSH_PRED和NO_PUSH_PRED提示:Oracle认出了提示,但是将其忽略掉了。EXPAND_GSET_TO_UNION提示不起作用:又一个无效的提示。执行COUNT(COLUNM_NAME)不使用索引:介绍了9i和10g优化器处理COUNT(COLUMN)的区别。Oracle的RBO优化器:RBO优化器优先级排名。RBO下表连接顺序的确定:介绍RBO表连接的顺序。CBO使用CHECK的一个Bug:当CHECK条件恒为NULL时的问题。NOT NULL约束与CHECK约束:介绍直接设置NOT NULL约束和CHECK(COL IS NOT NULL)的区别。常数索引:Oracle支持常数索引。取得表中总记录数最快的方法:给出快速从表中读取记录总数的多种方法。创建索引对运行中的SQL语句的影响(一):创建索引对于大部分正在运行的SQL语句是不会带来性能提升的。创建索引对运行中的SQL语句的影响(二):带来性能提升的特例。组合索引限制条件的验证:验证组合索引的限制条件。CACHE和NOCACHE提示无效:描述了对CACHE和NOCACHE提示的测试。CACHE和NOCACHE提示的进一步研究(一):进一步讨论NOCACHE提示。CACHE和NOCACHE提示的进一步研究(二):讨论CACHE和NOCACHE对表的影响。KEEP池的CACHE特点(一):KEEP池的使用。KEEP池的CACHE特点(二):KEEP池不足时的CACHE特点。KEEP池的CACHE特点(三):描述索引在KEEP池的CACHE特点。KEEP池的CACHE特点(四):KEEP池的内存清理特点。RECYCLE池的CACHE特点(一):RECYCLE池的使用。RECYCLE池的CACHE特点(二):描述RECYCLE不足时的CACHE特点。RECYCLE池的CACHE特点(三):描述索引在RECYCLE池的CACHE特点。RECYCLE池的CACHE特点(四):CACHE提示对RECYCLE池的影响。Oracle分页查询语句(一):分页查询标准写法。Oracle分页查询语句(二):分页查询标准写法与错误写法效率对比。Oracle分页查询语句(三):表连接情况效率对比。Oracle分页查询语句(四):内部子查询排序的情况。Oracle分页查询语句(五):UNION ALL和GROUP BY等操作会导致分页查询的效率优势消失。Oracle分页查询语句(六):分页查询翻页到最后的性能问题。Oracle分页查询语句(七):ORDER BY STOPKEY和ORDER BY在翻页最后几页的性能差别。Oracle分页查询格式(八):如何对包含UNION ALL的分页语句编写特殊的分页查询语句。Oracle分页查询格式(九):如何对包含DISTINCT/GROUP BY/UNIQUE的分页语句编写特殊的分页查询语句。Oracle分页查询格式(十):10g的新执行计划GROUP BY STOPKEY,解决了GROUP BY分页效率低的问题。Oracle分页查询格式(十一):介绍分析函数用于分页。Oracle分页查询格式(十二):介绍分析函数用于分页,且排序字段上包含索引的情况。Oracle分页查询格式(十三):介绍HASH SORT CLUSTER表对分页查询的帮助。分页查询的排序问题:对排序算法的简单推测。分页查询的排序问题(二):描述一下排序键值重复的一点研究。查询操作系统统计信息:寻找操作系统统计信息的保存位置。Statspack的唯一冲突bug:设置了CURSOR_SHARING为SIMILAR后,可能导致STATSPACK收集信息时出现唯一冲突的BUG。解决的statspack bug的后续问题:Oracle推荐的解决问题的方法存在着一定的问题。Oracle9i Cursor_sharing设置为similar引起的bug:设置了CURSOR_SHARING为SIMILAR后出现了一堆的问题,这篇文章进行简单的总结。如何判断索引是系统产生还是用户创建的:区分索引是用户自己创建的还是Oracle自动生成的。RBO如何确定使用索引的顺序:描述RBO确定索引顺序的规则。ANALYZE的ESTIMATE语法处理全文索引的bug:ANALYZE的ESTIMATE语法在分析全文索引表时的问题。域索引提示无效:域索引提示DOMAIN_INDEX_SORT和DOMAIN_INDEX_NO_SORT无效。FIRST_ROWS和FIRST_ROWS(N)的区别:描述了FIRST_ROWS和FIRST_ROWS(N)的区别。同时查询MAX和MIN的SQL:如何优化同时查询MAX和MIN的SQL语句。小议笛卡儿连接:对CARTESIAN连接进行简单的分析。全文索引性能分析(一):整体分析。全文索引性能分析(二):统计信息对全文索引性能影响。全文索引性能分析(三):直方图对全文索引性能影响。全文索引性能分析(四):多个全文索引查询条件的情况。全文索引性能分析(五):包含两个全文索引查询字段的情况。全文索引性能分析(六):两张关联表都包含全文索引查询的情况。全文索引性能分析(七):继续讨论两张关联表都包含全文索引查询的情况,并给出解决方案。全文索引性能分析(八):进一步深入探讨上一篇给出的解决方案,利用节搜索解决了解决方案中存在的逻辑问题。利用执行计划来避免排序操作(一):对于单表操作如何避免排序。利用执行计划来避免排序操作(二):对于表连接的情况如何避免排序。Oracle对索引分析的优化:Oracle分析索引的时候,可能会将COMPUTE方式转化为ESTIMATE方式。恒等查询条件改变执行计划——SQL优化之Everything is Possible:SQL中添加一个1=1的条件也可能改变执行计划。增加索引改变执行计划——SQL优化之Everything is possible:增强索引造成执行计划改变,且新执行计划并没有使用新增索引。增加Distinct后查询效率反而提高——SQL优化之Everything is possible:添加DISTINCT反而提高查询速度。两层GROUP BY效率反而比一层GROUP BY效率高——SQL优化之Everything is possible:查询中两次GROUP BY比一次GROUP BY效率高的例子。UNION效率比UNION ALL效率高——SQL优化之Everything is possible:使用UNION要比使用UNION ALL的效率高的情况。ORA-30496错误:设置open_cursor为similar造成的错误9i奇怪的AJ执行计划:920上AJ执行计划的bug。ORACLE-7445(kghbigasp)错误:设置PGA_AGGREGATE_TARGET引起的错误。ORA-7445(kkodsel)错误:星型查询造成的问题。不同建表方式对统计信息影响不同:10g的统计信息和建表的方式还有关系。基于UNION ALL的分页查询执行计划问题:9i上UNION ALL分页查询可能会影响性能。基于UNION ALL的分页查询执行计划问题(二):给出一个相对简单的解决方法。CHECK约束中的NULL条件:恒NULL条件对CHECK约束的影响。核心表AUTOTRACE结果出错:核心表AUTOTRACE结果出错。一次系统视图查询的优化:一次系统视图查询的优化。利用索引提示减少分页的嵌套层数:利用索引提示减少分页的嵌套层数。如何让Oracle产生预期的执行计划(一):以INDEX_JOIN为例,简单描述影响Oracle的执行计划的产生。如何让Oracle产生预期的执行计划(二):通过修改表结构的方式改变执行计划的方法。如何让Oracle产生预期的执行计划(三):通过修改数据的方式改变执行计划的方法。ORA-7445(kghbigghs)错误:9i设置PGA_AGGREGATE_TARGET导致的bug。ORACLE动态性能视图统计值溢出:整型数溢出问题。Oracle10g的FAST DUAL执行计划:FAST DUAL执行计划。Oracle10g可以查看DDL的执行计划:EXPLAIN PLAN FOR查看DDL语句的执行计划。Oracle10G新增NO提示:10g中很多HINT添加了对应的NO_HINT。ORA-7445(ksmarfg):仍然是PGA_AGGREGATE_TARGET导致的bug。设置MEMORY_TARGET会导致RESULT_CACHE_MAX_SIZE在重启后归零:设置MEMORY_TARGET,则RESULT_CACHE_MAX_SIZE的设置在数据库重启后自动被置为0。设置MEMORY_TARGET会导致RESULT_CACHE_MAX_SIZE在重启后归零(二):再次测试后发现了导致问题的真正原因。ORA11G ORA-00845 错误:Oracle 11g的Linux版本在修改了MEMORY_TARGET或者SGA_TARGET后启动可能会报错。重启系统后AUTOTRACE统计为零:重启系统后AUTOTRACE统计为零。V$SQL视图显示结果异常的诊断:V$SQL视图中SQL_TEXT列中的数据是不正常的。10203设置CURSOR_SHARING为SIMILAR导致物化视图刷新失败:设置CURSOR_SHARING为SIMILAR导致物化视图刷新失败。ORA-600(925)错误:设置过大的SORT_AREA_SIZE引发的错误。Oracle11新特性——SQL缓存结果集(一):11g新增功能缓存结果集中SQL语句的缓存。Oracle11新特性——SQL缓存结果集(二):SQL缓存结果集的特点。Oracle11新特性——SQL缓存结果集(三):SQL缓存结果集的特点并简单介绍DBMS_RESULT_CACHE包。Oracle11新特性——PLSQL函数缓存结果(一):11g新增功能PLSQL函数缓存结果的功能。Oracle11新特性——PLSQL函数缓存结果(二):11g新增功能PLSQL函数缓存结果和DETERMINISTIC函数的区别。Oracle11新特性——PLSQL函数缓存结果(三):11g新增功能PLSQL函数缓存结果的应用实例。临时表产生REDO过多的bug:9204上INSERT INTO SELECT方式插入临时表,造成的REDO比插入普通表还多。函数索引产生隐藏列:前两天在进行LOGMNR操作的时候发现了空的列名,经检查发现是函数索引造成的隐藏列。ORA-00844错误:Oracle的内存管理方式改为自动内存管理时,出现的错误。一次更新操作的优化:描述最近进行了一次更新操作的处理和优化工作。利用Oracle的新特性优化SQL:利用Oracle的新特性优化SQL。索引重建的数据源:索引重建的数据源问题。10g数据泵和导入导出性能对比(四):讨论并行度对数据泵导出的影响。Tom新书的一个小bug——mystat脚本:在看Tom的新书Oracle9i&10g编程艺术发现了一个小问题。ORA-600(16515)错误:收集统计信息时出现了bug。SQL优化引出的问题(一):经过简单的检查,找到了一个问题SQL语句。SQL优化引出的问题(二):继续寻找导致问题的真正原因。DBA_JOBS_RUNNING视图访问缓慢:一个经常碰到的bug,访问DBA_JOBS_RUNNING视图长时间得不到结果。DBA_LMT_USED_EXTENTS视图访问缓慢:又一个访问数据字典视图缓慢的bug。ORA-7445(kkojnp)错误:FIRST_ROWS模式下,使用分析函数且不包括ORDER BY语句可能导致这个bug。ORA-7445(qkabxo)错误:FIRST_ROWS模式下,执行计划中出现BITMAP索引扫描导致的错误。BITMAP索引异常增大:BITMAP索引异常增大的BUG。FIRST_ROWS优化模式语言排序模糊匹配问题:在FIRST_ROWS优化模式下,将会话排序和比较方式设置为语义模式,即忽略大小写模式,对字段进行LIKE模糊查询,可能导致错误的结果。FIRST_ROWS优化模式访问远端表可能导致错误结果(一):FIRST_ROWS优化模式下,通过数据库链访问远端表,且SQL包括IN子查询语句时,优化器可能给出错误的执行计划,从而导致结果集出现重复记录。FIRST_ROWS优化模式访问远端表可能导致错误结果(二):继续研究问题和版本的关系,以及相应的解决方法。STATSPACK清除数据时没有删除STATS$UNDOSTAT:Oracle在清除STATSPACK数据的时候,漏掉了STATS$UNDOSTAT表。STATSPACK数据清除(一):Oracle文档推荐的STATSPACK过期数据产生的方法是直接删除STATS$SNAPSHOT表中的记录。STATSPACK数据清除(二):进一步描述清除问题。利用MOVE压缩表的高水位线:MOVE不指定INITIAL不会压缩第一个EXTENT。11G访问DBA_OBJECTS和V$LOCK视图时HANG住:11g也存在访问数据字典出现长时间等待的问题。一次ORA-4030问题诊断及解决(一):简单记录一下问题的诊断和解决过程。一次ORA-4030问题诊断及解决(二):继续寻找源数据库和目标数据库执行计划不同的原因。一次ORA-4030问题诊断及解决(三):寻找产生问题的真正原因。WEBLOGIC连接Oracle RAC的负载均衡测试:测试单实例与RAC环境各个节点的负载情况。清空数据库缓冲区的方法(一):描述10g清空数据库缓冲区的方法。清空数据库缓冲区的方法(二):描述9i清空数据库缓冲区的方法。9i索引范围扫描逻辑读问题:9i在默写情况下,执行索引范围扫描,并没有过滤结果,导致大量不必要的逻辑读。ORA-600(15599)错误:又是和PGA_AGGREGATE_TARGET有关bug。外键列上是否需要索引:描述索引对于外键支持的重要性。HINT如何跨越视图生效:如何是HINT跨越视图对基表生效。由HINT跨越视图生效想到的:HINT对视图的方式同样使用于SQL子查询中的匿名视图。利用NO_MERGE解决数据字典视图访问低效:通过NO_MERGE视图来避免低效的执行计划。加载数据顺序对HASH SORT CLUSTER性能影响:加载或插入数据的顺序对影响影响很大。Oracle11gr2新增提示IGNORE_ROW_ON_DUPKEY_INDEX:Oracle新增了一个HINT,使得INSERT INTO SELECT操作可以避免插入重复的记录。ORA-600(qerltcInsertSelectRop_bad_state)错误:在利用IGNORE_ROW_ON_DUPKEY_INDEX提示执行插入时,很可能碰到这个错误。利用USE_INDIRECT_DATA_BUFFERS突破32位的2G内存限制(一):介绍如何设置这个参数。利用USE_INDIRECT_DATA_BUFFERS突破32位的2G内存限制(二):介绍设置这参数过程中碰到的错误。DECODE和CASE的性能比较:比较这两个功能类型的方面的性能差别。数据库启动出现ORA-27102错误:测试数据库启动时出现了这个错误。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24910165/viewspace-678016/
,如需转载,请注明出处,否则将追究法律责任。