大学课程-Oracle-Oracle查询性能优化(一)-索引

  • by

性能优化太复杂了,没有大量实际需求与练习不好操作,计划累积到后期的数据处理上,这里仅仅做引申学习(一)

更多的像语句优化,逻辑优化,各种情况的对应优化等等,头大

一.索引类型
二.索引中不同的数据访问形式
三.三篇oracle数据库访问性能优化文章
四.简单的创建索引操作

参考:

第一步:
https://www.cnblogs.com/hewenhaotc/p/4060982.html
https://yq.aliyun.com/articles/475860
https://zhuanlan.zhihu.com/p/66747737
https://www.w3xue.com/server/oracle/oracle-index.html

第二步:
https://blog.csdn.net/bibibrave/article/details/80876967 索引类型
https://blog.csdn.net/weixin_43970560/article/details/88862274 小操作
http://www.voidcn.com/article/p-zddydikq-so.html      oracle 优化or 替换为in、exists、union all的几种写法
http://www.diagwait.com/2019/05/14/oracle-19c-automatic-indexing-part-1/    Oracle 19C 新特性之自动索引(Automatic Indexing)
https://blog.51cto.com/1152313/1769783  复合索引使用的先决条件
https://zxdy.github.io/2015/03/10/oracle-tunning-cpu-2/  hash join nested loop sort merge
https://juejin.im/post/5d48140e6fb9a06aef08d0c9  建立索引的情况,也会有不同的数据访问方式,主要有下面5种
https://yq.aliyun.com/articles/576810/  使用虚拟索引在生产环境测试创建索引对数据库性能的影响
http://www.dalbll.com/Group/Topic/Oracle/6066  使用elasticsearch实现十亿级数据的查询性能优化
http://www.aqee.net/post/what-do-you-know-about-sql-performance.html

第三步:
http://www.uml.org.cn/sjjm/201906062.asp  Oracle数据库访问性能优化
http://www.51testing.com/html/68/n-3716368.html  索引优化原则及Oracle中索引总结
https://www.kancloud.cn/hx78/sql/379617  看了此文,Oracle SQL优化文章不必再看

一.索引类型

https://blog.csdn.net/bibibrave/article/details/80876967 索引类型

二.索引中不同的数据访问形式

https://juejin.im/post/5d48140e6fb9a06aef08d0c9 (其中一小段)

三.三篇oracle数据库访问性能优化文章

http://www.uml.org.cn/sjjm/201906062.asp Oracle数据库访问性能优化
http://www.51testing.com/html/68/n-3716368.html 索引优化原则及Oracle中索引总结
https://www.kancloud.cn/hx78/sql/379617 看了此文,Oracle SQL优化文章不必再看

四.简单的创建索引操作

参考:https://blog.csdn.net/weixin_43970560/article/details/88862274

1.准备开启观察
set timing on   执行时间显示
set autotrace traceonly explain  执行过程显示
plsql图形化直接F5



2.操作过程
--创建表
drop table tests;
create table tests(
      name varchar2(30),
      address varchar2(20) 
);

--插入数据
declare

begin
     for i in 1..500000 loop
       insert into tests values('姓名'||i,'地址'||i);
     end loop;
     commit;  
end;

--创建索引前查询
select * from tests where name='姓名200000';

--创建索引
create index ind_tests on tests(name);

--创建索引后查询
select * from tests where name='姓名200000'; 

--复合条件查询(索引后比索引前更费时)
select * from tests where name='姓名200000' and address='地址200000';

2019.9.30

发表评论

电子邮件地址不会被公开。 必填项已用*标注