Esiste un LOG delle transazioni in SQL server?

di il
6 risposte

Esiste un LOG delle transazioni in SQL server?

Ciao Ragazzi mi chiedevo se SQL server 2014 esiste un log delle transazioni, mi riferisco alle query SQL esguite su di esso.

Mi spiego: ho un gestionale che utilizza SQL server 2014 dal quale partono tutta una serie di query sql per interrogazioni, aggiunte, e modifiche …

Chiedevo se SQL server tiene traccia di queste query eseguite, e se si come recuperarle.

GRAZIE a tutti

6 Risposte

  • Re: Esiste un LOG delle transazioni in SQL server?

    31/05/2023 - ridaria ha scritto:


    Ciao Ragazzi mi chiedevo se SQL server 2014 esiste un log delle transazioni, mi riferisco alle query SQL esguite su di esso.

    Il log delle transazioni esiste, ma non è quello a cui ti stai riferendo tu: si tratta del file con estensione LDB che contiene le modifiche apportate ai dati riportate appunto sottoforma di log, ossia di azioni consecutive e sequenziali, usato per una memorizzazione rapida di tali operazioni da consolidare poi nel file di dati principali (MDF) il prima possibile, o usare per recuperare dati in caso di una perdita.

    Le query SQL si possono recuperare se le esegui da un tool che ti mantiene uno storico di tali query, o se prevedi questa funzionalità all'interno di un software di tua produzione.

  • Re: Esiste un LOG delle transazioni in SQL server?

    Potenzialmente direi di si:

    https://blog.devart.com/sql-server-query-history.html

    https://dba.stackexchange.com/questions/40960/logging-queries-and-other-t-sql 

    dovrai spulciare un po' internet e la documentazione di SQL Server

    Comunque, PROBABILMENTE sono servizi a disposizione della versione Enterprise, NON nella versione Community 
    (ad esempio questo avviene in Neo4J).

  • Re: Esiste un LOG delle transazioni in SQL server?

    Puoi utilizzare il tool SQL Profiler ed analizzare, per un determinato periodo, quello che succede ad un DB, ovviamente comprese query e connessioni. Il risultato lo puoi salvare su disco per un esame a posteriori.

  • Re: Esiste un LOG delle transazioni in SQL server?

    31/05/2023 - Alka ha scritto:


    31/05/2023 - ridaria ha scritto:


    Ciao Ragazzi mi chiedevo se SQL server 2014 esiste un log delle transazioni, mi riferisco alle query SQL esguite su di esso.

    Il log delle transazioni esiste, ma non è quello a cui ti stai riferendo tu: si tratta del file con estensione LDB che contiene le modifiche apportate ai dati riportate appunto sottoforma di log, ossia di azioni consecutive e sequenziali, usato per una memorizzazione rapida di tali operazioni da consolidare poi nel file di dati principali (MDF) il prima possibile, o usare per recuperare dati in caso di una perdita.

    Le query SQL si possono recuperare se le esegui da un tool che ti mantiene uno storico di tali query, o se prevedi questa funzionalità all'interno di un software di tua produzione.

    bene bene grazie mi pare di capire in questo file ldb trovo una sorta di storico delle modifiche apportate al db!

    Quindi portrei vedere se un dato record è stato modificato , come e quando( chiaramente immagino che no0n posso tornare indietro all'infinito)

    se è cosi mi indichi come accedere a questi dati del file LDB?

    GRAZIE

  • Re: Esiste un LOG delle transazioni in SQL server?

    31/05/2023 - ridaria ha scritto:


    bene bene grazie mi pare di capire in questo file ldb trovo una sorta di storico delle modifiche apportate al db!

    Quindi portrei vedere se un dato record è stato modificato , come e quando( chiaramente immagino che no0n posso tornare indietro all'infinito)

    se è cosi mi indichi come accedere a questi dati del file LDB?

    No, direi che è proprio il contrario: per quanto ne sappia, il file LDB è un file fisico che viene utilizzato da SQL Server all'occorrenza eseguendo specifici comandi, per il backup e il restore dei database o per altre operatività comunque assoggettate all'uso dei suoi tool e comandi.

    Per la natura delle informazioni che hai specificato tu, direi che sono perfetti gli altri suggerimenti che ti sono stati dati da migliorabile e oregon, che indirizzano proprio il livello e le modalità di accesso alle informazioni che ti servono.

  • Re: Esiste un LOG delle transazioni in SQL server?

    Salve,

    l'accesso al transaction-log avviene solitamente tramite chiamate a fn_log(..) , funzione NON documentata che permette di vedere parecchia attivita', MA non e' una cosa molto leggera da gestire, e non so neanche quanto valga la candela farlo se non per specifiche esigenze di ricerca interna… piu' una cosa “quasi accademica”… non metterei niente di produzione in piedi su questo, anche perche', nuovamente, fn_log e' una funzione NON documentata, e al di la' del fatto che probabilmente non verra' mai deprecata perche' usata internamente dal team, sicuramente puo' essere soggetta a modifiche anche breaking….
    dopo aver acceduto a questo, spesse volte si passa all'utilizzo di comandi DBCC per andare “fisicamente” sulle pagine dati del db, ma, di nuovo, non sono cose facilmente gestibili… usando ad esempio DBCC PAGE…

    in caso, qualche documentazione on-line la trovi anche, ma sono tutti esperimenti “per divertimento”…

    salutoni romagnoli
    – 
    Andrea

Devi accedere o registrarti per scrivere nel forum
6 risposte