厚积薄发-SQL技巧
时间:2011-03-13 来源:erxiao
--删除表记录时,用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的记录.
相关阅读 更多 +