Bonjour,
Je fais des tests sur le SCN et je constate des décalages avec SYSDATE.
J'affiche 60 SCN en me basant sur le champ CURRENT_SCN de V$DATABASE ainsi que SYSDATE.
Je fais aussi une conversion du SCN en TIMESTAMP et de SYSDATE en SCN.
Code : 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 SET SERVEROUTPUT ON DECLARE V_NUM_CURRENT_SCN NUMBER; V_VCHAR_SCN VARCHAR2(50); V_VCHAR_SYSDATE VARCHAR2(50); V_NUM_SYSDATE_SCN NUMBER; BEGIN FOR i in 1..60 LOOP DBMS_LOCK.SLEEP(1); select current_scn, TO_CHAR(SCN_TO_TIMESTAMP(current_scn), 'DD/MM/YYYY HH:MI:SS'), TO_CHAR(sysdate, 'DD/MM/YYYY HH:MI:SS'), TO_NUMBER(TIMESTAMP_TO_SCN(sysdate)) INTO V_NUM_CURRENT_SCN, V_VCHAR_SCN, V_VCHAR_SYSDATE, V_NUM_SYSDATE_SCN from v$database, dual; DBMS_OUTPUT.PUT_LINE('Current SCN : ' || V_NUM_CURRENT_SCN || ' ----- Date current_scn : ' || V_VCHAR_SCN || ' ----- Date Sysdate : ' || V_VCHAR_SYSDATE || ' ----- SCN Sysdate : ' || V_NUM_SYSDATE_SCN); END LOOP; END;
Voici les résultats.
Code : 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 Current SCN : 1105719307 ----- Date current_scn : 30/06/2016 11:03:12 ----- Date Sysdate : 30/06/2016 11:03:13 ----- SCN Sysdate : 1105719307 Current SCN : 1105719308 ----- Date current_scn : 30/06/2016 11:03:12 ----- Date Sysdate : 30/06/2016 11:03:14 ----- SCN Sysdate : 1105719307 Current SCN : 1105719309 ----- Date current_scn : 30/06/2016 11:03:12 ----- Date Sysdate : 30/06/2016 11:03:15 ----- SCN Sysdate : 1105719307 Current SCN : 1105719311 ----- Date current_scn : 30/06/2016 11:03:15 ----- Date Sysdate : 30/06/2016 11:03:16 ----- SCN Sysdate : 1105719310 Current SCN : 1105719312 ----- Date current_scn : 30/06/2016 11:03:15 ----- Date Sysdate : 30/06/2016 11:03:17 ----- SCN Sysdate : 1105719310 Current SCN : 1105719313 ----- Date current_scn : 30/06/2016 11:03:15 ----- Date Sysdate : 30/06/2016 11:03:18 ----- SCN Sysdate : 1105719310 Current SCN : 1105719315 ----- Date current_scn : 30/06/2016 11:03:18 ----- Date Sysdate : 30/06/2016 11:03:19 ----- SCN Sysdate : 1105719314 Current SCN : 1105719316 ----- Date current_scn : 30/06/2016 11:03:18 ----- Date Sysdate : 30/06/2016 11:03:20 ----- SCN Sysdate : 1105719314 Current SCN : 1105719317 ----- Date current_scn : 30/06/2016 11:03:18 ----- Date Sysdate : 30/06/2016 11:03:21 ----- SCN Sysdate : 1105719314 Current SCN : 1105719319 ----- Date current_scn : 30/06/2016 11:03:21 ----- Date Sysdate : 30/06/2016 11:03:22 ----- SCN Sysdate : 1105719318 Current SCN : 1105719320 ----- Date current_scn : 30/06/2016 11:03:21 ----- Date Sysdate : 30/06/2016 11:03:23 ----- SCN Sysdate : 1105719318 Current SCN : 1105719321 ----- Date current_scn : 30/06/2016 11:03:21 ----- Date Sysdate : 30/06/2016 11:03:24 ----- SCN Sysdate : 1105719318 Current SCN : 1105719323 ----- Date current_scn : 30/06/2016 11:03:24 ----- Date Sysdate : 30/06/2016 11:03:25 ----- SCN Sysdate : 1105719322 Current SCN : 1105719324 ----- Date current_scn : 30/06/2016 11:03:24 ----- Date Sysdate : 30/06/2016 11:03:26 ----- SCN Sysdate : 1105719322 Current SCN : 1105719325 ----- Date current_scn : 30/06/2016 11:03:24 ----- Date Sysdate : 30/06/2016 11:03:27 ----- SCN Sysdate : 1105719322 Current SCN : 1105719327 ----- Date current_scn : 30/06/2016 11:03:27 ----- Date Sysdate : 30/06/2016 11:03:28 ----- SCN Sysdate : 1105719326 Current SCN : 1105719328 ----- Date current_scn : 30/06/2016 11:03:27 ----- Date Sysdate : 30/06/2016 11:03:29 ----- SCN Sysdate : 1105719326 Current SCN : 1105719329 ----- Date current_scn : 30/06/2016 11:03:27 ----- Date Sysdate : 30/06/2016 11:03:30 ----- SCN Sysdate : 1105719326 Current SCN : 1105719331 ----- Date current_scn : 30/06/2016 11:03:30 ----- Date Sysdate : 30/06/2016 11:03:31 ----- SCN Sysdate : 1105719330 Current SCN : 1105719332 ----- Date current_scn : 30/06/2016 11:03:30 ----- Date Sysdate : 30/06/2016 11:03:32 ----- SCN Sysdate : 1105719330 Current SCN : 1105719333 ----- Date current_scn : 30/06/2016 11:03:30 ----- Date Sysdate : 30/06/2016 11:03:33 ----- SCN Sysdate : 1105719330 Current SCN : 1105719335 ----- Date current_scn : 30/06/2016 11:03:33 ----- Date Sysdate : 30/06/2016 11:03:34 ----- SCN Sysdate : 1105719334 Current SCN : 1105719336 ----- Date current_scn : 30/06/2016 11:03:33 ----- Date Sysdate : 30/06/2016 11:03:35 ----- SCN Sysdate : 1105719334 Current SCN : 1105719337 ----- Date current_scn : 30/06/2016 11:03:33 ----- Date Sysdate : 30/06/2016 11:03:36 ----- SCN Sysdate : 1105719334 Current SCN : 1105719339 ----- Date current_scn : 30/06/2016 11:03:36 ----- Date Sysdate : 30/06/2016 11:03:37 ----- SCN Sysdate : 1105719338 Current SCN : 1105719340 ----- Date current_scn : 30/06/2016 11:03:36 ----- Date Sysdate : 30/06/2016 11:03:38 ----- SCN Sysdate : 1105719338 Current SCN : 1105719341 ----- Date current_scn : 30/06/2016 11:03:36 ----- Date Sysdate : 30/06/2016 11:03:39 ----- SCN Sysdate : 1105719338 Current SCN : 1105719343 ----- Date current_scn : 30/06/2016 11:03:39 ----- Date Sysdate : 30/06/2016 11:03:40 ----- SCN Sysdate : 1105719342 Current SCN : 1105719344 ----- Date current_scn : 30/06/2016 11:03:39 ----- Date Sysdate : 30/06/2016 11:03:41 ----- SCN Sysdate : 1105719342 Current SCN : 1105719345 ----- Date current_scn : 30/06/2016 11:03:39 ----- Date Sysdate : 30/06/2016 11:03:42 ----- SCN Sysdate : 1105719342 Current SCN : 1105719347 ----- Date current_scn : 30/06/2016 11:03:42 ----- Date Sysdate : 30/06/2016 11:03:43 ----- SCN Sysdate : 1105719346 Current SCN : 1105719348 ----- Date current_scn : 30/06/2016 11:03:42 ----- Date Sysdate : 30/06/2016 11:03:44 ----- SCN Sysdate : 1105719346 Current SCN : 1105719349 ----- Date current_scn : 30/06/2016 11:03:45 ----- Date Sysdate : 30/06/2016 11:03:45 ----- SCN Sysdate : 1105719349 Current SCN : 1105719351 ----- Date current_scn : 30/06/2016 11:03:45 ----- Date Sysdate : 30/06/2016 11:03:46 ----- SCN Sysdate : 1105719349 Current SCN : 1105719352 ----- Date current_scn : 30/06/2016 11:03:45 ----- Date Sysdate : 30/06/2016 11:03:47 ----- SCN Sysdate : 1105719349 Current SCN : 1105719353 ----- Date current_scn : 30/06/2016 11:03:48 ----- Date Sysdate : 30/06/2016 11:03:48 ----- SCN Sysdate : 1105719353 Current SCN : 1105719355 ----- Date current_scn : 30/06/2016 11:03:48 ----- Date Sysdate : 30/06/2016 11:03:49 ----- SCN Sysdate : 1105719353 Current SCN : 1105719356 ----- Date current_scn : 30/06/2016 11:03:48 ----- Date Sysdate : 30/06/2016 11:03:50 ----- SCN Sysdate : 1105719353 Current SCN : 1105719357 ----- Date current_scn : 30/06/2016 11:03:51 ----- Date Sysdate : 30/06/2016 11:03:51 ----- SCN Sysdate : 1105719357 Current SCN : 1105719359 ----- Date current_scn : 30/06/2016 11:03:51 ----- Date Sysdate : 30/06/2016 11:03:52 ----- SCN Sysdate : 1105719357 Current SCN : 1105719360 ----- Date current_scn : 30/06/2016 11:03:51 ----- Date Sysdate : 30/06/2016 11:03:53 ----- SCN Sysdate : 1105719357 Current SCN : 1105719361 ----- Date current_scn : 30/06/2016 11:03:54 ----- Date Sysdate : 30/06/2016 11:03:54 ----- SCN Sysdate : 1105719361 Current SCN : 1105719363 ----- Date current_scn : 30/06/2016 11:03:54 ----- Date Sysdate : 30/06/2016 11:03:55 ----- SCN Sysdate : 1105719361 Current SCN : 1105719364 ----- Date current_scn : 30/06/2016 11:03:54 ----- Date Sysdate : 30/06/2016 11:03:56 ----- SCN Sysdate : 1105719361 Current SCN : 1105719365 ----- Date current_scn : 30/06/2016 11:03:57 ----- Date Sysdate : 30/06/2016 11:03:57 ----- SCN Sysdate : 1105719365 Current SCN : 1105719367 ----- Date current_scn : 30/06/2016 11:03:57 ----- Date Sysdate : 30/06/2016 11:03:58 ----- SCN Sysdate : 1105719365 Current SCN : 1105719368 ----- Date current_scn : 30/06/2016 11:03:57 ----- Date Sysdate : 30/06/2016 11:03:59 ----- SCN Sysdate : 1105719365 Current SCN : 1105719369 ----- Date current_scn : 30/06/2016 11:04:00 ----- Date Sysdate : 30/06/2016 11:04:00 ----- SCN Sysdate : 1105719369 Current SCN : 1105719371 ----- Date current_scn : 30/06/2016 11:04:00 ----- Date Sysdate : 30/06/2016 11:04:01 ----- SCN Sysdate : 1105719369 Current SCN : 1105719372 ----- Date current_scn : 30/06/2016 11:04:00 ----- Date Sysdate : 30/06/2016 11:04:02 ----- SCN Sysdate : 1105719369 Current SCN : 1105719373 ----- Date current_scn : 30/06/2016 11:04:03 ----- Date Sysdate : 30/06/2016 11:04:03 ----- SCN Sysdate : 1105719373 Current SCN : 1105719375 ----- Date current_scn : 30/06/2016 11:04:03 ----- Date Sysdate : 30/06/2016 11:04:04 ----- SCN Sysdate : 1105719373 Current SCN : 1105719376 ----- Date current_scn : 30/06/2016 11:04:03 ----- Date Sysdate : 30/06/2016 11:04:05 ----- SCN Sysdate : 1105719373 Current SCN : 1105719377 ----- Date current_scn : 30/06/2016 11:04:06 ----- Date Sysdate : 30/06/2016 11:04:06 ----- SCN Sysdate : 1105719377 Current SCN : 1105719379 ----- Date current_scn : 30/06/2016 11:04:06 ----- Date Sysdate : 30/06/2016 11:04:07 ----- SCN Sysdate : 1105719377 Current SCN : 1105719380 ----- Date current_scn : 30/06/2016 11:04:06 ----- Date Sysdate : 30/06/2016 11:04:08 ----- SCN Sysdate : 1105719377 Current SCN : 1105719381 ----- Date current_scn : 30/06/2016 11:04:09 ----- Date Sysdate : 30/06/2016 11:04:09 ----- SCN Sysdate : 1105719381 Current SCN : 1105719383 ----- Date current_scn : 30/06/2016 11:04:09 ----- Date Sysdate : 30/06/2016 11:04:10 ----- SCN Sysdate : 1105719381 Current SCN : 1105719384 ----- Date current_scn : 30/06/2016 11:04:09 ----- Date Sysdate : 30/06/2016 11:04:11 ----- SCN Sysdate : 1105719381 Current SCN : 1105719385 ----- Date current_scn : 30/06/2016 11:04:12 ----- Date Sysdate : 30/06/2016 11:04:12 ----- SCN Sysdate : 1105719385 PL/SQL procedure successfully completed.
J'ai plusieurs questions :
1) le CURRENT_SCN saute 1 numéro tous les 3 numéros... on passe de 1105719309 à 1105719311.
2) la date obtenue depuis le SCN a une précision de 3 secondes (c'est expliqué dans la doc de la fonction SCN_TO_TIMESTAMP) mais c'est quand même bizarre non : 3 SCN sont rattachés à la même date?
3) il y a un saut de 3 secondes sur les dates obtenus depuis CURRENT_SCN : on passe de 30/06/2016 11:03:12 à 30/06/2016 11:03:15
4) le SCN obtenu à partir de SYSDATE fais aussi des siennes : un saut de 3 numéros entre 1105719307 et 1105719310 MAIS ensuite on a un saut de 4 numéros (entre 1105719310 et 1105719314 par exemple).
5) A part pour le premier SCN (1105719307), je n'ai plus aucune synchronisation entre la première colonne Current SCN et la dernière TIMESTAMP_TO_SCN(sysdate) sur plusieurs lignes puis ensuite la synchro reprends .
Tout ceci me perturbe, quelqu'un pourrait me dire où je me trompe (dans la précision des fonctions de conversion?) car c'est quand même un identifiant extrêmement important dans la vie d'une base Oracle et je voudrais bien comprendre pourquoi il y a des écarts dans les conversions.
Partager