`
cd0281
  • 浏览: 123025 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论
文章列表
15. 用NOT EXISTS替代NOT IN 在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历).  为了避免使用NOT IN ,我们可以把它改写成NOT EXISTS.  例如: SELECT … FROM EMP WHERE DEPT_NO NOT IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_CAT=’A’); 为了提高效率.改写为: SELECT ...
8. 用TRUNCATE替代全表DELETE 当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息. 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况) 而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息.当命令运行后,数据不能被恢复.因此很少的资源被调用,执行时间也会很短. TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML. 9. 尽量多使用COMMIT 只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为 ...
1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种:    a.  RULE (基于规则)   b. COST (基于成本)  c. CHOOSE (选择性)     设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也 ...
对于数据库表中有海量的数据记录的情况。直接用delete命令删除的话,非常的慢。 以下是一个方法来批量删除数据记录: CREATE OR REPLACE PROCEDURE delbigtab ( p_tablename IN VARCHAR2, p_condition IN VARCHAR2, p_count IN VARCHAR2 ) AS PRAGMA AUTONOMOUS_TRANSACTION; n_delete NUMBER := 0; BEGIN /* 示例 : begin ...
1.查询 select case when sex = '男' then '1' when sex = '女' then '2' else '3' end 性别编号 from temp 2.结果
1.创建表 Create Table temp ( num varchar2(15 Char), name varchar2(20 Char), sex varchar2(2 Char), classes varchar2(30 Char), course_name varchar2(50 Char) ) insert into temp(num,name,sex,classes,course_name) values ('206211','王艺','男','06-1班','保险学'); insert into temp(num,name,sex,classes,co ...
1.创建表 Create Table temp ( num varchar2(15 Char), name varchar2(20 Char), sex varchar2(2 Char), classes varchar2(30 Char), course_name varchar2(50 Char) ) 2.插入数据 insert into temp(num,name,sex,classes,course_name) values ('206211','王艺','男','06-1班','保险学'); inser ...
Global site tag (gtag.js) - Google Analytics