Agilizar AdminPro lento por exceso de registros

carpeta data en mysql server

Algunas veces las bases de datos que utilizamos en nuestro AdminPro son muy Robustas, por lo que con el tiempo van volviéndose mas lentas por el exceso de registros que podamos tener.
El siguiente es un método para poder crear un respaldo e iniciar de cero sin perder los datos anteriores; para ello necesitaremos de Navicat, un programa para administrar bases de datos en MYSQL que se instala junto al AdminPro

Por lo cual el primer paso es cerrar completamente el AdminPro

entramos a la carpeta data de MySQL (C:Program Files (x86)MySQLMySQL Server 5.0data) donde encontraremos nuestra base de datos de AdminPro, a la que copiaremos y pegaremos ahí mismo, y a la nueva carpeta le pondremos un nombre para ubicarla, en éste ejemplo el nombre será admin17122014 en referencia a que se creo el 17 de diciembre del 2014

 
ya en navicat tenemos la copia y la base que usamos en adminpro

Acto seguido debemos abrir el Navicat, donde nos daremos cuenta de que la copia que hicimos y la base que usamos están ya en el sistema; en el AdminPro la base que usamos sería la original de la que desglosamos una copia, en este caso admin_6_2; como ya tenemos respaldada la base, admin_6_2 será la base que modificaremos

tablas a modificar en navicat dentro de nuestra base de datos

vamos a elegir una fecha como referencia para realizar el borrado de la nueva información, recomendamos por lo menos un par de semanas para no interferir con actividades pendientes como cortes de mes; las tablas que modificaremos serán las siguientes:
Cobro
Documentodescripcion
Documentoventa
Registrodeactividad

registro por fecha en tabla cobro dentro de la base de adminpro

para los 3 primeros (cobro, documentodescripcion, documentoventa), entramos a dichas tablas (se realiza ejemplo con la de cobro)
lo que haremos es buscar el primer registro con la fecha que elegimos como referencia y anotar su número de la primera columna junto con el nombre de la columna, en este caso el nombre de la columna es No y el número de registro es 1122
Ya que tenemos estos datos, abrimos la consola con un click derecho en la base de datos que estamos modificando (la actual, elegir ‘Console’)

abrir consola dentro de una base de datos en navicat
Dentro de la consola vamos a escribir:
delete from cobro were No <= 1122;
los datos en azul podrian cambiar dependiendo la tabla a modificar (tabla a modificar, nombre de columna donde esta el número del registro y número del registro)
Cabe destacar que haremos lo mismo para las tablas documentodescripcion y documentoventa, modificando los valores según los otorgados por la tabla; en caso de documentodescripción la instrucción en la consola sería asi:delete from documentodescripcion were Numero <= 17864;
registro por fecha en tabla documentodescripcion dentro de la base de adminpro

Por último borraremos todo aquel registro de actividad, ya que esos datos no se utilizan en la base de datos y también hacen que la base sea robusta, esto se logra con la siguiente instrucción:

instruccion de consola para eliminar el registro de actividad por completo

Optimizar registros conservando cuentas por cobrar

A continuación se describen las instrucciones utilizadas en Mega LV para optimizar la BD sin eliminar las cuentas por cobrar

mysql> delete from cobro WHERE NO < 100473;
Query OK, 100022 rows affected


mysql> delete from documentoventa WHERE No_documento < 100071 AND Saldo_documento <= 0;
Query OK, 99907 rows affected


mysql> update documentodescripcion AS dd INNER JOIN documentoventa AS dv ON dd.Folio=dv.Folio_documento AND dd.Documento=dv.Nombre_documento AND Saldo_documento > 0 SET verificados = 1;
Query OK, 910 rows affected
Rows matched: 920 Changed: 910 Warnings: 0


mysql> delete from documentodescripcion WHERE Numero < 346081 AND verificados=0;
Query OK, 339829 rows affected


mysql> delete from registroactividad;
Query OK, 3348 rows affected


mysql>

Agilizar AdminPro con indices y navicat

Podemos encontrar que en algunos sistemas de AdminPro, al momento de generar un PDF o realizar una venta, se realiza de forma lenta y algunas veces eso nos puede resultar molesto

Solución

Podemos solucionarlo con la creación de un índice extra usando el folio como llave extra.
para ello comenzamos cerrando todo y accediendo a nuestro gestor de bases de datos, en este caso Navycat, seleccionamos nuestra base de datos actual y buscamos la tabla documento cdfi, que es la que contiene los datos que van al PDF.

Imagen1
Lo primero que haremos será duplicar la tabla para tener un respaldo de la tabla en caso de cualquier error

Imagen2
Entramos al diseño de la tabla con el botón Design Table seleccionando documento cdfi


Después de crear el índice, el PDF podrá visualizarse con mayor efectividad.
En ocasiones puede surgir un error como el siguiente, para el que también explicaremos el proceso
Imagen3
En caso de aparecer este mensaje de error, entrar en la tabla antes de volver a intentar crear el índice

Imagen4
Observamos que existe un duplicado de un folio, necesitamos que no lo haya, eliminamos el segundo registro (el marcado de azul) con el botón ‘-‘ ubicado en la parte posterior y volvemos a intentar hasta que pueda crearse el índice

Se elimina el segundo registro de los duplicados basándonos en que el orden de los registros coincidan (A968 aparece despues de A972).
Como podemos observar en la imagen, ‘A969’ también esta duplicado, hay que eliminarlo de la misma forma, hasta que el índice este creado, una vez logrado ésto, el PDF se visualizará de manera mas eficiente
Captura2a
debemos crear indices para las tablas documentocfdi, cobro, documentodescripcion, documentoventa y registroactividad (asi mismo realizar las copias de las tablas de la misma forma)
Imagen4
como una medida alterna podemos borrar los datos contenidos en la tabla registroactividad, ya que contiene información que puede sobrecargar la base de datos y no influye si es eliminada