Array
(
)

Auditoria em sistemas ASP.Net utilizando SQL Server 2008

Tiago Franco
   - 22 jun 2010

Eu gostaria de uma opinião sobre como montar uma de auditoria de alterações.
Eu trabalho em um ERP Hospitalar muito grande. E como uma segurança para a equipe de desenvolvimento criei uma auditoria de comandos executados no SQL Server 2008.
Criei um outro banco com uma tabela que guarda todos os comando executados no erp que contenham UPDATE, INSERT ou DELETE. Também armazena a hora, a tela que foi feita a execução e o usuário logado no Sistema.
O problema é que as consultas a esse log são muito demoradas e o banco já está com 8gb somente em 3 meses de operações.
Alguém tem uma solução que seja mais rápido de buscar resultados e que não ocupe muito espaço?

Henrylle Maia
   - 24 jun 2010

Olá Tiago. Como você mencionou eu recomendaria a normalização desse banco que você está utilizando para auditoria. Sugestão.

Crie uma tabela contendo os usuário do sistema por ex: tbUsuarios, com um campo Id incremental como chave primária.
Crie uma tabela contendo todas as telas do sistema ex: tbTelasSistema, também com uma chave incremental.
Altere essa tabela que você para por ex: tbAuditoria, e nela você relaciona como tbUsuarios e tbTelasSistema. Acredito que dessa forma você irá poupar um bom espaço, já que vai trabalhar somente com Ids, além de tornar as buscas mais rápidas já que suas pesquisas ficarão indexadas.

Espero ter ajudado.