Consultas SQL

Detección de índices, tablas y packages no usados en DB2

A partir de la versión 9.7 de DB2, se puede conocer que índices no están siendo usados en una Base de Datos. La consulta es igualmente trasladable a tablas y packages.

DB2 proporciona así una herramienta útil para tunear los índices y detectar problemas en su uso.

La novedad que incluye la versión 9.7 es la inclusión de un nuevo campo LASTUSED en las tablas SYSCAT.INDEXES, SYSCAT.TABLES y SYSCAT.PACKAGES.

Este campo indica la fecha de último uso del índice, tabla o packages.

Insert from select en SQL Server

Insertar registros con una select

Para hacer un insert para añadir registros a una tabla a partir de una sentencia Select en SQL Server se puede hacer algo tan simple como esto:

insert into mi_tabla_destino
select * from mi_tabla_origen

 

Insertar registros con nombre de campo o diferente número con una select

Eso siempre que los campos de ambas tablas sean iguales. Si no coinciden exactamente, en número, nombre, etc., en lugar de utilizar el * hay que indicar el nombre de los campos que vamos a utilizar en la tabla origen y la tabla destino:

insert into mi_tabla_destino (campo_destino1, campo_destino2, campo_destino3)
select (campo_origen1, campo_origen2, campo_origen3)

 

Crear una nueva tabla a partir de una select (CTAS)

Esto si la tabla ya existe, si lo que se quiere es crear una nueva tabla a partir de los datos de una select sobre otras tablas, algo conocido como CTAS (Create As Select), la sintaxis de la sentencia cambia un poco:

Como hacer un update de SQL Server a partir de una query self-join

Update con self join SQL ServerPara hacer un update de SQL Server podemos utilizar una join de la tabla que actualizamos contra otra tabla de la base de datos, que contiene la información que necesitamos. Pero si la join es contra la misma tabla (self-join) hay que cambiar un poco la sentencia para que funcione bien..