Académique Documents
Professionnel Documents
Culture Documents
Claude DA COSTA
Dynamic SGA granules & Multiple Block sizes Contrle dynamique des buffers et blksizes multiples
Claude DA COSTA
UNDO MANAGEMENT
Dispositif : Automatic Undo Management Feature Objectif : Simplifier et automatiser la gestion des Rollback Segments Mise en oeuvre : Indiquer Oracle que l'on souhaite travailler en mode UNDO automatique undo_management=AUTO Indiquer Oracle le tablespace undo souhait undo_tablespace=' undts ' Disposer d'un espace disque suffisamment important pour obr aux exigences de rtention Crer un tablespace undo sur cet espace disque soit au moment de la cration de la base create database db dbnam undo tablespace undts datafile 'filnam ' size nM autoextend on next nM maxsize nM soit, indpendamment de la cation de la base create undo tablespace undts datafile 'filnam' size nM autoextend on next nM maxsize nM Indiquer Oracle le tablespace undo cr undo_tablespace =undts Indiquer Oracle l'exigence de rtention snapshot en secondes undo_retention =n Maintenance : Oprations classiques applicables sur un tablespace : / end backup / alter database datafile offline | online drop tablespace undts V$UNDOSTAT alter tablespace undts add datafile / rename / begin backup
Monitoring : nouvelle vue Prcautions : Le tablespace SYSTEM abrite toujours ses propres rolback, indpendamment du mode d'undo adopt. par dfaut, undo_management=manual undo_tablespace est dynamique ( alter system set undo_tablespace=... )
undo
tablespa ce datafile
undts
'filename '
on
size
n k/m
.....
r ts : 1e t n e em me eul com ace s S sp pt MI AD ado _table o d un
autoexten d maxsiz e
n k/m
undo_management=
rollback_segments=(rbs1,rbs2,...,rbsn)
.....
MANUAL
OBJECTIF : Simplifier et automatiser la gestion des rollback segments. Le DBA est affranchi compltement de la cration, de la maintenance et du suivi des segments rollback. Il se focalise sur un espace disque et une exigence de rtention des informations, tout le reste tant laiss la discrtion d'Oracle. Le mode classique est maintenu pour raisons de compatibilit et le DBA doit choisir l'un des deux modes. Ce nouveau dispositif s'appelle AUTOMATIC UNDO MANAGEMENT FEATURE : Il est comparable, dans l'esprit, celui de la nouvelle gestion des segments temporaires par dfaut. BIEN VOIR : Si undo_management=manual et undo_tablespace=tsname, erreur : undo_tablespace exige undo_management auto Si undo_management=auto et undo_tablespace omis (pas d'undo-tablespace), Oracle cherchera encore un rbs ts : S'il existe au moins 1 tablespace undo prsent, il est adopt par Oracle comme undo_tablespace : la combinaison undo_management=auto et rollback_segments=(rbsx) est permise
Claude DA COSTA
create
database
OU
....................................................................... undo_tablespace='undts'
create
undo tablespace
undts
.....
size n k/m
datafile
BIEN VOIR : Il ne s'agit pas d'un create tablespace banal mais d'un CREATE UNDO TABLESPACE Que ce soit un ordre create individuel ou une clause du create database, le rsultat est seulement la cration d'un tablespace prt tre gr en mode UNDO. ==> prsence de undo_management=AUTO et undo_tablespace=undts
Cas retenir :
DROP TABLESPACE undts fait l'quivalent de DROP TABLESPACE undts INCLUDE CONTENTS et ne peut tre lanc que si aucune instance n'utilise le tablespace. Suite quoi, fortes probabilits de ORA-1555 snapshot too old puisque les images avant le drop ne sont plus disponibles.
SAVOIR : Il est toujours possible d'augmenter l'espace TSUNDO par la commande classique : ALTER TABLESPACE undts ADD DATAFILE '...' SIZE nM AUTOEXTEND ON La plupart des commandes standard de manipulation de TS sont autorises : ADD DATAFILE RENAME DATAFILE ONLINE/OFFLINE BEGIN / END BACKUP
Claude DA COSTA Chap 13 Tablespaces Managt Page 6/33 RETENTION DES IMAGES AVANT ET SUPPRESSION DES ERREURS DUES A ALTER RBS ONLINE
Dsormais, les rollback segments et leurs extents ne sont plus accessibles. Ils sont dcids par Oracle seul. L'exigence de rtention d'images avant que l'on estimait en fonction du nobre d'extents des rollback et de l'activit gnrale est dsormais prise DIRECTEMENT EN SECONDES Oracle, avec le paramtre undo_retention=nbsec. Par ailleurs, on admet que certaines commandes alter rollback segment online peuvent subsister dans des scripts ou bien tre lances par rflexe. En mode Auto, cela provoquera des messages d'erreur que l'on peut demander ne pas voir apparatre, grace au paramtre undo_suppress_errors=true. Les paramtres suivants peuvent tre modifis par la commande ALTER SYSTEM SET : undo_tablespace (opration de switch par exemple) undo_suppress_errors (true ou false en ligne) undo_retention (exigence de rtentiondes images avant) Les paramtres suivants ne peuvent pas tre modifis par la commande ALTER SYSTEM SET : undo_management (une fois choisi, le mode de management des rollback ne peut tre modifi dans l'instance)
undo_retention= nsecs
1112 1 2 10 9 3 8 4 7 6 5
entra ne
SI ON VEUT
alter
SI ON NE VEUT PAS
rollback segment
ERROR
rbs
online
Claude DA COSTA
RECAP PARAMETRES D'INITIALISATION
crea t e UNDO
undo_tablespace='undts' AUTO
'filename '
on
size n k/m
.....
r ts : 1e nt e e m lem seu com pace IS t s p M e AD ado _tabl o und
undo_management=
rollback_segments=(rbs1,rbs2 ,...,rbsn )
.....
MANUAL
undo_retention=nsecs
11 12 1 2 10 9 3 8 4 7 6 5
entrane
SI ON VEUT
alter
SI ON NE VEUT PAS
rollback segment
ERROR
rbs
online
Claude DA COSTA
DROP
TABLESPACE
undotsname
SAVOIR : Lorsque la commande DROP TABLESPACE undotsname est utilise, un INCLUDE CONTENTS implicite est effectu.
En consquence, le tablespace est supprim, ainsi que tous ses segments undo. Si l'instance est en cours d'utilisation du tablespace undo, celui-ci ne POURRA PAS tre supprim. La suppression est effective mme si en consquence, des extents maintenus pour rtention sont supprims.
SAVOIR : V$UNDOSTAT applicable REFERENCE : V$UNDOSTAT displays a histogram of statistical data to show how well the system is working. The available statistics include undo space consumption, transaction concurrency, and length of queries executed in the instance. You can use this view to estimate the amount of undo space required for the current workload. Oracle uses this view to tune undo usage in the system. The view returns null values if the system is in manual undo management mode. Each row in the view keeps statistics collected in the instance for a 10-minute interval. The rows are in descending order by the BEGIN_TIME column value. Each row belongs to the time interval marked by (BEGIN_TIME, END_TIME). Each column represents the data collected for the particular statistic in that time interval. The first row of the view contains statistics for the (partial) current time period. The view contains a total of 1008 rows, spanning a 7 day cycle.
et manual
begin_time begin_time begin_time begin_time end_time begin_time begin_time end_time end_time begin_time begin_time end_time end_time undoblks undoblks begin_time begin_time end_time end_time undoblks undoblks begin_time end_time end_time maxconcurrency maxconcurrency undoblks undoblks end_time maxconcurrency maxconcurrency undoblks undoblks end_time txncount maxconcurrency txncount undoblks undoblks maxconcurrency maxconcurrency txncount txncount undoblks maxconcurrency maxconcurrency maxquerylen maxquerylen txncount txncount maxquerylen maxconcurrency txncount maxquerylen maxquerylen maxconcurrency expstealcnt expstealcnt txncount txncount maxquerylen maxquerylen txncount expstealcnt txncount expstealcnt s olderrcnt maxquerylen expstealcnt expstealcnt s ss olderrcnt maxquerylen s s olderrcnt expstealcnt expstealcnt ss s olderrcnt maxquerylen maxquerylen s olderrcnt expstealcnt ss olderrcnt expstealcnt ss olderrcnt expstealcnt ss olderrcnt s s olderrcnt olderrcnt ss ss olderrcnt
fin deblocks l'intervalle de temps dbut fin de l'intervalle de temps Nb undo total consomms dbut fin de l'intervalle de temps Nb blocks undo total consomms dbut de l'intervalle de temps fin de l'intervalle de temps Nb blocks undo total consomms dbut fin de l'intervalle de temps Nb blocks undo total consomms dbut de l'intervalle de temps fin de Le l'intervalle plus grand de temps nombre de transactions transactions excut excut concuramment concuramment durant durant la la priode priode Nb blocks undo total consomms fin de Le l'intervalle plus grand de temps nombre de Nb blocks undo total consomms finNb de Le l'intervalle plusundo grand detotal temps nombre de transactions excut concuramment durant la la priode priode blocks consomms fin de Le l'intervalle plus grand de temps nombre de transactions excut concuramment durant Nombre total de transactions excutes dans la priode Nb blocks undo total consomms Le plus grand nombre de transactions excut concuramment durant la priode Nombre total de transactions excutes dans la priode Nb blocks undo total consomms Le plusundo grand nombre de transactions transactions excut concuramment durant la la priode priode Nombre total de transactions excutes dans lapriode priode durant Nb blocks total consomms Le plus grand nombre de excut concuramment Nombre total de transactions excutes dans la Nb blocks undo total consomms Le plus Longueur grand en nombre secondes de transactions de la la plus excut excut longue requte concuramment durant la la priode priode Nombre total de transactions excutes dans la priode Longueur en secondes de plus longue requte Le plus grand nombre de transactions concuramment durant Nombre total de transactions excutes dans la priode Longueur en secondes de la plus longue requte Le plus grand nombre de transactions excut concuramment durant la priode Nombre total de transactions excutes dans la priode Longueur en secondes de la plus longue requte Le plus grand nombre de de transactions excut concuramment durant priode Nombre de tentatives deexcutes transfert d' u n extent extent expir, d' d' u n undo la segment vers un un autre autre Nombre total de transactions excutes dans lapriode priode Longueur en secondes la plus longue longue requte Nombre Nombre total de transactions tentatives de transfert d' u dans n la expir, u n undo segment vers Longueur en secondes de la plus requte Nombre Nombre total de de transactions tentatives de excutes transfert d' u dans n extent la priode expir, d' u n undo segment vers un autre autre Longueur en secondes de la plus longue requte Nombre Nombre total de transactions tentatives de excutes transfert d' u dans n extent la priode expir, d' u n undo segment vers un Nombre d' e rreurs "snapshot "snapshot too old intervenus durant la priode Longueur en secondes de la plus longue requte Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers un autre Nombre d' e rreurs too old intervenus durant la priode Longueur en secondes de la plus longue requte Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers un autre Nombre d' e rreurs "snapshot "snapshot too old intervenus durant la priode Longueur en secondes de la plus longue requte Nombre de tentatives dela transfert d' u n extent extent expir, d' u n la undo segment vers vers un un autre autre Nombre d' e rreurs too old intervenus durant priode Longueur en secondes de plus longue requte Nombre de tentatives de transfert d' u n expir, d' u n undo segment Nombre d' e rreurs "snapshot too old intervenus durant la priode Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers un un autre autre Nombre d' e rreurs "snapshot too old intervenus durant la priode Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers Nombre d' e rreurs "snapshot too old intervenus durant la priode Nombre de tentatives de transfert d' u n extent expir, d' u n undo segment vers un autre Nombre d' e rreurs "snapshot too old intervenus durant la priode Nombre d' d' e rreurs "snapshot "snapshot too too old old intervenus intervenus durant durant la la priode priode Nombre e rreurs Nombre d'e rreurs "snapshot too old intervenus durant la priode
V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT V$UNDOSTAT dbutde del'intervalle l'intervallede detemps temps V$UNDOSTAT dbut V$UNDOSTAT dbut de l'intervalle de temps V$UNDOSTAT dbut de l'intervalle de temps fin de l'intervalle de temps V$UNDOSTAT dbut fin de dbut de l'intervalle l'intervalle de de temps temps
tri descendant sur begin_time Participe au calcul du taux de consommation et permet d'estimer la taille du TS Undo
Claude DA COSTA
REMARQUE : UNDO TABLESPACE et TEMPORARY TABLESPACES sont associs la database et peuvent tre considr comme des TS SYSTEM. actuellement, on peut voir les TS system, temporary et undo comme des TS systme. Les trois sont grs en db_block_size uniquement. Concerne : Buffer cache Shared pool Large pool si taille SGA < 128 Mb si taille SGA > 128 Mb nb min granules nb max granules Suivi : SUIVI DES CACHES V$SGA_DYNAMIC_COMPONENTS granule size = 4Mb granule size = 16 Mb 3 sga_max_size
COMPONENT
V$SGA_DYNAMIC_COMPONENTS
------------------------ current_size min_size max_size oper_count
le composant
---------------------------------------
taille actuelle du composant taille min du composant depuis le start de l'instance taille max du composant depuis le dmarrage de l'instance nombre d'oprations exerces depuis le dmarrage de l'instance
------------------------
Calculs automatiques : nb LRU latches nb DBWRs nbCPU / 2 nbCPU / 8 (ou 1) PAR POOL (ou 1)
------------------------ granule_size
la taille de granule
taille de granule
---------------------------------------
Claude DA COSTA
DYNAMIC SGA GRANULES
SAVOIR : Avec 9i, Il est possible de modifier la taille de la SGA dynamiquement (sans arrter l'instance). Cela concerne : Le Buffer Cache de Donnes La Shared Pool Le Redo Log Buffer
Library cache
Buffer cache des donnes
Large Pool
Dico cache
Shared poool
Pour assurer ce service, Oracle introduit un mcanisme d'allocation de morceaux de mmoire appels GRANULES. Les GRANULES sont des UNITES DE MEMOIRE CONTIGUS. Les Granules ont deux tailles possibles seulement, qui dpendent de la taille de la SGA, conditionne par le paramtre SGA_MAX_SIZE .
Au STARTUP, l'allocation des BCD, LC et BRL se fait par frontires de granules, en partant d'1 granule seulement pour chaque entit mmoire 1 granule pour fixed SGA et BRL 1 granule pour BCD 1 granule pour SP et en augmentant le nombre de granules durant la suite du startup. maximum : SGA_MAX_SIZE minimum : 3 granules donc pour la SGA. DESORMAIS, LE DBA A LA CAPACITE DE MODIFIER SES ZONES MEMOIRE DE LA SGA PAR UNE COMMANDE ALTER SYSTEM. Les valeurs introduites sont des CIBLES DE TAILLE et non pas des prallocations. Toute valeur introduite par le DBA est automatiquement arrondie un multiple de taille de granule.
SGA_MAX_SIZE=
GRANULES
4MB 16MB
< 128MB
> 128MB
Claude DA COSTA
Claude DA COSTA
DYNAMIC SGA GRANULES
Claude DA COSTA
SUIVI
4MB
Dico cache
Shared poool
16MB
------------------------- le composant --------------------------------------------------------------- le composant --------------------------------------------------------------- le composant -------------------------------------- current_size taille actuelle du composant current_size taille actuelle du composant min_siz e min du current_size taille taille actuelle du composant composant depuis le start de l'instance min_siz e taille min du composant depuis le start de l'instance max_size du composant depuis le dmarrage de l'instance min_siz e taille taille min max du composant depuis le start de l'instance max_size taille max d'oprations du composant depuis depuis le dmarrage de l'instance oper_count nombre exerces le dmarrage de l'instance max_size taille max du composant depuis le dmarrage de l'instance oper_count nombre d'oprations exerces depuis le dmarrage de l'instance oper_count nombre d'oprations exerces depuis le dmarrage de l'instance ------------------------- les oprations sur le composant------------------------------------------- les oprations sur le composant ------------------------------------------- les oprations sur le composant------------------ last_oper_type last_oper_type grow last_oper_type grow
shrink last_oper_mode shrink last_oper_mode manual last_oper_mode manual
shrink grow
Large Pool
last_oper_time last_oper_time ------------------------- la taille de granule --------------------------------------------------------------- la taille de granule --------------------------------------------------------------- la taille de granule -------------------------------------- granule_size taille de granule granule_size taille de granule granule_size taille de granule
Claude DA COSTA
TUNING DU BUFFER CACHE : LA VUE ACTUELLE EN 9i SI PARAMETRES DE GESTION DYNAMIQUE DB_xxCACHE SIZE
MNEMO :
db_
V$BUFFER_POOL name V$BUFFER_POOL name V$BUFFER_POOL defaul t name V$BUFFER_POOL name defaul t V$BUFFER_POOL keep defaul t name keep defaul t name e keep defaul t recycl name recycl e keep defaul t name recycl e keep defaul t recycl e defaul t keep recycl block_size e recycl e keep block_size keep recycl block_size e 2048 recycl e 2048 block_size 4096 block_size 2048 4096 2048 block_size 8192 4096 2048 block_size 8192 4096 2048 block_size 16384 8192 4096 2048
du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8 du buffer pool : 1-8
V$BUFFER_POOL
id id id id id id V$BUFFER_POOL id V$BUFFER_POOL id
16384 8192 4096 2048 16384 32768 8192 4096 16384 32768 8192 4096 16384 32768 8192 16384 32768 8192 16384 32768 32768 current_size taille actuelle en MB 16384 current_size taille actuelle en MB 32768 current_size taillenombre actuellede en MB buffers buffers 32768 current_size buffers taille nombre actuelle de en buffers MB current_size taille actuelle en MB buffers target_size nombre taille de cible buffers si resize en cours : current_size current_size taille nombre actuelle de en buffers MB buffers target_sizetaille taille cible si resize en cours : actuelle en MB buffers buffers target_size nombre taillede cible buffers si db_xx_cache_size= resize en cours : ) (alter nombre system set current_size actuelle en buffers MB target_size (alter taille system taillede cible set si db_xx_cache_size= resize en cours : ) buffers nombre de buffers target_size (alter system taille cible set si db_xx_cache_size= resize en cours : ) buffers target_size nombre taille de cible buffers si db_xx_cache_size= resize en cours : ) (alter system set target_size (alter system taille cible set si db_xx_cache_size= resize en cours : ) target_size taille cible resize en cours : ) (alter system set si db_xx_cache_size= (alter system set db_xx_cache_size=) (alter system set db_xx_cache_size=)
db_recycle_cache_size=nM
db_keep_cache_size=nM
db_block_size=
Claude DA COSTA
MODIFICATION DYNAMIQUE DES TAILLES DE COMPOSANTS
db_block_size
db_block_size
db_block_buffers buffer_pool_keep=
=nb
( buffers:nb lru_latches:nb )
default pool identifi en taille directement et taille totale abandonn keep pool identifi en taille directement recycle pool identifi en taille directement
buffer_pool_recycle=
buffers:nb
lru_latches:nb
shared_pool_size log_buffer
shared_pool_size log_buffer
conserv
conserv
8i
9i
REMARQUER : Le nombre de lru_latches et de buffers pour keep et recycle ne sont plus indiqus : DESORMAIS, ILS SONT ETABLIS DYNAMIQUEMENT (dtail sur la suite)
Claude DA COSTA
NOUVELLE STRUCTURE SGA
SHARED_POOL_SIZE =
LARGE_POOL_SIZE
Library
cache
Buffer cache des donnes
Dico cache
"raw" cache
Large Pool
Shared poool
16MB 4MB
16MB 4MB
16MB 4MB
db_recycle_cache_size= nM
db_keep_cache_size= nM
db_block_size=
Claude DA COSTA
MODALITES DE CALCUL AUTOMATIQUE DES NOMBRES DE LATCHES
BIEN VOIR : Le nombre de LRU LATCHES TOTAL est gal (nbCpus / 2 ) * nbPools * nbblksizes
db_block_lru_latches
CALCULE AUTOMATIQUEMENT
LRU latch
LRU latch
LRU latch
LRU latch
LRU latch
LRU latch
LRU latch
LRU latch
LRU latch
db_block_size=
LRU latch
LRU latch
LRU latch
Claude DA COSTA
MODALITES DE CALCUL AUTOMATIQUE DES NOMBRES DE DBWRs
CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU
db_writer_processes
CALCULE AUTOMATIQUEMENT
/8
(ou 1)
DECmmp 12000
DBW0
DBW1
DBW2
DBW4
datafile
Claude DA COSTA
DB CACHE ADVICE
Objectifs: Permettre de prvoir le comportement du BCD avec diffrentes tailles de cache ET tailles de block : ce dispositif produit des lignes dans une vue, qui servent gnrer des rapports. Mise en oeuvre : Activation : alter system set db_cache_advice = actif inactif prt (non oprationnel et mmoire alloue) Contrle : on off ready
V$DB_CACHE_ADVICE
Exploitation des rsultats :
(status)
V$DB_CACHE_ADVICE : identique V$BUFFER_POOL (n lots de 8 lignes) nom du buffer pool block size nb buffers utilise dans la prdiction taille de cache utilise dans la prdiction nb phy reads / nb cache reads nb phy reads estim name block_size base d'estimation buffers_for_estimate size_for_estimate estd_physical_read_factor Rsultat d'estimation estd_physical_reads
Claude DA COSTA
LE CACHE ADVISORY : PREVOIR LE COMPORTEMENT DU BCD AVEC DIVERSES TAILLES DE CACHE on db_cache_advice = ready off cache advisory feature ENABLED cache advisory feature DISABLED et memoire ALLOUEE cache advisory feature DISABLED
OFF
alter system se t
alter
system
se t
db_cache_advic e = db_cache_advic e =
off
on
ON
alter system se t
READY
db_cache_advic e =
ready
SAVOIR : Le "Cache Size Advisory Feature " permet de prvoir le comportement avec diffrentes tailles de cache. On met en oeuvre ou l'on inhibe la collecte de statistiques destines effectuer ces prvisions grace la commande alter system set db_cache_advice = on | off | ready.
Claude DA COSTA
LE CACHE ADVISORY : CONSULTATION DES RESULTATS
BIEN VOIR : A rapprocher de la vue V$BUFFER_POOL pour la similarit de structure : V$BUFFER_POOL contient les valeurs actuelles relatives chacune des partitions de buffers (id ). V$DB_CACHE_ADVICE contiendra, pour chaque partition de buffer (id ), l'ensemble des valeurs ESTIMEES d'critures physiques et de taux d'critures physiques, pour une certaine taille.
cache name (taille de utilise, en MB) default V$DB_CACHE_ADVICE keep recycle default name id id recycle V$DB_CACHE_ADVICE id id id default keep id name block_s i z e du buffer id pool :: 1-8 1-8 du buffer id pool dubuffer bufferpool pool 1-8 recycle du buffer pool :: 1-8 1-8 du du buffer pool pool ::: 1-8 1-8 default keep 2048 du buffer status block_s i z e du buffer pool : 1-8 V$BUFFER_POOL keep recycle currently running V$BUFFER_POOL ON V$BUFFER_POOL 2048 4096 V$BUFFER_POOL block_s i z e V$BUFFER_POOL V$BUFFER_POOL V$BUFFER_POOL OFF recycle disabled V$BUFFER_POOL 4096 8192 block_s i z e 2048 name name name name name 8192 16384 name name default default name name block_s i z e 2048 4096 default 32768 default 16384 default default keep keep default default keep default 2048 4096 8192 keep keep keep 32768 recycle keep recycle 16384 keep recycle recycle keep 4096 8192 recycle status recycle recycle recycle 32768 recycle ON currently running 8192 16384 status block_s block_s iz z e block_s iz e iz e block_s iz e OFF disabled 16384 32768 block_s iz e block_s 2048 2048 iz e ON currently running block_s i e 2048 block_s i z e status 2048 2048 block_s i z e 32768 4096 2048 OFF disabled 2048 2048 4096 4096 ON currently running 4096 4096 status 4096 8192 2048 size_for_estim a t e taille de cache prdite en MB 8192 4096 8192 4096 8192 OFF disabled 8192 ON currently running 16384 8192 8192 16384 4096 status 8192 16384 size_for_estim a t e taille de cache prdite en MB 16384 16384 16384 OFF disabled 32768 16384 32768 8192 ON currently estd_physical_read_factor running ratio nb phy reads / nb cach reads. null si 16384 32768 32768 32768 32768 size_for_estim a t e taille de cache prdite en MB 32768 aucun phy read OFF disabled 32768 16384 estd_physical_read_factor ratio nb phy reads / nb cach reads. null si size_for_estim a t e taille de cache prdite MB taille current_s iz z e taille actuelle actuelle en en MB MB estd_physical_ re a d s en aucun nombre estim de phy reads pour la current_s iz e taille 32768 phy read current_s iz e taille actuelleen enMB MB current_s iz e taille actuelle en MB current_s iz e taille actuelle estd_physical_read_factor ratio nb phy reads / nb cach reads. null si current_s i e taille actuelle en MB de cache buffe r s nombre de buffers current_s i z e taille actuelle en MB current_s buffe r s i z e taille nombre actuelle de en buffers MB size_for_estim a t e taille de cache prdite MB estd_physical_ re a d s en aucun nombre estim de phy reads pour la taille buffe buffe r s nombre de de buffers buffers buffe r s nombre de buffers phy read r s nombre buffe s nombre de buffers buffers a testd_physical_read_factor ratio nb phy reads / nb cach reads. null si buffe target_si z e taillede cible si resize resize en en cours cours : buffe rr s nombre de buffers de cache target_si r s z e nombre taille cible si buffers_for_estim e nb buffers selon size_for_estimate target_si z e taille cible si resizeen encours cours:::: estd_physical_ r e a d s nombre estim de phy reads pour la taille target_si target_si z e taillecible ciblesi siresize resize en cours target_si z e taille cible si resize aucun phy read z e taille en cours : ( alter system set db_xx_cache_size= target_si z e taille cible si resize en cours ( alter system set db_xx_cache_size= estd_physical_read_factor ratio nb phy reads / nb cach reads. null si target_si z e system taille cible si resize en cours ::)))) ( alter system set db_xx_cache_size= de cache ( alter set db_xx_cache_size= ( alter system set db_xx_cache_size= ) estd_physical_ reads nombre estim de phy reads pour la taille ( alter system set db_xx_cache_size= ) aucun phycach readreads. null si alter system system set set db_xx_cache_size= db_xx_cache_size= (( alter )) estd_physical_read_factor ratio nb phy reads / nb de cache estd_physical_ reads nombre estim de phy reads pour la taille aucun phy read de cache estd_physical_ reads nombre estim de phy reads pour la taille
de cache
id id id id id du buffer buffer pool :: 1-8 1-8 id du pool id du buffer pool 1-8 id id du buffer buffer pool pool :::1-8 1-8 id id du id du buffer pool : 1-8 id du buffer buffer pool :: 1-8 1-8 du buffer buffer du pool 1-8 pool id du pool ::1-8 1-8 id du buffer pool id id du buffer pool ::1-8 1-8 id du buffer pool id id du buffer pool : :1-8 1-8 buffers_for_estimate id du buffer pool : du buffer id du pool buffer 1-8 pool : 1-8 du buffer pool ::1-8 1-8 id iddu du buffer pool id id du buffer pool ::1-8 1-8 (nb buffers d'estimation) id buffer pool id du buffer buffer pool : :1-8 1-8 buffers_for_estimate id du pool : du buffer id pool : 1-8 du buffer pool : 1-8 du buffer idpool pool :1-8 1-8 du buffer pool 1-8 id id du buffer pool : :1-8 id du buffer (nb buffers d'estimation) id du buffer pool: ::1-8 1-8 id buffers_for_estimate du buffer pool id V$DB_CACHE_ADVICE du buffer id du pool buffer : 1-8 pool : 1-8 du buffer id pool : 1-8 id du buffer id pool : 1-8 du buffer buffer pool pool :: 1-8 1-8 id (nb buffers d'estimation) du id du buffer pool : 1-8 id buffers_for_estimate du buffer pool : 1-8 idpool V$DB_CACHE_ADVICE du buffer buffer du pool buffer 1-8 pool : 1-8 id du id pool ::1-8 1-8 du buffer id :1-8 du buffer pool:::1-8 1-8 name (nb buffers d'estimation) du buffer pool du buffer pool buffers_for_estimate du buffer pool : 1-8 V$DB_CACHE_ADVICE du buffer pool : 1-8 name default (nb buffers d'estimation) size_for_estimate V$DB_CACHE_ADVICE keep
Claude DA COSTA
LE CACHE ADVISORY : CONSULTATION DES RESULTATS
size_for_estimate format 999,999,999,999 heading Cache Size (MB) buffers_for_estimate format 999,999,999 heading Buffers estd_physical_read_factor format 999.90 heading Estd Phys|Read Factor estd_physical_reads format 999,999,999 heading Estd Phys| Reads
SELECT size_for_estimate, buffers_for_estimate , estd_physical_read_factor, estd_physical_reads FROM V$DB_CACHE_ADVICE WHERE name = DEFAULT AND block_size = (SELECT value FROM V$PARAMETER WHERE name = db_block_size) AND advice_status = ON;
The following output shows that if the cache was 212 MB, rather than the current size of 304 MB, the estimated additional number of physical reads would be over 17 million (17,850,847). Increasing the cache size beyond its current size would not provide a significant benefit.
Estd Phys Estd Phys Cache Size (MB) Buffers Read Factor Reads ------------- -------------- ---------- ---------------30 3,802 18.70 192,317,943 60 7,604 12.83 131,949,536 91 11,406 7.38 75,865,861 121 15,208 4.97 51,111,658 152 19,010 3.64 37,460,786 182 22,812 2.50 25,668,196 212 26,614 1.74 17,850,847 243 30,416 1.33 13,720,149 273 34,218 1.13 11,583,180 304 38,020 1.00 10,282,475 334 41,822 .93 9,515,878 364 45,624 .87 8,909,026 395 49,426 .83 8,495,039 424 53,228 .79 8,116,496 456 57,030 .76 7,824,764 486 60,832 .74 7,563,180 517 64,634 .71 7,311,729 547 68,436 .69 7,104,280 577 72,238 .67 6,895,122 608 76,040 .66 6,739,731
Current Size
Claude DA COSTA
Claude DA COSTA
LE MULTIPLE BLOCK SIZE SUPPORT AU NIVEAU DE LA DATA BASE
SAVOIR : Le "Multiple Block Size support" permet la cration de bases ayant plusieurs blocksizes. BIEN VOIR : un buffer_pool : default/keep/recycle un blocksize : std ou 2k ou 4k ou 8K ou 16k ou 32k les recycle et keep pools ne peuvent avoir que le block size standard (dfini par db_block_size ) Le default pool a le blocksize dfini par db_block_size (pour une taille dfinie par db_cache_size ) puis des blocksizes et tailles dfinis en une fois par le paramtre db_ nK_cache_size .
db_recycle_cache_size=nM
db_keep_cache_size=nM
nM
>
4Mb
16Mb
> 128MB
db_block_size
Claude DA COSTA
LE MULTIPLE BLOCK SIZE SUPPORT AU NIVEAU DU TABLESPACE
CAS D'USAGE : Transport de tablespaces entre bases de diffrent blocksize. Par exemple,
SAVOIR : Le block size souhait peut tre affect un tablespace. Nouvelle clause BLOCKSIZE l'ordre CREATE TABLESPACE Nouvelle colonne BLOCK_SIZE la vue DBA_TABLESPACES
create
tablespace
tsname
datafile
'filename'
size n k/m
tablespace_name
DBA_TABLESPACES
extent management local autoallocate
status
online offline read only
segment_space_management
auto manua l
extent_management local dictionary allocation_type block_size min_extents max_extents initial_extent next_extent pct_increase
blocksize
nk
Claude DA COSTA
ORA-380
Indiquer un block size alternatif incompatible avec la plateforme : n de db_ nK_cache_size non conforme pour plateforme
ORA-382
indiquer des tablespaces de blocksize diffrents pour des partitions d'un mme segment
indiquer blocksize alternatif pour un tablespace utilis comme Wide Temporary Tablespace
Claude DA COSTA
LES ERREURS POSSIBLES ET LEUR CODE
ORA-00380
db_block_size=nK
db_ n k_cache_size=nM
DIFFERENTS ?
ORA-380
NON
Cause : User specified the parameter DB_ nK_CACHE_SIZE (where n is one of 2,4,8,16,32), while the standard block size for this database is equal to n Kbyte s. This is illegal. Action : Specify the standard block size cache using DB_CACHE_SIZE (DEFAULT pool) (and DB_RECYCLE_CACHE_SIZE , DB_KEEP_CACHE_SIZE if additional buffer pools are required). Do NOT use the corresponding DB_ nK_CACHE_SIZE parameter for the standard block size.
Claude DA COSTA
LES ERREURS POSSIBLES ET LEUR CODE
ORA-00382 string
db_nk_cache_size=nM
IBM AS/400
NON
ORA-382
Cause : User specified a value for DB_nK_CACHE_SIZE where n is one of { 2 , 4, 8, 16, 32}, but n k is not a valid block size for this platform. Action : Remove corresponding parameter from the initialization parameter file and restart the instance.
Claude DA COSTA
LES REGLES
REGLE 1 : TOUTES PARTITIONS D'UN MEME OBJET DOIVENT RESIDER SUR DES TABLESPACE DE MEME BLOCKSIZE
col col col col
col
col
col
col
col
col
col
create
tablespace
.............
create
tablespace
.............
create
tablespace
.............
blocksize
Claude DA COSTA
LES REGLES
REGLE 2 : TOUS LES TABLESPACES PERMANENTS OU TEMPORAIRES UTILISES COMME DEFAULT TEMPORARY TABLESPACE (WTST) EXIGENT LE BLOCKSIZE STANDARD
create
default
temporary
tablespace
tsname
TEMPORAIRES "uniformmanaged"
tempfile
extent management local unifor m
'filename'
size n k/m
Def :
EXTENT
EXTENT
1M size
size K|M
blocksize
Claude DA COSTA
LES REGLES
REGLE 3: IL EST POSSIBLE D'ADOPTER UN BLOCKSIZE POUR UN LOB SEGMENT OU UN OVERFLOW D'IOT, DIFFERENT DE CELUI DE LA TABLE DE BASE
create tablespace blocksize .............
tablespace
ts
TABLESPAC E
Xk
create
table tab
(,
col
datatype
constraint ctr
primary key
en te te
lon g
PK
po rtio ni nd ex
val
PK
lon gc ol
overflow tablespace
pctthreshold
n
ts
d bo po rde rti me on nt
val col
create
tablespace
.............
SEGMENT DE DEBORDEMENT
Yk
Claude DA COSTA
LES REGLES
REGLE 3: IL EST POSSIBLE D'ADOPTER UN BLOCKSIZE POUR UN LOB SEGMENT OU UN OVERFLOW D'IOT, DIFFERENT DE CELUI DE LA TABLE DE BASE
LOBI N T