1.概念:用来预判SQL语句运行过程中需要消耗的资源和时间等数据。
2.执行计划中的内容:
1.查看表格运行的逻辑和表格数据读取的状态 (全表扫描,分区读写,是否命中索引)
2.cost 对资源的消耗
3.数据库中不同对象的使用
4.cardianlity 命中的信息
5.io资源消耗,硬盘读写数据消耗的资源
6.time时间消耗,每个sql运行的性能
3.执行计划看到的表格联合查询的内部逻辑是什么样的?
1.表的查询顺序,先查小表,后查大表
2.表的连接方式
hash join :a表和b表连接时使用等值连接或and连接查询
merge join:a和b使用>,<,>=,<=的连接查询
nested loops:a和b进行不等连接
4.使用代码查询执行计划
explain plan for select 语句;
select * from table(dbms_xplan.display())
5.hints优化器(指定表的连接方式),可以强制改变sql的执行逻辑
语法:select /*+ 优化器内容 */ 列名 from语句
优化内容有:use_hash(表名1,表名2) 或 use_nl(表名1,表名2) 或 use_merge(表名1,表名2)
leading(表名1,表名2):改变表的读取顺序,full(表名1) 改变表的查询逻辑
index(表名 索引名):强制使用索引,但是只能命中被oracle优化的索引
浙公网安备 33010602011771号