Usuário com melhor resposta
Banco MSDB - DÚVIDA

Pergunta
-
Saudações!
Prezados,
Estou trabalhando em um inventário de JOBs do Sql Server Agent, estou desenvolvendo alguns controle de inserção, alteração e exclusão, o intuito é manter um documento sempre atualizado. Para tanto,preciso de algumas informações sobre o banco MSDB, pois conforme já sabido a tabela sysjobshistory não armazena histórico a mais (?) dias, acredito que seja uma maneira de controlar o volume de dados.
Gostaria de saber o reais impactos de desenvolvimento e armazenamento de informações no banco msdb, não há problema em desenvolver novos objetos e popular tabelas?
Alguém tem alguma experiência satisfatório/traumática quanto a algo parecido?
Obrigado!
- Editado Fábio Battestin segunda-feira, 3 de outubro de 2011 18:42
Respostas
-
Boa tarde Fábio!
Os parâmetros de armazenamento de informações do SQL Agent são configuráveis:
-- Botão direito em SQL Agent >> Properties >> Opção History
Lá você pode configurar o tamanho do seu histórico.
Outra solução seria criar uma tabela "espelho" da sysjobhystory, através de trigger ou Job mesmo, em um Banco de Dados "Administrativo", assim você manteria o histórico do Agent mesmo ele apagando em determinado momento.
Como o Eduardo falou, usar Bancos de Sistema em produção não é uma boa prática.
Abraço
Pedro
- Marcado como Resposta Fábio Battestin segunda-feira, 3 de outubro de 2011 21:03
-
Fábio, aqui tem mais um artigo bacana para esclarecer http://technet.microsoft.com/pt-br/library/ms178028%28SQL.100%29.aspx, você pode até criar tabelas e popular porém irá ter diversas restrições o que não teria criando um banco de dados normal, o recomendado para estar usando um banco de sistema para criação de tabelas é como citado nesse artigo da Microsoft "Você não deve codificar instruções Transact-SQL que fazem consulta diretamente nas tabelas do sistema, a menos que seja a única maneira de obter informações exigidas pelo aplicativo.". Espero ter ajudado, valeu!
- Marcado como Resposta Fábio Battestin segunda-feira, 3 de outubro de 2011 21:03
Todas as Respostas
-
Boa tarde Fábio!, se eu entendi, sua dúvida seria se é uma boa prática estar usando o MSDB como um banco de produção seria isto? Neste link http://technet.microsoft.com/pt-br/library/ms187112%28SQL.100%29.aspx é possível ver algumas restrições que o banco MSDB possui, e como se trata de um banco Padrão(De sistema do SQL SERVER) ele traz algumas configurações de total importância para o mesmo, e não é recomendável usa-lo para estar criando tabelas e usando para a produção, vai que algo dá errado.
-
Eduardo,
Muito Obrigado! É exatamente isso, preciso saber as boas práticas, o link é bem interessante. Acredito que o melhor realmente seja não desenvolver no ambiente "system", mas não achei nada quanto a criação de objetos e possíveis impactos.
Valew!!
-
Boa tarde Fábio!
Os parâmetros de armazenamento de informações do SQL Agent são configuráveis:
-- Botão direito em SQL Agent >> Properties >> Opção History
Lá você pode configurar o tamanho do seu histórico.
Outra solução seria criar uma tabela "espelho" da sysjobhystory, através de trigger ou Job mesmo, em um Banco de Dados "Administrativo", assim você manteria o histórico do Agent mesmo ele apagando em determinado momento.
Como o Eduardo falou, usar Bancos de Sistema em produção não é uma boa prática.
Abraço
Pedro
- Marcado como Resposta Fábio Battestin segunda-feira, 3 de outubro de 2011 21:03
-
Fábio, aqui tem mais um artigo bacana para esclarecer http://technet.microsoft.com/pt-br/library/ms178028%28SQL.100%29.aspx, você pode até criar tabelas e popular porém irá ter diversas restrições o que não teria criando um banco de dados normal, o recomendado para estar usando um banco de sistema para criação de tabelas é como citado nesse artigo da Microsoft "Você não deve codificar instruções Transact-SQL que fazem consulta diretamente nas tabelas do sistema, a menos que seja a única maneira de obter informações exigidas pelo aplicativo.". Espero ter ajudado, valeu!
- Marcado como Resposta Fábio Battestin segunda-feira, 3 de outubro de 2011 21:03
-
Eduardo e Pedro,
Valew pela ajuda, minha maior preocupação em criar tabelas no sistema era justamente a citada pelo Eduado "Você não deve codificar instruções Transact-SQL que fazem consulta diretamente nas tabelas do sistema, a menos que seja a única maneira de obter informações exigidas pelo aplicativo."
Obrigado a todos!