oracle
cd0281
这个作者很懒,什么都没留下…
展开
-
oracle 递归查询
Start with...Connect By子句递归查询一般用于一个表维护树形结构的应用。创建示例表:[code="sql"]CREATE TABLE TBL_TEST(ID NUMBER,NAME VARCHAR2(100 BYTE),PID NUMBER DEFAULT 0);[/code...2010-04-01 10:07:11 · 81 阅读 · 0 评论 -
oracle的一些调优建议(5)
30.用WHERE替代ORDER BY ORDER BY 子句只在两种严格的条件下使用索引.ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.ORDER BY中所有的列必须定义为非空.WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列.例如: 表DEPT包含以下列: DEPT_CODE PK ...原创 2010-01-28 13:41:36 · 122 阅读 · 0 评论 -
oracle的一些调优建议(4)
24. 用>=替代> 如果DEPTNO上有一个索引, 高效: [code="java"]SELECT * FROM EMP WHERE DEPTNO >=4[/code] 低效: [code="java"]SELECT * FROM EMP WHERE DEPTNO >3[/code] 两者的区别在于, 前者...原创 2010-01-28 13:36:35 · 91 阅读 · 0 评论 -
oracle的一些调优建议(3)
15. 用NOT EXISTS替代NOT IN 在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历). 为了避免使用NOT IN ,我们可以把它改写成NOT EXISTS. 例如:[code="java"]SELECT …FROM EMPWHERE DEPT_NO NOT IN (...原创 2010-01-28 13:32:47 · 76 阅读 · 0 评论 -
oracle的一些调优建议(2)
8. 用TRUNCATE替代全表DELETE 当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况)而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行...原创 2010-01-28 13:28:14 · 72 阅读 · 0 评论 -
oracle的一些调优建议(1)
1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(s...原创 2010-01-28 13:24:31 · 65 阅读 · 0 评论 -
oracle的批量删除数据表记录
对于数据库表中有海量的数据记录的情况。直接用delete命令删除的话,非常的慢。以下是一个方法来批量删除数据记录:[code="java"]CREATE OR REPLACE PROCEDURE delbigtab ( p_tablename IN VARCHAR2, p_condition IN VARCHAR2, p_count ...原创 2010-01-28 13:15:17 · 295 阅读 · 0 评论 -
oracle的case when的使用
1.查询[code="java"]select case when sex = '男' then '1' when sex = '女' then '2' else '3' end 性别编号from temp[/code]2.结果[img]http://dl.iteye.com/upload/attachme...原创 2010-01-27 16:14:06 · 55 阅读 · 0 评论 -
oracle的Minus的使用
1.创建表[code="java"]Create Table temp (num varchar2(15 Char),name varchar2(20 Char),sex varchar2(2 Char),classes varchar2(30 Char),course_name varchar2(50 Char))[/code][code="java"]i...原创 2010-01-27 16:05:55 · 118 阅读 · 0 评论 -
oralce行转列
1.创建表[code="java"]Create Table temp (num varchar2(15 Char),name varchar2(20 Char),sex varchar2(2 Char),classes varchar2(30 Char),course_name varchar2(50 Char))[/code]2.插入数据[cod...原创 2010-01-27 15:58:09 · 79 阅读 · 0 评论 -
oracle uuid的方法
[code="sql"]CREATE OR REPLACE FUNCTION "UUID" RETURN varchar2 IStmpVar varchar2(50);/****************************************************************************** NAME: uuid PURPO...2010-04-14 13:43:05 · 266 阅读 · 0 评论 -
sql server 分组统计(转)
[code="sql"]现有表A,内容如下: 编码 仓库 数量 01 A 6 01 B 7 02 A 8 02 B 9 现在想按编码查询出这种格式: 01 A 6 01 B 7 汇总小计: 13 0...2010-04-14 11:37:07 · 159 阅读 · 0 评论 -
oracle的ROLLUP和CUBE语句分组(转)
[code="sql"]2005-05-10 09:40 First Publish.Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。如果是GROUP BY CU...2010-04-14 11:19:35 · 67 阅读 · 0 评论 -
oracle分组小计,总计样例(grouping sets)
1.首先创建一个表[code="sql"]create table TE( ID VARCHAR2(2), T_CODE VARCHAR2(4), T_NAME VARCHAR2(4), T_AMOUNT INTEGER, T_DEPT VARCHAR2(4), T_PROJECT VARCHAR2(4), T_T...2010-04-14 11:09:05 · 308 阅读 · 0 评论 -
将字符串转换成TABLE返回函数(oracle)
[code="sql"]CREATE OR REPLACE FUNCTION str2list ( p_string IN VARCHAR2, p_string2 IN VARCHAR2 DEFAULT NULL, p_sep IN VARCHAR2 DEFAULT ',') RETURN tabletypeAS/***...2010-04-13 15:35:09 · 429 阅读 · 0 评论 -
数据库连接串的问题。(如果是集群数据库的话)
连接字符串应该改成如下:由[code="java"]jdbc:oracle:thin://172.16.0.47:1521/warehouse?useUnicode=true&characterEncoding=utf-8[/code][code="java"] jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP...原创 2010-08-17 11:10:29 · 260 阅读 · 0 评论