jueves, 29 de octubre de 2020

Script T-SQL para crear turnos

Estaba con un equipo de trabajo y querían hacer turnos que vigilia del servidor. Básicamente, una vez a la semana, un miembro del equipo tenía que atender los emails de alarmas enviados por los jobs de trabajo. Para crear turnos por semana, les pasé este script en T-SQL. Básicamente con la función DATEPART se obtiene la semana de la fecha actual. GetDate obtiene la fecha actual. %4 divide y trabaja con el residuo de la semana. En este caso eran 4 miembros. El resto es mostrar a que DBA le tocaba. 


declare @turno as int

select @turno= DATEPART(week,GETDATE() )%4

If @turno=0

 select 'Rolando' AS Turno

If @turno=1

select 'Lucas'  AS Turno

if @turno=2

select 'Selena' AS Turno

if @turno=3

select 'Dani' AS Turno

Si tienes dudas sobre sentencias T-SQL, escribe tus comentarios.

viernes, 23 de octubre de 2020

Como matar a un SQL Job fantasma

 Me llamaron la otra vez para una emergencia. Tenían un job de SQL para procesar una base de datos Tabular.

El job dependía de otro que tenía que terminar, pero nunca acababa.

Lo fuí a ver y en el historial no hablaba de ningún fallo. Lo detuve a mano y me salió que el job se detuvo con éxito.

Sin embargo cuando lo quería correr, me salía que seguía corriendo. 

Decidí detenerlo usando el stored procedure para detener el job:

exec sp_stop_job @job_name=N'Process Marketing DB'

Me salió de nuevo cuando lo quize correr que ya estaba corriendo. En el activity monitor no se podía detener, pero se lo veía corriendo.

Al final, lo que tuve que hacer fue detener el Agente de SQL. No es muy recomendable si hay varios jobs corriendo (mi caso), pero con algo de coordinación pude reiniciar los agentes y continuar los jobs o trabajos luego.

Espero que les haya servido el artículo.

sábado, 10 de octubre de 2020

Como obtener información de particiones SSAS usando consultas

 En muchas ocasiones necesitamos consultar información de nuestros modelos multidimensionales de SSAS.

Primeramente se usan las vistas DMV (Vistas de administración dinámicas o si prefieren en inglés Dynamic Management Views).

Ustedes pueden ver la lista de DMV para Analysis Services acá:

Otra forma de obtener datos, crear particiones o obtener información es mediante PowerShell que es un lenguaje de programación. Acá tengo algo de información al respecto:

Otra forma de obtener información de particiones es usar procedimientos almacenados. Inicialmente estaban en Codeplex pero se han movido a github: