ysu_dong

导航

 

2012年10月27日

摘要: 删除重复数据的三种方法 --------------------------------- 表demo是重复拷贝自dba_objects,有88万左右,不重复的是27323,没有索引 方法一:delete from demo a where a.rowid <> (select max(rowid) from demo b where b.object_id=a.object_id); 耗时:几个小时以上 方法二: delete from demo where rowid in (select rid from (select rowid rid,row_number() over 阅读全文
posted @ 2012-10-27 23:34 ysu_dx 阅读(247) 评论(0) 推荐(0)
 
摘要: Oracle 分析函数的使用Oracle 分析函数使用介绍 分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有相当大的提高.下面我将针对分析函数做一些具体的说明.今天我主要给大家介绍一下以下几个函数的使用方法1.自动汇总函数rollup,cube,2.rank 函数, rank,dense_rank,row_number3. lag,lead函数4. sum,avg,的移动增加,移动平... 阅读全文
posted @ 2012-10-27 23:31 ysu_dx 阅读(182) 评论(0) 推荐(0)
 
摘要: Oracle SQL性能优化(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.(2)WHERE子句中的连接顺序.:ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉 阅读全文
posted @ 2012-10-27 20:47 ysu_dx 阅读(385) 评论(0) 推荐(0)
 
摘要: Oracle 分区表(转)分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 oracle中提供了以下几种表分区: 一、范围分区:这种类型的分区是使用列的一组值,通常将该列成为分区键。 示例1:假设有一个CUSTOMER表,表中有数据200000行,我们将此表通过CUSTOMER_ID进行分区,每个分区存储100000行,我们将每个分区保存到单独的表空间中,这样数据文件就可以跨越多个物理磁盘。下面是 阅读全文
posted @ 2012-10-27 20:38 ysu_dx 阅读(175) 评论(0) 推荐(0)
 
摘要: Oracle语法之OVER(PARTITION BY)及开窗函数oracle的分析函数over 及开窗函数本文转自http://www.cnblogs.com/rootq/archive/2009/03/12/1409674.html一:分析函数overOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 下面通过几个例子来说明其应用。 1:统计某商店的营业额。 date sale 1 20 2 15 3 14 4 18 5 30 规则:按天统计:每天都统计前面几天的总额 得到的结果: DA. 阅读全文
posted @ 2012-10-27 20:30 ysu_dx 阅读(150) 评论(0) 推荐(0)