Come vedrebbe & amp; proc fa riferimento a un altro db facendo crescere il registro?

StackOverflow https://stackoverflow.com/questions/213134

  •  03-07-2019
  •  | 
  •  

Domanda

Ho 2 database su un server; chiamiamoli db A e B. Il database A è di circa 11 GB, il database B è molto piccolo (155mb). Il database B ha alcune viste e processi che accedono e aggiornano costantemente i dati nel database A.

La cosa interessante è che il registro per il database B raggiunge rapidamente dimensioni enormi, penso che sia cresciuto fino a circa 12 GB in meno di una settimana. Il database A non cresce così velocemente.

Cosa potrebbe causare la crescita del mio registro così tanto? Sta succedendo qualcosa quando si selezionano i dati da un altro database, che farebbe crescere il mio registro in questo modo?

So che quando fai qualcosa di simile contro un database su un altro server, i dati vengono tutti spostati nel database chiamante prima di essere uniti e selezionati ... Posso vedere che ciò causa la crescita del registro, potrebbe accadere la stessa cosa su lo stesso server?

Edizione SQL2000 SP4 STD
Modello di recupero completo

Grazie in anticipo, John

A proposito, mi rendo conto che cambiare il mio modello di recupero in Semplice può essere d'aiuto, ma vorrei sapere perché questo sta accadendo per primo.

È stato utile?

Soluzione

Non riesco a immaginare perché una semplice istruzione SELECT aggiunga qualcosa al registro delle transazioni, ma non ho molta esperienza con i server collegati, quindi non posso dire con certezza cosa potrebbe accadere dietro le quinte .

Tuttavia, dici "Database B ha alcune viste e processi che accedono e aggiornano costantemente i dati nel database A.", quindi anche se i dati sottostanti esistono sul Database A, perché la tua nuova applicazione si collega al database B e usa i suoi oggetti, sembra ragionevole che quelle operazioni siano registrate nel registro di B.

Ma questa è solo una congettura da parte mia. Perché non controlli semplicemente il registro delle transazioni direttamente e vedi se ciò che contiene sembra ragionevole? RedGate ha un esploratore di log gratuito che funziona con SQL 2000 (vedi http: // www .red-gate.com / prodotti / SQL_Log_Rescue / index.htm ); L'ho usato solo una volta prima, ma sembrava funzionare bene e mi ha davvero salvato la pancetta in quel particolare caso.

Devo ammettere che sono curioso di conoscere i dettagli, ma nella tua situazione sarei tentato di sopprimere la mia curiosità e di occuparmi solo del file di registro. Dopotutto, questo è solo temporaneo e se la crescita del registro è un artefatto dei server collegati, dovrebbe risolversi automaticamente una volta terminata la nuova app e ritirato il database A.

Inoltre, Godeke ha fatto un buon punto sui backup. Se il file di registro sta diventando troppo grande, esegui il backup più spesso. Il backup di esso tronca il registro, ma solo internamente; vale a dire che la percentuale del file di registro utilizzato si ridurrà, ma la dimensione effettiva del file sul disco non cambierà fino a quando non si utilizza DBCC SHRINKFILE per farlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top