2011年4月13日
摘要: 适当的使用索引可以提高数据检索速度,可以给经常需要进行查询的字段创建索引 oracle索引分为3种: normal: 可重复数据,普通索引unique: 数据不能重复,唯一索引bitmap: 位图索引创建索引的标准语法: CREATE INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名; 例如:CREATE INDEX idx_of_imsi ON uim_auth_file(imsi) TABLESPACE users; 创建唯一索引: CREATE unique INDEX 索引名 ON 表名 (列名) TABLESPACE 表空间名; 例如:CREATE UNIQU 阅读全文
posted @ 2011-04-13 16:53 Ruthless 阅读(1892) 评论(1) 推荐(1) 编辑
摘要: ORACLE有个高速缓冲的概念,这个高速缓冲就是存放执行过的SQL语句,那oracle在执行sql语句的时候要做很多工作,例如解析sql语句,估算索引利用率,绑定变量,读取数据块等等这些操作。假设高速缓冲里已经存储了执行过的sql语句,那就直接匹配执行了,少了步骤,自然就快了,但是经过测试会发现高速缓冲只对简单的表起作用,多表的情况完全没有效果,例如在查询单表的时候那叫一个快,但是假设连接多个表,就龟速了。最重要一点,ORACLE的高速缓冲是全字符匹配的,什么意思呢,看下面三个select--No.1select * from tableA;--No.2select * From tableA 阅读全文
posted @ 2011-04-13 14:20 Ruthless 阅读(26667) 评论(6) 推荐(8) 编辑
摘要: --oracle查找重复记录select * from tableA a where a.rowid>=(select min(rowid) from tableB b where a.column=b.column) --oracle删除重复记录delete from tableA a where a.rowid>=(select min(rowid) from tableB b where a.column=b.column) 阅读全文
posted @ 2011-04-13 11:24 Ruthless 阅读(999) 评论(1) 推荐(1) 编辑
摘要: 一、多表联合查询 通过连接可以建立多表查询,多表查询的数据可以来自多个表,但是表之间必须有适当的连接条件。为了从多张表中查询,必须识别连接多张表的公共列。一般是在WHERE子句中用比较运算符指明连接的条件。 两个表连接有四种连接方式: * 相等连接 * 不等连接(看作单表查询) * 外连接* 自连接(自关联) 1.相等连接 通过两个表具有相同意义的列,可以建立相等连接条件。使用相等连接进行两个表的查询时,只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中 显示雇员名称和所在部门的编号和名称。 执行以下查询: SELECT a.ename, b.id, b.dname FROM emp 阅读全文
posted @ 2011-04-13 10:45 Ruthless 阅读(17615) 评论(0) 推荐(1) 编辑