Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
No je to něco jako asi takto, to co jsem vypsal je jen část : Pokud 1.transakce proběhne úspěšně, pr… nový
William 11.05.2007 11:57
William
Osobně bych to řešil takto: V cyklu (nebo bez něj) bych si vše zpracoval do pomocnych tabulek bez tr… nový
Jan Fiala 11.05.2007 12:28
Jan Fiala
To by se dalo jenomže já potřebuju ještě než data vložím do tabulky rozhodnout o tom jestli ty data… nový
William 11.05.2007 13:54
William
Tak nakonec jsem to částečně zafixoval. Jednak jsem zvýšil lock_timeout a všiml jsem si že nemám nai… poslední
William 12.05.2007 00:01
William

No je to něco jako asi takto, to co jsem vypsal je jen část :
Pokud 1.transakce proběhne úspěšně, provádí se 2.transakce, pokud druhá uspěje provádí se 3.transakce.
Pokud 1.transakce proběhne úspěšně, provádí se 2.transakce, pokud druhá neuspěje, dojde k rollbacku 2.transakce, první zůstavá vyřízená, 3.transakce se už neprovede.

Osobně bych to řešil takto:
V cyklu (nebo bez něj) bych si vše zpracoval do pomocnych tabulek bez transakce.
Jakmile bych měl připravena data pri insert, zahájím transakci, nasypu najednou pomoi INSERT INTO - SELECT ... data z pomocnych tabulek do ostrych a transakci ukončím. Pokud jde o stovky záznamů, musí to být hotové během chviličky.

To by se dalo jenomže já potřebuju ještě než data vložím do tabulky rozhodnout o tom jestli ty data do tabulky můžu uložit, jedná se o skladové zásoby, tzn. kontroluju jestli množství nepřesahuje dovolenou mez, pak taky kontroluju nedělitelné množství. Takže to je problém. A že bych počítal kolik množství daného zboží obsahuje dávka a pak to kontroloval oproti dané mezi, to asi taky není dobré. A navíc dávka neobsahuje jenom příkaz insert, ale taky update a delete.

Tak nakonec jsem to částečně zafixoval. Jednak jsem zvýšil lock_timeout a všiml jsem si že nemám naindexovanou jednu tabulku ze které čtu a ve které je nějakých 40000 řádků. Takže po těchto dvou úpravách když už dojde k hlášce lock request out of period, zámek se během sekundy uvolní.

Zpět do poradny Odpovědět na původní otázku Nahoru