博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle优化
阅读量:7296 次
发布时间:2019-06-30

本文共 1181 字,大约阅读时间需要 3 分钟。

sql语句 优化方式:

1select 语句中避免用"*"

    oracle在解析时,会将“*”依次转换成所有的列名(数据字典完成)耗时

2尽量多用commit语句

  及时提交,释放资源

3用exists代替in

 in子句会执行表的遍历,效率非常低

4尽量使用共享池已有的sql语句

为了不解析相同的sql语句,在第一次解析之后,oracl将sql语句存放在共享池的内存中

减少I/O操作,提高I/O操作效率,是数据库优化的主要内容

索引 优化:

索引是把表的一些列值提取出来组织的,当使用索引时,不是先查询基表,而是先检索索引。找到满足条件后,用物理地址返回到基表中将其他数据读取出来,完成查询。

创建单列索引:

create index employ_name on scott.emp(empname);
View Code

创建多列索引:

create index emplouyee_noname on scott.emp(empname,empno);
View Code

重建索引:

alter index employ_name rebuild online;
View Code

同时使用索引避免对整个表的访问,减少了很多磁盘I./O操作。

数据簇 优化:

数据簇是将相关或相似的行在物理上存储在一起,有索引数据簇和散列数据簇两种。由于物理上接近,查询时会减少磁头转动,从而加快检索速度。

创建散列簇:

create cluster position(id number(1))size 100hash is idhashkeys 10000;
View Code

在散列上创建表:

create table depost2( postno char(3) not null, postname varchar2(30) unique null, ifvoid number(1) default 0 check(ifvoid between 0 and 1))cluster position(ifvoid);
View Code

防止访问冲突:

1 加锁

在一个用户读取时,其他用户不能进行操作

 锁类型 6种:共享锁(row share),独占锁(row exclusive),共享修改(row update),共享表锁(share) 共享行锁独占表锁(share row exclusive) ,独占表锁(exclusive)

eg:

--独占表锁lock table scott.emp in exclusive mode;
View Code

2合理设计事务

在事务处理过程中,确保读取数据一致性

3分散文件

表表数据和索引放在不同的磁盘上

 

 

 

 

转载于:https://www.cnblogs.com/shuaif/p/3505566.html

你可能感兴趣的文章
外贸术语
查看>>
网络传输流量控制策略小结
查看>>
上传大文件
查看>>
Mybatis面试集合(转)
查看>>
分布式系统的完整介绍(一)
查看>>
考点1
查看>>
Asp.net 程序连接orcle如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,...
查看>>
自己写的模板引擎,模板生成静态页面
查看>>
Android 数据库管理— — —更新数据
查看>>
014_捆绑包与显示模式
查看>>
python : logging模块format类
查看>>
[LeetCode] Two Sum
查看>>
java类中的初始化顺序
查看>>
win10远程桌面连接
查看>>
[转]Web Service与WCF区别
查看>>
vs2010 .net4.0 错误 事件的显式接口实现必须使用事件访问器语法
查看>>
BZOJ1090:[SCOI2003]字符串折叠——题解
查看>>
Python网络爬虫-爬取微博热搜
查看>>
js 与或运算符 || && 妙用
查看>>
react-conponent-secondesElapsed
查看>>