0

Cómo buscar una cadena de texto dentro los objetos de nuestra base de datos

Es frecuente que tengamos que encontrar un texto concreto en el código de todos los objetos de nuestras bases de datos.
Revisar uno por uno cada objeto seria una tarea complicada, en algunos entornos casi imposible.
Os dejamos una consulta que solucionaría este trabajo.

La consulta devuelve el nombre de la instancia , el de la base de datos, el nombre del objeto y el tipo de objeto que es, tambien la fecha de creación y el código completo que contiene ese objeto:

CREATE TABLE ##buscartexto (Database_Name  VARCHAR(255),Object  VARCHAR(255), Type  VARCHAR(255),[create]  datetime,text varchar (max)) 

DECLARE @command varchar(1000) 

SELECT @command = 'USE [?] 
INSERT INTO ##buscartexto 
   SELECT db_name () as Database_name,
  so .name [Objet],
  so .type_desc [Type],
  so .create_date [Create],
  sm.definition [Text]
FROM sys .objects so
INNER JOIN sys. sql_modules sm ON so.object_id = sm.object_id
WHERE  
   
    CONVERT(VARCHAR(8000),sm.definition) LIKE ''%registros%''' 

EXEC sp_MSforeachdb @command

select @@servername as instance_name,* from ##buscartexto
drop table ##buscartexto

Si la consulta devuelve muchos valores y solo necesitamos encontrar un tipo de objeto podemos utilizar la columna type_desc para filtrar.

Os recordamos que si necesitais ampliar la consulta a varias instancias podeis hacerlo con el metodo que ya explicamos en esta entrada:

¿Con qué cuenta de servicio y en qué puerto escucha tu SQL SERVER?

0

¿Cuáles son las tablas más pesadas de nuestras bases de datos?

Volvemos a la carga con una entrada muy breve y útil que podrás lanzar en todas tus instancias SQL Server:

¿Cuáles son las tablas más pesadas de TODAS tus bases de datos?

Usaremos el procedimiento almacenado de Microsoft , reconocido como «undocumented features of SQL Server”, sp_MSforeachdb y una tabla temporal donde se almacenará la información de todas las tablas de todas las bases de datos del SQL Server.

Continuar leyendo
0

Traza por defecto ¿cómo utilizarla?

Uno de los beneficios de tener habilitada la traza por defecto de SQL Server es que te permite comprobar quién, cuándo, cómo y desde dónde se ha realizado una operación SHRINK de tus ficheros de bases de datos.

Hace poco nos toco investigar quién había realizado un SHRINK en un fichero de log de transacciones de una de nuestras bases de datos más críticas, ya que esto impacto en el rendimiento de la operativa transaccional de nuestro cliente.

Continuar leyendo
0

Cómo crear y detectar un bloqueo

Cuando se está ejecutando simultaneamente más de un proceso, es habitual que nos encontremos que dos de ellos intentan modificar el mismo registro. SQL Server  produce un bloqueo como mecanismo de protección de la integridad de nuestros datos. El problema es cuando estos bloqueos provocan que las consultas comiencen a experimentar problemas.

En esta entrada vamos a intentar explicar como identificar un bloqueo, y cómo crearlos de una manera práctica y sencilla.

Continuar leyendo
0

Service Principal Name (SPN)

Recientemente, trabajando en uno de nuestros proyectos, realizando uno de nuestros habituales chequeos nos topamos con que en el error log de una de las instancias presentaba el siguiente mensaje al arrancar el servicio:

ERRORLOG Windows return code: 0x200b, state: 15: The SQL Server Network Interface library could not register the Service Principal Name (SPN)

Continuar leyendo