oracle编程入门笔记2015-01-12--数据库原理1

先给来一张偷来的图

oracle 数据库和实例。


首先解释数据库和实例的区别。

可以这么理解

1.数据库就是实实在在存储数据的文件。

2.实例就是一些oracle进程,内存和加载到内存里的数据集合。

其实oracle sql编程语法就之前说的那么多,剩下的就是要看sql到底怎么执行了。知其然知其所以然。了解sql执行原理和一些内部机制才能指导我们写更优的sql。

实例=SGA(共享区)+后台进程+内存

那么有如下结论:

1.实例与SGA是一对一的关系

2.同一个实例的多个用户共享SGA

后台进程在分析SGA原理的时候会提到一些用得上的,内存就不用说了吧,那么SGA=数据库高速缓存(Database buffer cache)+共享池(shared pool)+重做日志缓存区(redo log buffer)+大型池(large pool)+java池(java pool)+流池(stream pool)+……

数据库高速缓存:用来存储三部分数据,还没有来得及写会数据库的数据,空块,正在使用的数据。根据箭头可知应该是dbw进程完成的。

重做日志缓存:保存了之前修改的数据原始记录用来回滚

共享池:包括两部分数据字典缓存和sql缓存,数据字典缓存缓存了数据库一些表,列,用户,权限,索引等信息。用来加快sql语句解析的速度。

数据库缓存缓存了一些sql语句和这些语句解析后的代码和执行计划。

正因为共享区的存在,所以sql语句会互相影响。从而影响执行效率

那么具体是怎么影响的呢,那就是数据库高速缓存中的软解析和硬解析对sql效率的影响



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值