IndexOptimize
我有一个简单的问题:运行统计更新SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
以避免如下阻塞是否安全?
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
可能不会
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Ola 已在运行来收集数据的查询中使用。添加外部SET
语句不会做任何事情。尽管 SQL Server 中存在一些导致隔离级别提示不被遵守的错误,但从您的问题中尚不清楚这是否是这里发生的情况。
UNCOMMITTED
阻塞可能来自于实际更新统计数据,向任何地方添加任何内容都无济于事,因为它需要Sch-M
锁定,而这是无法阻止的。