小铁匠ME

导航

2013年8月16日 #

SORT_AREA_RETAINED_SIZE

摘要: manual pga:SORT_AREA_RETAINED_SIZE specifies (in bytes) the maximum amount of the user global area (UGA) memory retained after a sort run completes. The retained size controls the size of the read buffer, which Oracle uses to maintain a portion of the sort in memory. This memory is released back to 阅读全文

posted @ 2013-08-16 10:45 小铁匠ME 阅读(393) 评论(0) 推荐(0) 编辑

2013年8月14日 #

skip index scan

摘要: 官网对skip index scan的解释:Index skip scans improve index scans by nonprefix columns since it is often faster to scan index blocks than scanning table data blocks.In this case a composite index is split logically into smaller subindexes. The number of logical subindexes depends on the cardinality of the 阅读全文

posted @ 2013-08-14 15:10 小铁匠ME 阅读(378) 评论(0) 推荐(0) 编辑

2013年8月5日 #

由 OR 引起的死循环

摘要: 在客商迁移测试时,程序一旦开始执行就不能自动停止。只能通过手动中断应用服务器的进程来停止。检查迁移的一个表,这个表迁移前没有数据,迁移最多会插入3w条左右数据,但是迁移过程执行2个多小时候再看,已经有32G了。 首先,这个表没有blob等大对象字段,按正常情况肯定不会占用32G空间。因为整个迁移过程是一个事务,迁移不结束无法查看这个表的真实行数。这个时候怀疑程序有死循环。开发在联测代码时,发现下面这个SQL,第一次查询后,后面不管第几次查都跟第一次结果一样,这也就是导致死循环的原因。下面看下这个SQL:select pk_cubasdoc from (select row_number... 阅读全文

posted @ 2013-08-05 13:30 小铁匠ME 阅读(325) 评论(0) 推荐(0) 编辑

隐式类型转换导致索引列不走索引

摘要: 请记住:Oracle一般都会根据统计信息生成相对高效的执行计划,如果没有,那肯定是有理由的。不要慌乱,需要仔细分析原因。测试数据:SQL> select count(*) from t2; COUNT(*)---------- 106688SQL> create index i_t2_objectid on t2(object_id);索引已创建。SQL> analyze table t2 compute statistics for table for all indexes for all indexed columns;表已分析。SQL> desc t2; 名称 阅读全文

posted @ 2013-08-05 11:43 小铁匠ME 阅读(2140) 评论(0) 推荐(0) 编辑

重复数据插入unique列时,锁加在哪?

摘要: 1.测试目的当插入重复数据到有unique索引的表中时,采用何种加锁机制。2.测试思路利用10046确定是什么操作导致加锁阻塞了进程;dump锁定前最近一次操作的块结构来分析加锁机制。3.测试环境SQL> select * from v$version where rownum=1;BANNER-----------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production4.测试过程表test2及其 阅读全文

posted @ 2013-08-05 11:21 小铁匠ME 阅读(423) 评论(0) 推荐(0) 编辑

cursor_sharing

摘要: CURSOR_SHARINGPropertyDescriptionParameter typeStringSyntaxCURSOR_SHARING = { EXACT | FORCE }Default valueEXACTModifiableALTER SESSION,ALTER SYSTEMBasicNoCURSOR_SHARINGdetermines what kind of SQL statements can share the same cursors.Values:FORCEAllows the creation of a new cursor if sharing an exis 阅读全文

posted @ 2013-08-05 11:00 小铁匠ME 阅读(470) 评论(0) 推荐(0) 编辑

2013年8月4日 #

主查询谓词无法内推导致的问题

摘要: 这个测试是在11g R2测试的,主查询的谓词无法内推到子查询的第二层导致的性能问题。由于下面两个SQL性能问题太明显,这里只分析执行计划。重现过程如下:--测试环境create table t1 as select object_id,object_name from dba_objects;create table t2 as select object_id,object_name from user_objects;create table t3 as select rownum object_id,table_name object_name from user_tables;anal 阅读全文

posted @ 2013-08-04 19:10 小铁匠ME 阅读(379) 评论(0) 推荐(0) 编辑

要将表的限制条件写到与该表同级别的where中

摘要: 测试目的:将朱查询的限制条件放到子查询的where中,查看性能影响。测试数据:create table t1 as select object_id,object_name from dba_objects;create table t2 as select object_id,object_name from user_objects;create table t3 as select rownum object_id,table_name object_name from user_tables;analyze table t1 compute statistics for table f 阅读全文

posted @ 2013-08-04 18:51 小铁匠ME 阅读(288) 评论(0) 推荐(0) 编辑

正则表达式

摘要: 正则表达式很重要。 正则表达式是用在字符串处理中的“表达式”,以行为单位进行字符串的处理,通过一些特殊符号的辅助,,可以让用户轻松搜索/替换某特定字符串。正则表达式对于系统管理员来说很重要,因为系统会产生很多信息,这些信息有的重要,有的仅是告知用户一些信息。此时,管理员可以通过正则表达式的功能将重要信息选取出来,产生便于查看的报表,简化管理流程。1、通过grep选取字符串语法:grep [-acinv] '搜索字符串' filename参数说明:-a:在二进制文件中,以文本文件的方式搜索数据 -c:计算找到 '搜索字符串' 的行数 -i:忽略大小写 -n:输出行 阅读全文

posted @ 2013-08-04 18:16 小铁匠ME 阅读(251) 评论(0) 推荐(0) 编辑

2013年7月30日 #

普及下Oracle hints语法

摘要: 普及下Oracle hints的语法:{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */1、hint只能出现在诸如select、insert、update、delete等关键字的后面,否则将视为无效提示。2、+号必须紧跟着*号,且中间不能有空格,否则视为无效提示(也就是会把它当普通注释处理啦)。hint跟+号之间是否有空格就无所谓啦。3、如果包含多个提示,看网上有人说需要在每个提示间用一个或多个空格隔开。测试结果,不需要必须将空格,没有空格也照样识别。4、text就是说明hint的注释行文本了。像如果是全表扫描,hi 阅读全文

posted @ 2013-07-30 20:46 小铁匠ME 阅读(421) 评论(0) 推荐(0) 编辑