Oracle PGA和SGA区别以及latch和lock的使用场合
2014-02-10 14:08
344 查看
1.PGA和SGA区别是什么?
SGA是系统全局区,PGA是进程全局区,也有叫用户全局区。
oracle在跑,SGA就是oracle的内存结构,主要存放:
a) 共享池(shared pool) :用来存储最近执行的SQL 语句和最近使用的数据字典的数据。
b) 数据缓冲区 (database buffer cache) :用来存储最近从数据文件中读写过的数据。
c) 重作日志缓冲区(redo log buffer ):用来记录服务或后台进程对数据库的操作。
另外在SGA 中还有两个可选的内存结构:
d)Java pool: 用来存储Java 代码。
e)Large pool: 用来存储不与SQL 直接相关的大型内存结构。备份、恢复使用。
oracle启动时分配,oracle关闭时回收。
PGA是有用户连oracle时,oracle给开辟的一个内存区, 只供该用户使用,该用户断开后,oracle就会将这块内存回收。
2.latch和lock分别适用于什么场合?
lock分表级锁,行级锁,也可以分共享锁、独占锁,就是对比进行操作时进行锁定。
latch是内存锁。比如,一个数据块,被加载到内存中,当多个会话对该内存中的块进行争用时,使用的锁。
3.char、varchar和varchar2的区别是什么?
char的存储为定长的。
varchar和varchar2的存储都为不定长的,字符要用几个字节存储要看数据库的字符集。
SGA是系统全局区,PGA是进程全局区,也有叫用户全局区。
oracle在跑,SGA就是oracle的内存结构,主要存放:
a) 共享池(shared pool) :用来存储最近执行的SQL 语句和最近使用的数据字典的数据。
b) 数据缓冲区 (database buffer cache) :用来存储最近从数据文件中读写过的数据。
c) 重作日志缓冲区(redo log buffer ):用来记录服务或后台进程对数据库的操作。
另外在SGA 中还有两个可选的内存结构:
d)Java pool: 用来存储Java 代码。
e)Large pool: 用来存储不与SQL 直接相关的大型内存结构。备份、恢复使用。
oracle启动时分配,oracle关闭时回收。
PGA是有用户连oracle时,oracle给开辟的一个内存区, 只供该用户使用,该用户断开后,oracle就会将这块内存回收。
2.latch和lock分别适用于什么场合?
lock分表级锁,行级锁,也可以分共享锁、独占锁,就是对比进行操作时进行锁定。
latch是内存锁。比如,一个数据块,被加载到内存中,当多个会话对该内存中的块进行争用时,使用的锁。
3.char、varchar和varchar2的区别是什么?
char的存储为定长的。
varchar和varchar2的存储都为不定长的,字符要用几个字节存储要看数据库的字符集。
varchar2是oracle提供的独特的数据类型,oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,这是因为varchar是标准sql提供的数据类型,有可能随着sql标准的变化而改变 。
oracle中会将空字符串当做null来处理,而sql标准的varchar则会存在空字符串。
新版本中varchar就是varchar2的别名,没有什么区别,但是由于上述原因,推荐使用varchar2。
相关文章推荐
- Oracle中Latch 和 Lock的区别
- volatile、synchronized、lock有什么区别,以及在哪些场景下使用哪种方式?
- oracle内存相关(sga,pga,latch)
- CountDownLatch、CyclicBarrier、Semaphore共同之处与区别以及各自使用场景
- Oracle与MySQL存储过程以及游标使用的区别
- oracle表空间使用状态以及sga、pga各个参数查询语句
- oracle调整Lock_sga参数而不使用虚拟内存
- NSOperationQueue和GCD的区别,以及在什么场合下使用
- NSOperationQueue和GCD的区别,以及在什么场合下使用
- oracle12c之 控制pdb中sga 与 pga 内存使用
- ArrayList LinkedList 的区别 以及使用场合
- oracle12c之 控制pdb中sga 与 pga 内存使用
- oracle在专用与共享的模式下SGA和PGA的区别
- volatile、synchronized、lock有什么区别,以及在哪些场景下使用哪种方式?
- 如何查看oracle SGA各组件大小,以及调整db_cache,shared_pool,PGA大小
- Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php c#.Net
- C#基础篇 重写与重载,以及其中设计的虚方法和抽象方法的使用和区别
- Latch和Lock的区别
- jQuery的change函数,以及on函数的change事件,使用和区别
- C# Hashtable 使用说明 以及 Hashtable和HashMap的区别[转]