全球旧事资料 分类
NVL‘X’XDUMMYNVL‘X’EROWIDANDNVL‘X’XDUMMYNVL‘X’DROWIDANDNVL‘X’XDUMMYNVL‘X’CROWIDANDEEMP_NO1234
fANDDDEPT_NO10ANDCCAT_TYPE‘RD’译者按虽然采取这种方法效率得到提高但是程序的可读性大大降低所以读者还译者按虽然采取这种方法效率得到提高但是程序的可读性大大降低所以读者效率得到提高但是程序的可读性大大降低译者按是要权衡之间的利弊是要权衡之间的利弊10删除重复记录最高效的删除重复记录方法因为使用了ROWIDDELETEFROMEMPEWHEREEROWIDSELECTMINXROWIDFROMEMPXWHEREXEMP_NOEEMP_NO11用TRUNCATE替代DELETE当删除表中的记录时在通常情况下回滚段rollbacksegme
ts用来存放可以被恢复的信息如果你没有COMMIT事务ORACLE会将数据恢复到删除之前的状态准确地说是恢复到执行删除命令之前的状况而当运用TRUNCATE时回滚段不再存放任何可被恢复的信息当命令运行后数据不能被恢复因此很少的资源被调用执行时间也会很短译者按TRUNCATE只在删除全表适用译者按只在删除全表适用TRUNCATE是DDL不是DML译者按12尽量多使用COMMIT
只要有可能在程序中尽量多使用COMMIT这样程序的性能得到提高需求也会因为COMMIT所释放的资源而减少COMMIT所释放的资源abcd回滚段上用于恢复数据的信息被程序语句获得的锁redologbuffer中的空间ORACLE为管理上述3种资源中的内部花费
译者按在使用COMMIT时必须要注意到事务的完整性现实中效率和事务完整性往译者按时必须要注意到事务的完整性现实中效率和事务完整性往译者按往是鱼和熊掌不可得兼往是鱼和熊掌不可得兼13计算记录条数和一般的观点相反cou
t比cou
t1稍快当然如果可以通过索引检索对索引列的计数仍旧是最快的例如COUNTEMPNO
f译者按在CSDN论坛中曾经对此有过相当热烈的讨论作者的观点并不十分准确通过译者按论坛中曾经对此有过相当热烈的讨论作者的观点并不十分准确通过曾经对此有过相当热烈的讨论译者按实际的测试上述三种方法并没有显著的性能差别实际的测试上述三种方法并没有显著的性能差别上述三种方法并没有显著的性能差别14用Where子句替换HAVING子句避免使用HAVING子句HAVING只会在检索出所有记录之后才对结果集进行过滤这个处理需要排序总计等操作如果能通过WHERE子句限制记录的数目那就能减少这方面的开销例如低效SELECTREGION,AVGLOG_SIZEFROMLOCATIONGROUPBYREGIONHAVINGREGIONREGION‘SYDNEY’ANDREGION‘PERTH’高效SELECTREr
好听全球资料 返回顶部