Bonjour à tout le monde,
Je suis en train d'essayer d'optimiser ma base de données et je me pose des questions sur le nombre de process DBW à utiliser.
Voici l'état de mon environnement :
48 CPU actifs.
6 process DBW, ce qui correspond aux préconisations d'Oracle, à savoir un process DBW pour 8 CPU.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select * from v$osstat where upper(comments) like('%NUMBER%CPU%'); STAT_NAME VALUE OSSTAT_ID COMMENTS CUMULATIVE NUM_CPUS 48 0 Number of active CPUs NO NUM_CPU_CORES 24 16 Number of CPU cores NO NUM_CPU_SOCKETS 6 17 Number of physical CPU sockets NO
En faisant des recherches sur le net, je suis tombé sur des articles parlant d'écritures directes et asynchrones.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 show parameters writer db_writer_processes integer 6 select PNAME from v$process where pname like 'DBW%'; PNAME ----- DBW0 DBW1 DBW2 DBW3 DBW4 DBW5
https://oracle-base.com/articles/mis...synchronous-io
Actuellement on permet les deux sur ma base.
Est-ce qu'avec ce système d'I/O direct et asynchrone je peux (si jamais c'était nécessaire) réduire le nombre de process DBW? J'ai l'impression que le fait d'utiliser le système asynchrone réduit le bénéfice d'avoir plusieurs process DBW mais peut-être que je fais fausse route.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select name, display_value, description from v$parameter where upper(name) like '%FILESYSTEMIO_OPTIONS%'; NAME DISPLAY_VALUE DESCRIPTION filesystemio_options SETALL IO operations on filesystem files
Partager