|
1.SQL优化可以用到那些性能工具
SQLT:通常用于诊断性能不佳的 SQL 语句。
SQL Profile:SQL的监视工具,可以具体到每一行Sql语句,每一次操作,和每一次的连接。
SQL Trace:Oracle提供的一个非常好的跟踪工具,主要用来检查数据库的异常情况,通过跟踪数据库的活动,找到有问题的语句。
2.如何缩短SQL调优时间
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效)
(2)WHERE子句中的连接顺序
(3)SELECT子句中避免使用 ‘ * ‘
(4)减少访问数据库的次数
(5)在SQL*Plus , SQL*Forms和Pro*C中重新设置ARRAYSIZE参数, 可以增加每次数据库访问的检索数据量 ,建议值为200
(6)使用DECODE函数来减少处理时间
(7) 整合简单,无关联的数据库访问
(8) 删除重复记录
3.影响性能的常见因素
(1)逻辑数据库和表设计不合理
(2)无索引或索引设计不合理
(3)无缓存
(4)硬件问题
4.学习索引的重要性
(1)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
(2)可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
(3)可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
(4)在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
(5)通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
5.SQL优化的误区
(1)SQL写法会导致性能问题:大多数场景中SQL语句的写法都不会影响最终的执行计划
(2)关系库中存在锁会导致性能问题:在一个高负载、高并发的关系库中存在大量的锁是关系库的核心机制
(3)SQL调优能解决一切问题:性能问题可能是OS层面或硬件层面导致的
(4)数据量大必然导致出现性能问题:数据量大只是导致出现性能问题的基础之一
|
|