对于 SQL Server 2017年累积更新 5

适用于: SQL Server 2017 on Linux (all editions)SQL Server 2017 on Windows (all editions)

本文介绍了累积更新包 5 (CU5) (生成号: 14.0.3023.8) 的 SQL Server 2017年。此更新包含修复SQL Server 2017年在初始发布后发布。

累积更新

累积更新 (CU) 现在可从 Microsoft 下载中心下载。下载中心仅提供已发布的 SQL Server 2017 最新累积更新。

用于 Linux 的 CU 包都在https://packages.microsoft.com/

注意

  • 每个新的 CU 包含以前 CU 的已安装版本的 SQL Server 中所包含的所有修复程序。
  • SQL Server 累积更新的认证级别与 Service Pack 相同,您可以放心安装。
  • Microsoft 建议在累积更新可用时持续主动安装:
    • 历史数据表明,很多支持案例都涉及已发布累积更新中已解决的问题。
    • 累积更新包含的附加价值可能高于修补程序。 包括支持能力、可管理性和可靠性更新。
  • 建议您在将累积更新部署到生产环境之前对其进行测试。

如何获取此累积更新包的窗口


下面的更新可以从 Microsoft 下载中心获取︰如果未出现下载页面,请联系Microsoft 客户服务和支持来获取累积更新包。请注意发布的 SQL Server 2017,这和所有未来的累积更新后可以位于并从Microsoft 更新目录下载上一期。但是,Microsoft 建议您总是安装最新累积更新可用。

如何对 Linux 获取此累积更新包


若要更新到最新的 CU Linux,首先必须配置累积更新存储库。然后,通过使用适当的特定于平台的更新命令更新 SQL Server 包。

有关安装说明和 CU 包下载到的直接链接,请参阅发行说明

此累积更新包中所包含的其他修补程序


VSTS 错误号 知识库文章编号 说明 修复区域 平台
11561331 4089946 修复: SQL Server 时停止响应可用性组侦听器删除或更改其端口号 高可用性 全部
11447604 4038881 修复: 意外的异常发生时通过使用 SSA 2016 或 SSA 2017 过程更新处理维度 Analysis Services Windows
11469023 4088270 当您在 SQL Server 中删除临时对象超大型 PAGELATCH_EX 争用发生修复: SQL 引擎 Windows
11542851 4089473 更好查询内并行度死锁的 SQL Server 2017年疑难解答 SQL 性能 全部
11569058 4090789 修复: 内存中 OLTP 数据库需要很长的时间,若要在 SQL Server 2017年恢复 SQL 引擎 全部
11591383 4091245 修复: 发生访问冲突时查询在 SQL Server 2017年中一个整数列的表 SQL 性能 Windows
11569472 4089948 修复: 查询内死锁时将值插入一个分区聚集的 columnstore 的索引,SQL Server 2016年或 2017 SQL 引擎 全部
11677397 4091722 修复: 当您在 Linux 上的 SQL Server 2017年使用 AlwaysOn AG Pacemaker 促进为主的未同步的副本 高可用性 Linux
11505194 4055674 修复: 缺少 SQL Server 2016年和 2017年集成服务在 Analysis Services 处理任务的日志 Analysis Services Windows
11632824 4091063 修复: 发生访问冲突时查询存储收集运行时统计信息在 SQL Server 2017 SQL 引擎 全部
11686345 4092667 具有在 SQL Server 2017年二进制排序规则的数据库中的修补程序: 错误 1921年和 1750 创建节点或边缘时表 SQL 性能 全部
11578523 4089718 当从 SQL Server 2012年的 MDS 升级到 2016年的改进: 性能问题 数据质量服务 (DQS) 全部
11705681 4093805 修复: 不能使用"docker 停止"命令停止 SQL Server Linux Docker 容器 SQL 引擎 Linux
11455785 4058174 修复: 将在 SQL Server 2016年或 2017年发生粗 tempdb 争用 SQL 引擎 Windows
11301460 4058700 修复: 间歇性 9004 错误通过在 SQL Server 2014 年 2016 和 2017年待机模式恢复后备份 SQL 引擎 全部
11552950 4092066 修复: 复制数据库排序规则使用 SQL Server 2016年 _SC 排序规则扩展时,不启用 SQL 引擎 Windows
11516257 4087406 修补程序: 错误 9002 没有足够的磁盘空间用于 SQL Server 2014 年 2016 和 2017年重要日志增长时 SQL 引擎 全部
11789381 4089276 当优化的位图筛选器应用于在 SQL Server 2016年和 2017年查询计划时可提高查询性能 SQL 性能 全部

此更新注意事项


混合环境部署

时到 (如 AlwaysOn、 复制、 群集和镜像) 的混合环境中部署更新,建议您在部署更新之前参考以下文章:

累积更新包信息


先决条件

要应用此累积更新程序包,必须运行 SQL Server 2017。

重启信息

应用此累积更新包后,可能必须重新启动计算机。

注册表信息

要使用此程序包中的某个修补程序,不必对注册表进行任何更改。

查询存储通知


重要说明

如果您使用查询存储功能,并且您以前已经安装累积更新 2 (CU2) (14.0.3008.27),以下要求适用于您:

安装后累积更新 3 (CU3) (14.0.3015.40)或更高版本的 CU,必须立即运行下面的脚本来删除查询存储 CU2 安装时所收集的所有计划:

SET NOCOUNT ON;DROP TABLE IF EXISTS #tmpUserDBs;SELECT [database_id], 0 AS [IsDone]INTO #tmpUserDBsFROM master.sys.databasesWHERE [database_id] > 4 AND [state] = 0 -- must be ONLINE AND is_read_only = 0 -- cannot be READ_ONLY AND [database_id] NOT IN (SELECT dr.database_id FROM sys.dm_hadr_database_replica_states dr -- Except all local Always On secondary replicas  INNER JOIN sys.dm_hadr_availability_replica_states rs ON dr.group_id = rs.group_id  INNER JOIN sys.databases d ON dr.database_id = d.database_id  WHERE rs.role = 2 -- Is Secondary   AND dr.is_local = 1   AND rs.is_local = 1)DECLARE @userDB sysname;WHILE (SELECT COUNT([database_id]) FROM #tmpUserDBs WHERE [IsDone] = 0) > 0BEGIN SELECT TOP 1 @userDB = DB_NAME([database_id]) FROM #tmpUserDBs WHERE [IsDone] = 0 -- PRINT 'Working on database ' + @userDB EXEC ('USE [' + @userDB + '];DECLARE @clearPlan bigint, @clearQry bigint;IF EXISTS (SELECT [actual_state] FROM sys.database_query_store_options WHERE [actual_state] IN (1,2))BEGIN IF EXISTS (SELECT plan_id FROM sys.query_store_plan WHERE engine_version = ''14.0.3008.27'') BEGIN  DROP TABLE IF EXISTS #tmpclearPlans;  SELECT plan_id, query_id, 0 AS [IsDone]  INTO #tmpclearPlans  FROM sys.query_store_plan WHERE engine_version = ''14.0.3008.27''  WHILE (SELECT COUNT(plan_id) FROM #tmpclearPlans WHERE [IsDone] = 0) > 0  BEGIN   SELECT TOP 1 @clearPlan = plan_id, @clearQry = query_id FROM #tmpclearPlans WHERE [IsDone] = 0   EXECUTE sys.sp_query_store_unforce_plan @clearQry, @clearPlan;   EXECUTE sys.sp_query_store_remove_plan @clearPlan;   UPDATE #tmpclearPlans   SET [IsDone] = 1   WHERE plan_id = @clearPlan AND query_id = @clearQry  END;  PRINT ''- Cleared possibly affected plans in database [' + @userDB + ']'' END ELSE BEGIN  PRINT ''- No affected plans in database [' + @userDB + ']'' ENDENDELSEBEGIN PRINT ''- Query Store not enabled in database [' + @userDB + ']''END')  UPDATE #tmpUserDBs  SET [IsDone] = 1  WHERE [database_id] = DB_ID(@userDB)END