数据库优化方案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 树索引是不索引空值。用其它相同功效操作运算替换,a is not null 改为 a>0 或 a>’’等。不许可字段为空,而用一个缺省值替换空值,如业扩申请中状态字段不许可为空,缺省为申请。避开在索引列上使用 IS NULL 和 IS NOT NULL 避开在索引中使用任何能够为空列 ,ORACLE 将无法使用该索引.对于单列索引,假如列包含空值,索引中将不存在此统计.对于复合索引,假如每个列全部为空,索引中一样不存在此统计.假如最少有一个列不为空,则统计存在于索引中.举例:假如唯一性索引建立在表 A 列和 B 列上,而且表中存在一条统计A,B 值为(123,null) , ORACLE 将不接收下一条含有相同 A,B...