Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
[SQL 2000 -2005] Come posso "loggare" le query e i valori assegnati ai...
mercoledì 28 ottobre 2009 - 21.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 28 ott 2009 - 21:45
Salve a tutti, il mio problema è il seguente, sto programmando un applicazione in VB.NET che fa un uso massiccio di stored procedure per i vari INSERT UPDATE e DELETE di vare tabella, anche construtture ti dipo MASTER/DETAIL. Ora è sopraggiunta la necessità di poter in qualche modo registrare tutti gli eventi che succedono alla chiamata o all'esecuzione di suddette query in una tabella (o più tabelle magari con lo stesso nome delle tabelle attualmente in uso con un suffisso tipo LOG) dedicata/e al loggagio di dette operazioni e i parametri valorizzati. In un primo momento ho pensato di fare il tutto da applicazione, poi però leggendo ho letto della possibilità offerte dai Trigger vista la necessità di farlo funzionare sia su un SQL 2000 che un SQL 2005 Express. La mia conoscenza però dei Trigger è molto scarsa e quindi volevo chiedervi se una soluzione di questo tipo è applicabile e più o meno quanto spazio potrebbe occupare nel database ad esempio per una tabella che come campo opzionale ha un VARCHAR(8000) ???? L'adozione dei Trigger è una cosa fattibile e in che modo dovrei crearli ? Grazie per l'aiuto buona serata !
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 28 ott 2009 - 22:09
>Ora è sopraggiunta la necessità di poter in qualche modo
>registrare tutti gli eventi che succedono alla
>chiamata o all'esecuzione di suddette query in una tabella (o
>più tabelle magari con lo stesso nome delle tabelle attualmente
>in uso con un suffisso tipo LOG) dedicata/e al loggagio di dette
>operazioni e i parametri valorizzati. In un primo momento ho
>pensato di fare il tutto da applicazione, poi però leggendo ho
>letto della possibilità offerte dai Trigger vista la necessità
>di farlo funzionare sia su un SQL 2000 che un SQL 2005 Express.
Ciao Patrizio,
L'utilizzo così massiccio dei trigger comporterebbe un sovraccarico eccessivo dell'istanza e dello spazio occupato nel db.
Se ho ben capito hai la necessità di implementare un sistema di auditing.
Sia SQL Server 2000 che 2005 sono un po' carenti da questo punto di vista, mentre SQL Server 2008 offre un nuovo motore di auditing estremamente flessibile e potente:
http://msdn.microsoft.com/en-us/library/cc280526.aspx
Mi rendo conto di non aver risposto alla tua domanda, ma con queste poche informazioni non saprei che altro aggiungere
>Grazie per l'aiuto buona serata !
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 28 ott 2009 - 22:30
Ciao ! Purtroppo non ho a disposizione SQL 2008 e mi tocca arrangiarmi con quello che ho :( Quindi dici che una cosa del genere meglio che la lasci stare già subito in anticipo ??? E se ad esempio trasferissi il dato invece che su una tabella in un file fisico o xml ???? Non ci sono propio altre soluzioni per attuare una cosetta del genere ?? Sono rattristato dammi un bagliore di speranza dai ! :)
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 28 ott 2009 - 22:36
>Ciao ! Purtroppo non ho a disposizione SQL 2008 e mi tocca arrangiarmi
>con quello che ho :( Quindi dici che una cosa del genere meglio
>che la lasci stare già subito in anticipo ???
Se devi loggare tutto, si.
>E se ad esempio
>trasferissi il dato invece che su una tabella in un file fisico
>o xml ????
Questa attività non deve essere a carico del DBMS, ma dovrai arrangiarti dal punto di vista applicativo.
>Non ci sono propio altre soluzioni per attuare una
>cosetta del genere ?? Sono rattristato dammi un bagliore di speranza
>dai ! :)
Esistono tools di terze parti ma che alla fine dei conti ti costano quanto il DBMS stesso:
http://www.lumigent.com/solutions/database-auditdb.html
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 28 ott 2009 - 23:41
E visto che nel caso del 2005 express non mi costa nulla hai ben capito che la soluzione terze parti non fa per me. Cosa intendi se devo loggare propio tutto ? C'è un metodo alternativo altrimenti o più semplice ? Tipo loggare il nome della stored procedure chiamata e i suoi parametri ? In termini di spazio secondo te visto che la 2005 express ha il limite di 1 gb di spazio per il database dici che la tabella di log nel caso del trigger potrebbe arrivare a dimensioni importanti in fretta ? Per tutto mi interessano solo gli Insert Update e Delete, da quello che ho capito i select non si possono loggare e non mi interesserebbero neppure. Grazie mille per il supporto ;)
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
mer 28 ott 2009 - 23:46
>E visto che nel caso del 2005 express non mi costa nulla hai
>ben capito che la soluzione terze parti non fa per me.
Immaginavo
>Cosa intendi se devo loggare propio tutto ?
>C'è un metodo alternativo altrimenti o più semplice ?
>Tipo loggare il nome della stored procedure chiamata e i suoi parametri ?
Puoi loggare quello che ti pare
>In termini di spazio secondo te visto che la 2005 express ha il limite di 1 gb di spazio per
>il database dici che la tabella di log nel caso del trigger potrebbe
>arrivare a dimensioni importanti in fretta ?
La dimensione massima per db della Express Edition è di 4GB.
Non conoscendo minimamente il carico di lavoro che subirà la base dati e le policy di logging non sono in grado di rispondere alla domanda.
>Grazie mille per il supporto ;)
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
plaguebreath
Profilo
| Junior Member
115
messaggi | Data Invio:
gio 29 ott 2009 - 00:22
Beh dimmi di che informazioni hai bisogno per fare un due conti così magari ti aiuto a farti l'idea un po' più chiara, non sono molte operazioni a dire il vero visto che saranno massimo 3 utenti che useranno l'applicazione contemporaneamente, il db adesso con circa un 5000 entry si attesta sui 45mb con una 80ina di stored divise per tabella e per operazione insert update delete.
Torna su
Stanze Forum
Elenco Threads
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 !