Activați urmărirea modificărilor poate fi, de asemenea, în mediul între SQL Server Management Studio, în caseta de dialog, proprietățile bazei de date (pagina „Track Changes“).
Dacă activați urmărirea modificărilor și în orice moment în viitor, puteți specifica și modifica valorile parametrilor CHANGE_RETENTION și AUTO_CLEANUP.
Parametrul perioadei de reținere specifică perioada de timp în care datele de urmărire a modificării sunt salvate. Datele de urmărire a modificărilor care au expirat sunt șterse periodic. La setarea acestei valori, este necesar să se țină seama de frecvența sincronizării aplicațiilor cu tabelele din baza de date. Perioada de păstrare specificată nu trebuie să fie mai mică decât perioada maximă de timp dintre sincronizări. Dacă o aplicație primește informații de schimbare la intervale mai lungi, este posibil ca rezultatele returnate să nu fie corecte, deoarece unele informații despre schimbare ar fi putut fi deja șterse. Pentru a evita rezultatele incorecte, aplicația poate determina dacă intervalul dintre sincronizări este prea mare, utilizând funcția de sistem CHANGE_TRACKING_MIN_VALID_VERSION.
Parametrul AUTO_CLEANUP este utilizat pentru a activa sau a dezactiva sarcina de curățare, în timpul căreia datele vechi de urmărire a modificărilor sunt șterse. Poate fi util în cazul unei probleme temporare care interferează cu sincronizarea aplicațiilor și determină suspendarea procesului de eliminare a datelor de urmărire a schimbărilor învechite pentru perioada de rezolvare a acesteia.
Trebuie luate în considerare următoarele aspecte.
La urmărirea modificărilor, nivelul de compatibilitate a bazei de date trebuie să fie cel puțin 90. Dacă nivelul de compatibilitate a bazei de date este mai mic de 90, puteți seta modificările de urmărire. Cu toate acestea, funcția CHANGETABLE utilizată pentru a prelua informațiile de urmărire a modificării va afișa o eroare.
Cea mai simplă modalitate de a asigura coerența tuturor datelor de urmărire a modificărilor este izolarea instantaneelor. Din acest motiv, este recomandat ca baza de date să includă izolarea instantaneelor. Pentru mai multe informații, consultați Utilizarea urmăririi schimbării.
Următoarele modificări trebuie să fie activate pentru fiecare tabel monitorizat. Dacă este activată urmărirea schimbării, informațiile colectate de urmărire sunt colectate pentru toate rândurile din tabelul afectat de operația DML.
Următorul exemplu arată modul de configurare a urmăririi modificărilor utilizând instrucțiunea ALTER TABLE.
Trunchierea unui tabel pentru care este activată urmărirea schimbării este posibilă. Cu toate acestea, șirurile șterse în timpul acestei operații nu sunt urmărite și versiunea minimă este actualizată. Când aplicația verifică versiunea, cecul va arăta că versiunea este depășită și trebuie să o reinitializați. Același lucru s-ar întâmpla dacă urmărirea schimbării pentru acest tabel a fost dezactivată și apoi activată din nou.
Utilizarea urmăririi modificărilor este asociată cu unele costuri suplimentare pentru operațiile DML din cauza informațiilor despre costurile de urmărire salvate în timpul operației.
Impactul asupra LMD
Urmărirea modificărilor este optimizată pentru a reduce povara asupra operațiunilor DML. scădere treptată a performanței pentru tabelul asociat cu urmărirea modificărilor, comparabil cu costurile implicate în crearea și menținerea unui indice de masă.
Când modificați fiecare linie atunci când efectuați o operație DML, se adaugă un rând în tabela de urmărire a modificărilor interne. Efectul asupra operațiunilor DML depinde de diverși factori, inclusiv cei enumerați mai jos.
Numărul de coloane din cheia primară.
Cantitatea de date care trebuie schimbată în rândul tabelului de utilizatori.
Numărul de tranzacții efectuate în cadrul tranzacției.
Anularea izolației, dacă este utilizată, afectează toate operațiile DML, indiferent dacă este activată urmărirea schimbării.
Influența asupra antrepozitului de date
Schimbarea datelor de urmărire este stocată în tabele interne ale următoarelor tipuri.
Tabela de schimbări interne
Pentru fiecare tabel de utilizatori în care sunt urmărite modificările, există o tabelă de schimbare internă.
Tabelul tranzacțiilor interne
Există un tabel de tranzacții interne pentru baza de date.
Aceste tabele interne, după cum urmează, afectează cerințele de stocare.
Fiecare modificare în oricare dintre rândurile din tabela de utilizator adaugă un rând la tabela de schimbări interne. Fiecare astfel de linie are un mic spațiu fix plus mărimea coloanelor cheii primare. Un șir poate conține informații de context suplimentare specificate de aplicație. Dacă activați urmărirea modificării coloanelor, fiecare coloană modificată are 4 octeți în tabelul de urmărire.
Pentru fiecare tranzacție angajată, se adaugă un rând în tabela de tranzacții interne.
Ca și în cazul altor tabele interne, spațiul ocupat de tabelele de urmărire a modificărilor poate fi determinat utilizând procedura stocată sp_spaceused. Numele tabelelor interne pot fi determinate utilizând vizualizarea directorului sys.internal_tables. după cum se arată în exemplul următor.