Bonjour,
Je rencontre un problème étrange, lorsque je spool le résultat d'un requête en AL32UTF8, cela prend 31 secondes. Lorsque je spool en WE8ISO8859P15, cela prend 2 secondes. Le character set de la base de données est UTF8.
Voici un exemple:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 1. création de la table CREATE TABLE source_data ( x, y, z , CONSTRAINT source_data_pk PRIMARY KEY (x,y,z) ) AS SELECT ROWNUM AS x , RPAD('x',50,'x') AS y , RPAD('y',50,'y') AS z FROM dual CONNECT BY ROWNUM <= 100000; 2. query.sql set pages 0 set heading off set feed off set pause off set termout off set linesize 32767 set longc 6000000 set long 6000000 set trimout on set trimspool on set timing on spool test.log; select * from source_data; exit;
le test en lui même:
1. export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
sqlplus
@query.sql
31 secondes elapsed
2.export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15
sqlplus
@query.sql
2 secondes elapsed....
La majorité du temps est passé en "SQL*Net message from client". Est ce que c'est à cause d'UTF8? Qu'est ce qui fait que l'on passe de 2 à 31 secondes pour la même requête?
Si vous avez une idée du pourquoi du comment je suis preneur.
Merci
Partager