Tenho uma pergunta rápida: é seguro executar IndexOptimize
a atualização de estatísticas SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
para evitar o bloqueio conforme abaixo?
USE [DBA]
GO
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; -- turn it on
EXECUTE [dbo].[IndexOptimize]
@Databases = 'XYZ',
@FragmentationLow = NULL,
@FragmentationMedium = NULL,
@FragmentationHigh = NULL,
@UpdateStatistics = 'ALL',
@Indexes = 'XYZ.dbo.XYZ',
@StatisticsSample = 30,
@MaxDOP = 8,
@LogToTable = 'Y';
GO
SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -- turn it off
provavelmente não
Ola já usa
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
nas consultas que são executadas para coletar dados. Adicionar aSET
instrução externa não fará muita coisa.Embora tenha havido alguns bugs no SQL Server que fazem com que as dicas de nível de isolamento não sejam respeitadas, sua pergunta não deixa claro se é isso que está acontecendo aqui.
O bloqueio provavelmente vem da atualização real das estatísticas, o que não será ajudado pela adição de
UNCOMMITTED
algo a qualquer lugar, porque é necessário umSch-M
bloqueio que não pode ser evitado.