日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

decose oracle_oracle 内存与进程

發(fā)布時(shí)間:2025/4/17 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 decose oracle_oracle 内存与进程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

shared pool

1 庫緩存 library cache

游標(biāo)和pl/sql游標(biāo)不是一個(gè)概念

hashset

在找bucket

根據(jù)shared_pool_size 指定的尺寸,可以計(jì)算出bucket個(gè)數(shù)

每一個(gè)bucket都有一個(gè)對(duì)象制定

2 數(shù)據(jù)字典緩沖

內(nèi)存塊組成 chunk

chunk是shared pool 中內(nèi)存分配的最小單元,在內(nèi)存中是連續(xù)的

chunk分類

1. free 2.recreatable 3.freeable 4. perm

一條sql語句

1.進(jìn)入共享池 shared pool

2.轉(zhuǎn)為為ascii值

3.對(duì)ascii 進(jìn)行hash運(yùn)算,得到一個(gè)數(shù)值(對(duì)應(yīng)的bucket的號(hào)碼)

對(duì)bucket進(jìn)行遍歷,遍歷bucket 的時(shí)候,

有:直接返回可以使用的sql

沒有:獲取shared pool latch,硬解析開始。

硬解析的過程:

1 對(duì)sql語句進(jìn)行 語法檢查, 如果有錯(cuò),馬上退出。

select * form emps

2 檢查sql語句涉及到的對(duì)象是否存在

3 檢查權(quán)限

4 獲取free bucket中當(dāng)空的chunk以及相關(guān)的latch

5 通過優(yōu)化器,創(chuàng)建執(zhí)行計(jì)劃,最優(yōu)的。

6 執(zhí)行計(jì)劃以及sql文本進(jìn)入 library cache,在解析的過程中,

進(jìn)程一直持有l(wèi)ibrary cache的latch,一直到硬解析結(jié)束。

軟解析:

1.

A select * from emp;

B select * from emp; 省略5 ?6

2.

A select * from emp;

select * from emp;省略2 4 5 6

4.將對(duì)象放進(jìn)對(duì)應(yīng)的bucket中

SQL 語句解析過程

select * from emp where empno=7369

硬解析

軟解析

latch 閂鎖

1.latch 是保護(hù) 鏈的

2.簡(jiǎn)單 只有兩個(gè)狀態(tài) 0 1 內(nèi)存鎖

latch 是保護(hù) 鏈的,不是保護(hù)數(shù)據(jù)的

要訪問修改 鏈,首先有鏈的latch

latch爭(zhēng)用

例子:

2 cpu

A 進(jìn)程

B 進(jìn)程

C 進(jìn)程

A進(jìn)程 獲取到CPU時(shí)間片 讀取鏈 需要獲取latch 將0改為1

B進(jìn)程 獲取到另一個(gè)CPU,B去讀取這個(gè)鏈

B有兩種選擇:

1 馬上退出CPU 讓其他進(jìn)程工作 ====》 C進(jìn)程進(jìn)入CPU

2 B進(jìn)程知道這時(shí)一個(gè)閂鎖 latch,知道很快就被釋放,在CPU等會(huì)。閂自旋 空轉(zhuǎn)CPU。

嘗試3次,如果嘗試3次之后,還沒有等到latch,退出CPU.

發(fā)現(xiàn)shared pool latch 被大量爭(zhēng)用,說明有 大量的sql語句, 需要被硬解析,

select * from emp where empno=7369

select ?* from emp where empno=7369

父子游標(biāo)

一條sql被解析,被解析后,放到庫緩存中。產(chǎn)生父游標(biāo)和子游標(biāo)

父:sql語句 ? ? ? 比較小

子:執(zhí)行計(jì)劃 ? ? ?比較大

select * from emp where id=1;

select * from emp where id=10000;

記住:

動(dòng)態(tài)性能視圖:

v$sql 每一行 ?對(duì)應(yīng)一個(gè)子游標(biāo)

v$sqlarea 每一行 對(duì)應(yīng)一個(gè)父游標(biāo)

游標(biāo)在硬解析結(jié)束后

當(dāng)session 打開游標(biāo)以后,就會(huì)鎖定父游標(biāo)。

oracle 根據(jù)父游標(biāo) 構(gòu)建子游標(biāo) reload

1 顯示shared pool 中的自由空間

desc v$sgastat

select * from v$sgastat where name='free memory'

show parameter shared_pool_size;

alter system set shared_pool_size=100M;

select * from v$librarycache

select * from v$sysstat where name='parse count(hard)'

shared_pool 的sql命中率

1 hash value

2 有的話 軟解析

3 沒有 硬解析

4

查詢命中率

select ?namespace,pins,pinhists,reloads,invalidations from v$librarycache ;

select sum(pinhits)/sum(pins) from v$libraryccache

execute dbms_stats.gather_table_stats()

分享到:

2011-09-30 08:59

瀏覽 960

分類:數(shù)據(jù)庫

評(píng)論

總結(jié)

以上是生活随笔為你收集整理的decose oracle_oracle 内存与进程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。