Egy tranzakció vagy sok kicsi?

Attól függ. Szívesen 🙂

Ahogy nagyjából minden probléma megközelítésénél, az SQL-ben sem úgy van, hogy kijelenthetjük: ezt így kell csinálni, azt’ jó napot. Sok minden függ a feladattól, a kiinduló feltételekről, a környezettől, de akár még a várható kimeneteltől is.

Például ha 5-6 táblából szeretnénk törölni 1-1 sort, akkor simán tehetünk az egész köré egy tranzakciót. Ha viszont ebből az 5-6 tábla mindegyikéből több ezer sort szeretnénk törölni, akkor már gondolkozni kell.

Lefoglaljuk-e a többi táblát egy nagy tranzakcióval, miközben éppen csak egyben turkálunk? Sima törlés lesz, vagy cascade törlés? Utóbbi esetben rendben vannak-e a foreign key-k? Vannak-e egyáltalán, vagy ezt az alkalmazás kezeli okosban? Ugyanez update esetében is.

Nincs általános recept, minden esetben figyelembe kell venni amivel dolgozol. Mindig nézz körül, ismerd meg a táblákat, alkalmazásokat, és aszerint dönts, hogy mi a legcélravezetőbb.