数据库优化方案1
高效地进行 SQL 语句设计:普通状况下,可以采纳下面办法优化 SQL 对数据操作体现:(1)减少对数据库查询次数,即减少对系统资源祈求,使用快照和显形图等分布式数据库对象可以减少对数据库查询次数
(2)尽量使用相似或非常类似 SQL 语句进行查询,这样不但充分运用 SQL 共享池中已经分析语法树,要查询数据在 SGA 中命中也许性也会大大增长
(3)避开不带任何条件 SQL 语句执行
没有任何条件 SQL 语句在执行时,普通要进行FTS,数据库先定位一种数据块,然后按顺序依次查找其他数据,对于大型表这将是一种漫长过程
(4)假如对有些表中数据有约束,最佳在建表 SQL 语句用描述完整性来实现,而不是用SQL 程序中实现
一、操作符优化:1、IN 操作符用 IN 写出来 SQL 长处是比较容易写及清楚易懂,这比较适合当代软件开发风格
但是用 INSQL 性能总是比较低,从 Oracle 执行环节来分析用 INSQL 与不用 INSQL 有如下区别:ORACLE 试图将其转换成各种表连接,假如转换不成功则先执行 IN 里面子查询,再查询外层表记录,假如转换成功则直接采纳各种表连接方式查询
由此可见用 INSQL 至少多了一种转换过程
普通 SQL 都可以转换成功,但对于具有分组记录等方面 SQL 就不能转换了
在业务密集 SQL 当中尽量不采纳 IN 操作符
优化 sql 时,常常遇到使用 in 语句,一定要用 exists 把它给换掉,由于 Oracle 在解决 In时是按 Or 方式做,虽然使用了索引也会很慢
2、NOT IN 操作符 强列推举不使用,由于它不能应用表索引
用 NOT EXISTS 或(外连接+推断为空)方案代替3、IS NULL 或 IS NOT NULL 操作推断字段与否为空普通是不会应用索引,由于 B 树索引是不索引空值