PUBLICIDADE

Autor

gabriel

Gabriel Fróes

membro deste junho de 2006

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

Você se preocupa em desenvolver usando Web Standards?

Rotinas de manutenção de tabelas no mySQL


Quem desenvolve aplicações utilizando o mySQL em algum momento precisará realizar rotinas de manutenção das tabelas.
O mySQL por ser um banco de dados simples é necessário periódicamente executar algumas rotinas manualmente.

Com esta função é possível executar alguns comandos de manutenção em suas tabelas diretamente de sua aplicação web.

Os comandos disponíveis para esta função são:
- ANALYZE
Analisa e armazena a distribuição de chaves para a tabela. Durante a análise a tabela é bloqueada com uma trava de leitura. Isto funciona em tabelas MyISAM e BDB.
Utilização: Response.Write ManutencaoTabelas("ANALYZE")

- CHECK
Verifica se existem erros nas tabelas e funciona somente em tabelas do tipo MyISAM.
Utilização: Response.Write ManutencaoTabelas("CHECK")

- OPTIMIZE
Deve ser usado se você apagou uma grande parte de uma tabela ou se você fez várias alterações à uma tabela com registros de tamanho variável (tabelas que tenham campos do tipo VARCHAR, BLOB ou TEXT).
Registros apagados são mantidos em uma lista de ligações e operações INSERT subsequentes reutilizam posições de registros antigos.
Na maioria da configurações você não precisa executar OPTIMIZE TABLE. Mesmo se você fizer diversas atualizações para registros de tamanhos variáveis não é desejável que você precise fazer isto mais que uma vez por mês/semana.
Utilização: Response.Write ManutencaoTabelas("OPTIMIZE")

- REPAIR
Repara uma tabela possivelmente corrompida e funciona somente em tabelas do tipo MyISAM.
Normalmente você nunca deve executar este comando, mas se um disastre ocorrer você vai precisar recuperar os dados de suas tabelas.
Utilização: Response.Write ManutencaoTabelas("REPAIR")

IMPORTANTE: Para que o código funcione corretamente, será necessário configurar a strings de conexão com o seu banco de dados mySQL através da variávei strConexao.
<%
'-----------------------------------------------------
'Funcao: ManutencaoTabelas(ByVal Cmd)
'Sinopse: Realiza manutenção das tabelas de um banco mySQL
'Parametro(s):
'	Cmd: Comando a ser executado. Os comandos podem ser:
'		'ANALYZE'
'		'CHECK'	
'		'OPTIMIZE' 
'		'REPAIR' 
'Retorno: String
'Autor: Gabriel Fróes
'Site: www.codigofonte.com.br
'-----------------------------------------------------
Function ManutencaoTabelas(ByVal Cmd)
	'Declarações
	Dim strRetorno
	Dim strSQL
	Dim objRS
	Dim objRS2
	Dim objConexao
	Dim strConexao
		
	'Inicialização
	Set objConexao	= Server.CreateObject("ADODB.Connection")
	Set objRS		= Server.CreateObject("ADODB.RecordSet")
	Set objRS2		= Server.CreateObject("ADODB.RecordSet")
	strRetorno		= ""
	strConexao		= "SUA CONEXAO COM O BANCO MYSQL"
		
	'Lista das tabelas
	objConexao.Open strConexao
	Set objRS = objConexao.Execute("SHOW TABLES")
	strRetorno = "<table border=1>"
	strRetorno = strRetorno & "<tr>"
	strRetorno = strRetorno & "	<th>Tabela</th>"
	strRetorno = strRetorno & "	<th>Operação</th>"
	strRetorno = strRetorno & "	<th>Tipo</th>"
	strRetorno = strRetorno & "	<th>Mensagem</th>"
	strRetorno = strRetorno & "</tr>"
	If Not objRS.EOF Then
		Do While Not objRS.EOF
			strSQL = Cmd & " TABLE " & objRS.Fields(0).Value & ""
			Set objRS2 = objConexao.Execute(strSQL)
			If Not objRS2.EOF Then
				strRetorno = strRetorno & "<tr>"
				strRetorno = strRetorno & "	<td>" & objRS2("TABLE")		& "</td>"
				strRetorno = strRetorno & "	<td>" & objRS2("OP")		& "</td>"
				strRetorno = strRetorno & "	<td>" & objRS2("MSG_TYPE")	& "</td>"
				strRetorno = strRetorno & "	<td>" & objRS2("MSG_TEXT")	& "</td>"
				strRetorno = strRetorno & "</tr>"
			End If
			objRS2.Close
			objRS.MoveNext
		Loop
	Else
		strRetorno = strRetorno & "<tr><td colspan=4>Não foram encontrads tabelas</td></tr>"
	End If
	strRetorno = strRetorno & "</table>"
	objRS.Close

	'Retornando a função
	ManutencaoTabelas = strRetorno
		
	'Destruição
	Set objRS2		= Nothing
	Set objRS		= Nothing
	Set objConexao	= Nothing	
End Function
%>

Sim   Não   Este código foi útil para você?
NotaComentário
Ainda não foi enviado nenhum comentário.
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.