Jak hodně zpomalují integritní omezení DML operace? Hodně :-) Důležité upozornění: Integritní omezení rozhodně používejte, ale jsou situace, kdy je vhodné je vypnout (a pak zase zapnout). Jednu takovou situaci jsem zažil právě teď.
Vesele si kopíruji data do nové tabulky (ve které jsem zatím neměl žádná integritní omezení) a jsem spokojený jak to běží rychle. A pak jsem přidal integritní omezení a najednou to kopírování je nějaké pomalé (v závislosti na počtu záznamů v tabulce to bylo opravdu výrazně pomalejší). Problém byl ten, že při každém přidání záznamu do tabulky se naprosto logicky kontrolovaly integritní omezení (a v tabulce bylo cca. 3 milióny záznamů, tudíž při každém přidání dalšího záznamu se jich muselo kontrolovat víc a víc).
Řešení? Před hromadném množství DML operací integritní omezení vypnout a po skončení všech operací je opět zapnout. Jestli je toto vhodné řešení v dané situaci ale také záleží na počtu DML operací které provádíte. Při zapínání integritních omezení se musí jednorázově projít všechny záznamy a zkontrolovat platnost integritního omezení ... a to také není časově laciná operace.
Školení bych doporučil všem lidem, kteří se chtějí dozvědět něco o DB. Na školeni jsem přišel, jako úplný nováček, co se týče práci s DB a odcházel plný dojmů a
Osobně jsem trošku stále váhající, jestli a jak moc SQL použít. Ale určitě hlavní je to, že se teď už tolik nebojím. Je to pro mě začátek dlouhé cesty. Osobně
Zajímavé školení, které vhodně kombinovalo teorii a praxi.