Oracle调优
1.当一个复杂的查询语句中多次用到同一个子查询时,可以用With语句来定义一个子查询语句块,而在后面的查询中重用这个块,这样可以避免多次重复查询。
2.使用Merge更新或插入数据。使用Merge可以只执行一次语句就可以对一个表中的数据如果有相同的就更新没有则插入数据。
3.使用索引,B tree索引、位图索引
4.表分区。
5.索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除.表释放的空间可以再用,而索引释放的空间却不能再用.频繁进行删除操作的被索引的表, 应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能.在许可的条件下,也可以阶段性地truncate表,truncate命令删除表中所有记 录,也删除索引碎片.
1)、freelists 和 freelist 组:他们负责ORACLE的处理表和索引的空间管理;
2)、pctfree 及 pctused:该参数决定了freelists 和 freelist 组的行为,pctfree 和pctused 参数的唯一目的就是为了控制块如何在 freelists 中进出
设置好pctfree 及 pctused对块在freelists的移走和读取很重要。
查询消耗比较大的SQL
select sql_text from v$sql where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000);
6.使用绑定变量。
7.列举几种表连接方式: hash join/merge join/nest loop(cluster join)/index join