厚积薄发-SQL技巧

--删除表记录时,用truncate代替delete
    TRUNCATE和DELETE有以下几点区别:

1、TRUNCATE是一个DDL语言,不能对TRUNCATE使用ROLLBACK命令(像所有的DDL语言一样,他被隐式提交)。
     TRUNCATE不能触发任何DELETE触发器,而如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。

 

--用>=替代>
   SELECT *  FROM EMP  WHERE DEPTNO >=4   --高效:
   SELECT *  FROM EMP   WHERE DEPTNO >3 --低效:
   两者的区别在于:前者DBMS将直接跳到第一个DEPT等于4的记录。

   而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录.

 

 

posted @ 2011-03-13 14:07  1店小二  阅读(180)  评论(0编辑  收藏  举报