viernes, 11 de diciembre de 2020

Como cambiar propiedades a varios jobs de sql server al mismo tiempo

 En SQL Server existen los jobs o trabajos para automatizar tareas. Estos jobs tienen los pasos o steps.

Muchas veces queremos cambiar las propiedades de varios steps o pasos de un job al mismo tiempo. Para no hacer uno por uno usando la IU (Interface de Usuario), podemos acceder a los jobs de la base de datos msdb. 

La base de datos msdb es una de las bases de datos del sistema que entre otras cosas, almacena información del agente de SQL Server incluyendo los jobs.

La tabla dbo.sysjobsteps contiene la información de los pasos o steps del job y la tabla  sysjobs contiene el nombre de los jobs que se une con la otra tabla mediante el job_id que es un número identificador del job.

El siguiente ejemplo muestra como cambiar el número de intentos por step en caso de que estos fallen (retry attemps):


USE [msdb]

GO


UPDATE [dbo].[sysjobsteps]

   SET 

      [retry_attempts] = 3

 FROM [msdb].[dbo].[sysjobsteps] s

  inner join

  sysjobs j

  on s.job_id=j.job_id

  where j.name='nombre_del_job'


Si tienes dudas de como cambiar masivamente propiedades de jobs, steps de SQL Server, escribe tus comentarios o escribeme al email en la sección de contactos. Será un placer ayudarte.

Como resolver el error A string store or binary store with a compatibility level of '1050' is at the maximum file size of 4 gigabytes

 Una compañía estaba cargando datos en su base de datos Tabular de SSAS y recibió el siguiente mensaje:

A string store or binary store with a compatibility level of '1050' is at the maximum file size of 4 gigabytes. To store additional strings, you can change the StringStoresCompatibilityLevel property

Este error es común en una base de datos multidimensional y simplemente es cambiar la propiedad como indica el mensaje de error. Para una base de datos multidimensional, las instrucciones son las siguientes:

En inglés:

https://docs.microsoft.com/en-us/analysis-services/multidimensional-models/configure-string-storage-for-dimensions-and-partitions?view=asallproducts-allversions

En español:

https://docs.microsoft.com/es-es/analysis-services/multidimensional-models/configure-string-storage-for-dimensions-and-partitions?view=asallproducts-allversions

Sin embargo, este no era el caso. Este error no es normal en una base de datos Tabular. Es más, esta propiedad no puede ser cambiada en SSMS o Visual Studio para Tabulares.

Pregunté a Microsoft si había una forma no documentada de cambiar la propiedad y sus consecuencias. Me respondieron que no. Que la propiedad no se puede cambiar.

Al final el problema eran calculations pesadas dentro del modelo Tabular. Esto consumía mucho cache y eran calculations pesados con cadenas string largas y poco eficientes. 

Mediante SQL Profiler se identificaron los calculations pesados y se optimizó el origen de datos de donde se cargaba la información al modelo Tabular para evitar el problema.

Finalmente, se tuvo un final feliz.

Espero que esto le sirva a alguien. Un saludo.