Consiglio su log operativi

giovedì 02 ottobre 2008 - 12.10

gabriel81 Profilo | Junior Member

Ciao a tutti, avrei bisogno di un consiglio, visto che sono alle prime armi (sono appena migrato da access a sql server 2005 express)

Nella mia applicazione volevo registrare alcune operazioni degli utenti (ad esempio quando modificano o cancellano record).
Premetto che stò usando solo STORED PROC per le operazioni dell'applicazione.
Inizialmente ho impostato SP che oltre ad eseguire le operazioni volute scrivevevano anche sulla tabella dei log cosa è stato fatto, ma poi ho pensato che il tempo di
esecuzione delle SP si sarebbe quasi raddoppiato.
Ho quindi pensato di creare dei trigger che in seguito all'aggiornamento della tabella da parte della SP si occupano di registrare cosa è stato fatto.
Secondo voi, è migliore come soluzione?

Inoltre, come posso fare in modo che la sp passi al trigger le informazioni da scrivere nei log?

Grazie 1000 in anticipo

lbenaglia Profilo | Guru

>Nella mia applicazione volevo registrare alcune operazioni degli
>utenti (ad esempio quando modificano o cancellano record).
>Premetto che stò usando solo STORED PROC per le operazioni dell'applicazione.
>Inizialmente ho impostato SP che oltre ad eseguire le operazioni
>volute scrivevevano anche sulla tabella dei log cosa è stato
>fatto, ma poi ho pensato che il tempo di
>esecuzione delle SP si sarebbe quasi raddoppiato.

Addirittura?

>Ho quindi pensato di creare dei trigger che in seguito all'aggiornamento
>della tabella da parte della SP si occupano di registrare cosa
>è stato fatto.
>Secondo voi, è migliore come soluzione?
Il trigger scatta a prescidere dall'esecuzione della sp, pertanto ti metti al riparo da modifiche eseguite con altri strumenti (ad esempio da SQL Server Management Studio), però se la tua preoccupazione sono le performance, il discorso non cambia di una virgola: la transazione rimane aperta fino al termine dell'esecuzione del trigger.

>Inoltre, come posso fare in modo che la sp passi al trigger
>le informazioni da scrivere nei log?
No. I trigger li definisci a livello di singola tabella (o view nel caso siano INSTEAD OF) e non prevedono alcun parametro di I/O.

>Grazie 1000 in anticipo
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

gabriel81 Profilo | Junior Member

>>Addirittura?
Non me ne intendo, ma credevo che nell'inserire 1 record o inserirne 2 il costo fosse proporzionale... forse mi sbaglio... sicuramente saprai dirmi!

>>Il trigger scatta a prescidere dall'esecuzione della sp, pertanto ti metti al riparo da modifiche eseguite con altri strumenti (ad esempio da SQL Server Management Studio)
no, nessuno ci infila dati se non con l'applicazione, volevo mettermi al riparo da cose del tipo:"NON ABBIAMO TOCCATO NIENTE E CI E' SPARITA UNA FATTURA!!!", non so se conosci la storiella...

>>però se la tua preoccupazione sono le performance, il discorso non cambia di una virgola: la transazione rimane aperta fino al termine dell'esecuzione del trigger.
Allora uso le SP, decisamente meglio e meno macchinose

Ti ringrazio tanto, per chi è alle prime armi è importante avere una mano da chi sa il fatto suo!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5