Kom ihåg mig?

MySQL transaktion

 
Ämnesverktyg Visningsalternativ
Oläst 2010-11-11, 22:18 #4
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Tidskrävande kanske tyder på att frågan kan optimeras.

Annars är det bästa normalt att använda de inbyggda transaktionsmöjligheter som databasen erbjuder och INTE hitta på egna busyflaggor för databasen kan oftast hantera detta bättre.

Nu vet jag inte hur din fråga är uppbyggd men ett sätt kan vara att uppdatera en post i ttaget i databasen med en updatesats och sedan flagga den med att den är "beräknad".

Kod:
-- Har inte kollat syntaxen .... 
-- tanken är att denna fråga körs många gånger tills alla 
-- poster blivit uppdaterade med det nya beräknade värdet
-- Begin Transaction
UPDATE myTable
SET oldValue=(Select ... AS NewValue FROM ... WHERE ...)
SET UpdatedValueFlagga=Now()
WHERE AND ID=
(
    SELECT TOP 1 ID
    FROM MyTable
    WHERE UpdatedValueFlagga IS NULL
)
-- End transaction
Svårt att avgöra vilka alternativ som finns när man inte vet hur viktigt att uppdatering körs samtidigt som databasen är uppe. Men om du kan beräkna värdet för sig och när värdet väl är beräknat så kan du uppdatera databasen med värdet, då går det snabbare med en updatefråga och du kanske kan låsa tabellen under de sekunder som krävs.

Senast redigerad av Conny Westh den 2010-11-11 klockan 22:35
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 10:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017