11. 尽量多使用COMMIT
只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少。
COMMIT所释放的资源:
回滚段上用于恢复数据的信息.
被程序语句获得的锁
redo log buffer 中的空间
ORACLE为管理上述3种资源中的内部花费
12. 计算记录条数
Select count(*) from tablename;
Select count(1) from tablename;
Select count(column) from tablename;
一般认为,在没有主键索引的情况之下,第二种COUNT(1)方式最快。如果只有一列且无索引COUNT(*)反而比较快, 如果有索引列,当然是使用索引列COUNT(column)最快。
13. 用Where子句替换Having子句
避免使用HAVING子句,HAVING 只会在检索出所有记录之后才对结果集进行过滤。这个处理需要排序、总计等操作。如果能通过WHERE子句限制记录的数目,就能减少这方面的开销。
14. 减少对表的查询操作
在含有子查询的SQL语句中,要注意减少对表的查询操作。
/*低效SQL*/SELECT TAB_NAME FROM TABLESWHERE TAB_NAME =(SELECT TAB_NAME FROM TAB_COLUMNS WHERE VERSION = 604)AND DB_VER =(SELECT DB_VER FROM TAB_COLUMNSWHERE VERSION = 604)
/*高效SQL*/SELECT TAB_NAME FROM TABLES WHERE (TAB_NAME,DB_VER)=(SELECT TAB_NAME,DB_VERFROM TAB_COLUMNSWHERE VERSION = 604)
15. 使用表的别名(Alias)
当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误。
Column歧义指的是由于SQL中不同的表具有相同的Column名,当SQL语句中出现这个Column时,SQL解析器无法判断这个Column的归属。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




