Pregunta

Estoy trabajando con un Servidor SQL server 2000 de la base de datos que es probable que tenga un par de docenas de tablas que ya no se tiene acceso.Me gustaría borrar los datos que ya no necesita mantener, pero no estoy seguro de cómo identificar que las tablas de quitar.

La base de datos es compartida por diferentes aplicaciones, así que no puedo estar 100% seguro de que la revisión de estos me va a dar una lista completa de los objetos que se utilizan.

Lo que me gustaría hacer, si es posible, es obtener una lista de las tablas que no se ha accedido a todos durante algún período de tiempo.No lee, no escribe.¿Cómo debo acerca de esto?

¿Fue útil?

Solución

MSSQL2000 no dar ese tipo de información.Pero de una manera que usted puede identificar lo que las tablas SE utilizan (y luego deducir cuáles no lo son) es utilizar el Analizador de SQL, para guardar todas las consultas que ir a una determinada base de datos.Configurar el analizador de registrar los resultados en una nueva tabla y, a continuación, comprobar las consultas guardadas allí para encontrar todas las tablas (y puntos de vista, sps, etc) que son utilizados por las aplicaciones.

De otro modo creo que podría comprobar si hay alguna ", escribe" añadir una nueva columna de marca de tiempo para cada mesa, y un gatillo que las actualizaciones de la columna cada vez que hay una actualización o una inserción.Pero tenga en cuenta que si las aplicaciones hacer consultas del tipo

select * from ...

a continuación, recibirá una nueva columna y que puede causar algunos problemas.

Otros consejos

Otra sugerencia para el seguimiento de las tablas que se han escrito para que es el uso de Puerta roja SQL Registro de Rescate (gratis).Esta herramienta se sumerge en el registro de la base de datos y mostrará todas las inserciones, actualizaciones y eliminaciones.La lista es totalmente accesible, también.

Que no cumple los criterios para la investigación de lee en la base de datos, pero creo que el Analizador de SQL técnica se obtiene una idea clara en la medida en que va.

Si usted tiene lastupdate columnas puede comprobar las escrituras, no hay realmente ninguna manera fácil de comprobar lee.Puede ejecutar el analizador, guardar la traza de una tabla y comprobar allí

Lo que suele hacer es cambiar el nombre de la tabla anteponiendo con un underscrore, cuando la gente empieza a gritar acabo de cambiar el nombre

Si no se utiliza, significa que su aplicación no tiene más referencias a las tablas en cuestión y usted está utilizando sql dinámico, usted puede hacer una búsqueda de los nombres de tabla en tu aplicación, si no existen los aleje.

También he emite todos los sprocs, funciones, etc.a un archivo de texto y hacer una búsqueda de los nombres de la tabla.Si no se encuentra, o que se encuentran en procedimientos que deben ser eliminados también, de golpe de distancia.

Acaba de eliminar a ellos y a ver si algún usuario se queja por ello ;)

Parece utilizando el Analizador se va a trabajar.Una vez que he dejado correr un rato, yo debería tener una buena lista de tablas usadas.Cualquier persona que no usa sus mesas cada día probablemente puede esperar a que se pueden restaurar desde la copia de seguridad.Gracias, gente.

Probablemente sea demasiado tarde para ayudar a mogrify, pero para que alguien esté haciendo una búsqueda;Yo iba a buscar todos los objetos que utilizan este objeto en mi código, a continuación, en SQL Server mediante la ejecución de este :

select distinct '[' + object_name(id) + ']'
de syscomments
donde el texto como '%MY_TABLE_NAME%'

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top