NOW() nicht zuverlässig?

NOW() nicht zuverlässig?

am 04.09.2007 17:23:17 von Keith Sauvant

Hallo zusammen,

ohne jetzt konkret die MySQL Version im Kopf zu haben: Gibt es generelle
Probleme mit der Funktion NOW() in MySQL? Wenn ich auf einem
Multiprozessorsystem NOW() in einer Schleife selecte sind die dabei
herauskommenden Werte nicht monoton steigend, schon nach wenigen 1.000
Durchläufen gibt mir MySQL einen Wert zurück, der eine Sekunde VOR dem
davor gelieferten liegt.

Gruß aus Aachen
Keith

Re: NOW() nicht zuverlässig?

am 04.09.2007 19:04:39 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: NOW() nicht zuverlässig?

am 04.09.2007 20:06:01 von Daniel Fischer

Keith Sauvant!

> Wenn ich auf einem Multiprozessorsystem NOW() in einer Schleife selecte
> sind die dabei herauskommenden Werte nicht monoton steigend, schon nach
> wenigen 1.000 Durchläufen gibt mir MySQL einen Wert zurück, der eine
> Sekunde VOR dem davor gelieferten liegt.

Hast du das mal mit der Systemuhrzeit verglichen?

NOW liefert die Startzeit des Querys. Wenn du einen neuen immer erst
absetzt, wenn der alte beendet ist, sollte das eigentlich nicht passieren.


Gruß
Daniel

Re: NOW() nicht zuverlässig?

am 04.09.2007 21:13:54 von Stefan+Usenet

On Tue, 4 Sep 2007 19:04:39 +0200 Andreas Kretschmer wrote:
> ,----[ test ]
> | test=# select now();
> | now
> | -------------------------------
> | 2007-09-04 19:00:53.054359+02
> | (1 row)
> |
> | Time: 73.717 ms
> | test=*# select now();
> | now
> | -------------------------------
> | 2007-09-04 19:00:53.054359+02
> | (1 row)
> |
> | Time: 0.976 ms
> | test=*# select now();
> | now
> | -------------------------------
> | 2007-09-04 19:00:53.054359+02
> | (1 row)
> `----

> Fällt Dir was auf? Das ist nicht monoton steigend, sondern nur
> monoton.

*gruebel*

Ist das (im Endeffekt, ueber mehrere Transaktionen hinweg) nicht
sehr wohl monoton steigend, nur nicht _streng_ monoton? Hat aber
jetzt mit dem konkreten Problem eher weniger zu tun (und ich faende
es in der Tat irritierend, innerhalb einer Transaktion eine fallende
Folge von NOW() Werten zu bekommen).

Servus,
Stefan

--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich

Stefan - die stillste Vorstellung des schrillen Kaufens. (Sloganizer)

Re: NOW() nicht zuverlässig?

am 05.09.2007 14:36:54 von Keith Sauvant

Daniel Fischer!

>> Wenn ich auf einem Multiprozessorsystem NOW() in einer Schleife selecte
>> sind die dabei herauskommenden Werte nicht monoton steigend, schon nach
>> wenigen 1.000 Durchläufen gibt mir MySQL einen Wert zurück, der eine
>> Sekunde VOR dem davor gelieferten liegt.
>
> Hast du das mal mit der Systemuhrzeit verglichen?

Nein, ist aber eine gute Idee, werde ich tun.

> NOW liefert die Startzeit des Querys. Wenn du einen neuen immer erst
> absetzt, wenn der alte beendet ist, sollte das eigentlich nicht passieren.

DAS dachte ich mir auch. Deshalb vor weiterer Evaluierung hier mal die
vorsichtige Nachfrage. Ein generelles Problem scheint also nicht bekannt
zu sein.

Danke dafür
Keith

Re: NOW() nicht zuverlässig?

am 05.09.2007 14:45:53 von Keith Sauvant

> Hast du das mal mit der Systemuhrzeit verglichen?

Jetzt ja: Auch die steigt nicht monoton ;-)
Also kein MySQL-Problem, Kommando zurück.

Danke!
Keith