摘要: --A.函数转换 --使用FULL JOIN,以前碰到的环境:有时写视图时将两表合并使用FULL JOIN --示例: DECLARE @A TABLE(NAME VARCHAR(10) NOT NULL PRIMARY KEY,ID INT) INSERT @A SELECT CASE WHEN NUMBER%2=0 THEN 'A'+LTRIM(NUMBER) ELSE 'B'+LTRIM(NUMBER) END , NUMBER FROM MASTER..SPT_VALUES WHERE TYPE='P' AND NUMBER BETWEE 阅读全文
posted @ 2012-02-16 22:43 kelin1314 阅读(1629) 评论(0) 推荐(0) 编辑
摘要: 统计分析主要包括产生表及索引的统计信息表的统计信息主要包括表的行数,每行的平均长度(字节),空闲块,统计时间等信息索引的统计信息主要包括行数、层数、叶块数、统计时间等信息。另外ORACLE还可以统计列及数据不对称信息,9i还可以统计系统信息(CPU,I/O)ORACLE执行成本分析时首先取出所应用表及索引的统计数据进行分析,其中数据行数是一个重要的参数,因为ORACLE 在分析表大小时行数为主要参数,如果进行两个表联合时,ORACLE会通过分析表的大小,决定应用小表进行全表查询,而大表执行联合查询,这种性能明显高 于先大表进行全表扫描。索引的统计信息对分析也产生比较大的影响,如ORACLE通过 阅读全文
posted @ 2012-02-16 22:35 kelin1314 阅读(5544) 评论(0) 推荐(0) 编辑
摘要: 当我们创建索引时,oracle会为索引创建索引树,表和索引树通过rowid(伪列)来定位数据。当表里的数据发生更新时,oracle会自动维护索引树。但是在索引树中没有更新操作,只有删除和插入操作。例如在某表id列上创建索引,某表id列上有值“101”,当我将“101”更新为“110”时,oracle同时会来更新索引树,但是oracle先将索引树中的“101”标示为删除(实际并未删除,只是标示一下),然后再将“110”写到索引树中。如果表更新比较频繁,那么在索引中删除标示会越来越多,这时索引的查询效率必然降低,所以我们应该定期重建索引。来消除索引中这些删除标记。一般不会选择先删除索引,然后再重新 阅读全文
posted @ 2012-02-16 22:17 kelin1314 阅读(744) 评论(0) 推荐(0) 编辑