Hirdetés

Új hozzászólás Aktív témák

  • martonx

    veterán

    válasz lezso6 #9910 üzenetére

    A triggerekkel az a baj, hogy a tárolt eljárásokkal szemben abszolút debugolhatatlanok, nyomon követhetetlenek. Sőt az egész DB-t simán össze tudják omlasztani ha véletlenül valami deadlock befigyel a futásuk alatt.
    Érted, a kódban debugolod, hogy mi történik és miért, meghívsz egy tárolt eljárást, akkor ugyan kontextust kell váltania hozzá, de semmivel nem nehezebb nyomon követni, hogy mi történik, nincs semmi rejtett varázslat.
    Míg ha van pár triggered, amik netán még egymás módosításai miatt is elsülnek, akkor meg nézel baromi nagyokat, hogy neked most akkor miért nem futott le az inserted itt, helyette lett update amott, és kezdheted az egész db-t felderíteni, és mindezt folyamatosan fejbe kell tartanod, hogy ha itt kódban kiadsz egy insertet, akkor amott fog updatelni. Amíg az ember magának kókányolgat, addig semmi baj nincs a triggerekkel, illetve bizonyos esetekben tök ártalmatlanok, de alapvetően fejlesztésnél messzire kerülendő tipikus rossz gyakorlat a használatuk.

    A hozott példáid egytől egyig megoldhatóak lennének kódból, semmi hozadékuk nincs triggerekben tartani ezeket a logikákat (vagy átírni őket egy-egy tárolt eljárásra, még mindig sokkal karbantarthatóbb, áttekinthetőbb lenne).

Új hozzászólás Aktív témák