SQL Server 2014 发行说明

适用范围:SQL Server

本文介绍 SQL Server 2014 (12.x) 版本的已知问题,包括相关服务包。

SQL Server 2014 Service Pack 2 (SP2)

SQL Server 2014 SP2 包含针对 SQL Server 2014 SP1 CU7 发布的修补程序的汇总。 它包含以性能、可伸缩性以及基于来自客户和 SQL 社区的反馈的诊断为中心的改进。

SP2 中性能和可伸缩性方面的改进

功能 / 特点 说明 更多信息
自动 Soft NUMA 分区 可在报告每个 NUMA 节点 8 个或更多 CPU 的系统上自动配置 Soft NUMA。 软件 NUMA (SQL Server)
缓冲池扩展 启用 SQL Server 缓冲池以缩放 8 TB 以上。 缓冲池扩展
动态内存对象缩放 基于节点数和核心数对内存对象进行动态分区。 此改进消除了在 SQL 2014 SP2 之后对跟踪标志 8048 的需求。 Dynamic Memory Object Scaling(动态内存对象缩放)
MAXDOP DBCC CHECK*命令提示 此改进对于使用 MAXDOP 除值以外的 sp_configure 设置运行 DBCC CHECKDB 非常有用。 查询提示
SOS_RWLock 旋转锁改进 无需使用 SOS_RWLock 旋转锁,改为使用类似于内存中 OLTP 的无锁技术。 SOS_RWLock 重新设计
空间本机实现 空间查询性能有重大改进。 SQL Server 2012 和 2014 中的空间性能改进

SP2 中的可支持性和诊断改进

功能 / 特点 说明 更多信息
AlwaysOn 超时日志记录 添加租约超时消息的新日志记录功能,以便记录当前时间和预期的续订时间。 改进的 Always On 可用性组租用超时诊断
AlwaysOn XEvents 和性能计数器 新的 AlwaysOn XEvents 和性能计数器,用于在解决 Always On 延迟问题时改进诊断。 KB 3107172KB 3107400
更改跟踪清除 新的存储过程 sp_flush_CT_internal_table_on_demand 可按需清理更改跟踪内部表。 KB 3173157
数据库克隆 通过克隆架构、元数据和统计信息(数据除外),使用新 DBCC 命令对现有生产数据库进行故障排除。 克隆的数据库不应用于生产环境。 创建包含架构、统计信息和查询存储的数据库克隆
DMF 添加件 新的 DMF sys.dm_db_incremental_stats_properties 为增量统计信息公开每个分区的信息。 KB 3170114
用于检索 SQL Server 中输入缓冲区的 DMF 现提供用于检索会话/请求 (sys.dm_exec_input_buffer) 的输入缓冲区的新 DMF。 它在功能上等同于 DBCC INPUTBUFFER。 sys.dm_exec_input_buffer
DROP 对复制的 DDL 支持 允许从数据库和出版物中删除以文章形式包含在事务复制出版物中的表。 KB 3170123
针对 SQL 服务帐户的 IFI 特权 确定即时文件初始化 (IFI) 在 SQL Server 服务启动时是否有效。 数据库即时文件初始化
内存授予 - 处理问题 可以通过限制查询的内存授予来防止内存争用,从而在运行查询时使用诊断提示。 查询提示
轻型按运算符查询执行分析 优化按运算符查询执行统计信息(如实际行数)的收集。 Developers Choice:Query progress - anytime, anywhere(开发人员之选:随时随地查询进度)
查询执行诊断 现可在查询执行计划中报告读取的实际行,以帮助改进查询性能故障排除。 KB 3107397
溢出的 tempdb 查询执行诊断 哈希警告和排序警告现在具有其他列来跟踪物理 I/O 统计信息、使用的内存和受影响的行。 改进 temptdb 溢出诊断
tempdb 保障性 在服务器启动时,为 tempdb 文件数、tempdb 数据文件更改使用新的错误日志消息。 KB 2963384

此外,请注意以下修补程序:

  • Xevent 调用堆栈现包含模块名称和偏移,而不是绝对地址。
  • 加强了 XE 和 DMV 诊断之间的关联 - 仅 Query_hash 和 query_plan_hash 用于标识查询。 DMV 将二者定义为 varbinary(8),而 XEvent 将其定义为 UINT64。 由于 SQL Server 没有“未签名的 bigint”,强制转换并不总是起作用。 此改进引入了与query_hash和query_plan_hash等效的新 XEvent作/筛选器列,但定义为 64 时 INT除外。 此修补程序有助于关联 XE 和 DMV 之间的查询。
  • 支持 UTF-8 in BULK INSERT 和 BCP - 现已在 BULK INSERT BCP 中启用对在 UTF-8 字符集中编码的数据的导出和导入。

下载页和 SP2 详细信息

SQL Server 2014 Service Pack 1 (SP1)

SQL Server 2014 SP1 包含 SQL Server 2014 CU 1 至 CU 5(包含 CU 5)中提供的修补程序,以及以前 SQL Server 2012 SP2 中附带的修补程序汇总。

注意

如果 SQL Server 实例已启用 SSISDB 目录,并且在升级到 SP1 时遇到安装错误,请按照有关此问题的说明安装 SQL Server 2014 SP1 时,出现错误 912 或 3417 进行操作。

下载页和 SP1 详细信息

安装 SQL Server 2014 RTM 之前

SQL Server 2014 RTM 中的限制和限制

  1. 不支持从 SQL Server 2014 CTP 1 升级到 SQL Server 2014 RTM。
  2. 不支持与 SQL Server 2014 RTM 并行安装 SQL Server 2014 CTP 1。
  3. 不支持将 SQL Server 2014 CTP 1 数据库附加到 SQL Server 2014 RTM 或还原。

解决方法: 无。

从 SQL Server 2014 CTP 2 升级到 SQL Server RTM

完全支持升级。 具体而言,您可以:

  1. 将 SQL Server 2014 CTP 2 数据库附加到 SQL Server 2014 RTM 实例。
  2. 将在 SQL Server 2014 CTP 2 上执行的数据库备份还原到 SQL Server 2014 RTM 实例。
  3. 就地升级到 SQL Server 2014 RTM。
  4. 滚动升级到 SQL Server 2014 RTM。 在启动滚动升级之前,需要切换到手动故障转移模式。 有关详细信息 ,请参阅升级可用性组副本
  5. SQL Server 2014 CTP 2 中安装的事务性能收集集收集的数据无法通过 SQL Server 2014 RTM 中的 SQL Server Management Studio 进行查看,反之亦然。

从 SQL Server 2014 RTM 降级到 SQL Server 2014 CTP 2

不支持此作。

解决方法: 降级没有解决方法。 我们建议你在升级到 SQL Server 2014 RTM 之前备份数据库。

SQL Server 2014 媒体/ISO/CAB 上的 StreamInsight 客户端版本不正确

错误版本的 StreamInsight.msi 和 StreamInsightClient.msi 位于 SQL Server 介质/ISO/CAB 上的以下路径中 (StreamInsight\<Architecture>\<Language ID>)。

解决方法:SQL Server 2014 功能包下载页下载和安装正确的版本。

产品文档 RTM

报表生成器和 PowerPivit 内容在某些语言中不可用。

问题: 报表生成器内容在以下语言中不可用:

  • 希腊语 (el-GR)
  • 挪威语(博克马尔) (nb-NO
  • 芬兰语 (fi-FI)
  • 丹麦语 (da-DK)

在 SQL Server 2012 (11.x)中,此内容在产品随附的 CHM 文件中提供并且提供这些语言的内容。 这些 CHM 文件不再随产品一起提供,并且报表生成器内容仅在 MSDN 上提供。 MSDN 不支持这些语言。 报表生成器也已从 TechNet 中删除并且在这些支持的语言中不再提供。

解决方法: 无。

问题: Power Pivot 内容在以下语言中不可用:

  • 希腊语 (el-GR)
  • 挪威语(博克马尔) (nb-NO
  • 芬兰语 (fi-FI)
  • 丹麦语 (da-DK)
  • 捷克语 (cs-CZ)
  • 匈牙利语 (hu-HU)
  • 荷兰语(荷兰)(nl-NL)
  • 波兰语 (pl-PL)
  • 瑞典语 (sv-SE)
  • 土耳其语 (tr-TR)
  • 葡萄牙语(葡萄牙)(pt-PT)

在 SQL Server 2012 (11.x)中,已在 TechNet 上提供此内容并且提供这些语言的内容。 此内容已从 TechNet 中删除并且不再提供这些支持的语言的内容。

解决方法: 无。

数据库引擎 (RTM)

SQL Server 2014 RTM 中标准版所做的更改

SQL Server 2014 Standard 具有以下更改:

  • 缓冲池扩展功能允许使用的最大大小为所配置内存的 4 倍。
  • 最大内存从 64 GB 增加到 128 GB。

内存优化顾问将默认约束标记为不兼容

问题: SQL Server Management Studio 中的内存优化顾问将所有默认约束标记为不兼容。 内存优化表中不支持所有默认约束;顾问无法区分受支持和不支持的默认约束类型。 支持的默认约束包括本机编译的存储过程中支持的所有常量、表达式和内置函数。 要查看本机编译的存储过程中支持的函数的列表,请参阅 本机编译的存储过程中支持的构造(#本机编译的存储过程中支持的构造)。

解决方法: 如果要使用顾问来识别阻塞程序,请忽略兼容的默认约束。 要使用内存优化顾问迁移具有兼容默认约束但没有其他阻塞程序的表,请按照以下步骤操作:

  1. 从表定义中删除默认约束。
  2. 使用顾问生成对表的迁移脚本。
  3. 在迁移脚本中添加回默认约束。
  4. 执行迁移脚本。

信息性消息“文件访问被拒绝”在 SQL Server 2014 错误日志中不正确地报告为错误

问题: 重新启动包含内存优化表的数据库的服务器时,可能会在 SQL Server 2014 错误日志中看到以下类型的错误消息:

[ERROR]Unable to delete file C:\Program Files\Microsoft SQL
Server\....old.dll. This error may be due to a previous failure to unload
memory-optimized table DLLs.

此消息实际上是一条信息性消息,不需要用户执行任何操作。

解决方法: 无。 这是一条信息性消息。

缺少索引详细信息不正确地报告内存优化表的包含列

问题: 如果 SQL Server 2014 检测到内存优化表上的查询缺失索引,它将报告内存优化表中的缺失索引 SHOWPLAN_XML,以及缺少的索引 DMV,例如 sys.dm_db_missing_index_details。 在某些情况下,缺少索引详细信息将包含有包含列。 由于所有列都隐式包含在内存优化表上的所有索引中,因此不允许显式指定具有内存优化索引的包含列。

解决方法: 不要在 INCLUDE 内存优化表上指定具有索引的子句。

当哈希索引存在但不适合查询时,缺少索引详细信息会省略缺失的索引

问题: 如果在 HASH 查询中引用的内存优化表的列上有索引,但索引不能用于查询,则 SQL Server 2014 不会始终在 DMV 中 SHOWPLAN_XML 报告缺失索引 sys.dm_db_missing_index_details

具体而言,如果查询包含涉及索引键列子集的相等谓词,或者如果查询包含涉及索引键列的不相等谓词, HASH 则索引不能按原样使用,并且需要其他索引才能有效地执行查询。

解决方法: 如果使用哈希索引,请检查查询和查询计划,以确定查询是否可以从索引键子集的 Index Seek作中受益,或针对不相等谓词的 Index Seek作。 如果需要查找索引键的子集,请使用 NONCLUSTERED 索引,或者对需要查找的列使用 HASH 索引。 如果需要查找不相等谓词,请使用 NONCLUSTERED 索引而不是 HASH索引。

在同一查询中使用内存优化表和内存优化表变量时,如果数据库选项 READ_COMMITTED_SNAPSHOT 设置为 ON,就会失败

问题: 如果数据库选项 READ_COMMITTED_SNAPSHOT 设置为 ON,并且访问用户事务上下文之外的同一语句中的内存优化表和内存优化表变量,则可能会遇到以下错误消息:

Msg 41359
A query that accesses memory optimized tables using the READ COMMITTED
isolation level, cannot access disk based tables when the database option
READ_COMMITTED_SNAPSHOT is set to ON. Provide a supported isolation level
for the memory optimized table using a table hint, such as WITH (SNAPSHOT).

解决方法: 将表提示 WITHSNAPSHOT) 与表变量一起使用,或者使用以下语句将数据库选项MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT设置为 ON

ALTER DATABASE CURRENT
    SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON;

本机编译存储过程的过程和查询执行统计信息按 1000 倍记录工作线程时间

问题:使用sp_xtp_control_proc_exec_statssp_xtp_control_query_exec_stats或启用本机编译存储过程的过程或查询执行统计信息集合后,你将看到 *_worker_time报告在 1000 的倍数、DMV sys.dm_exec_procedure_statssys.dm_exec_query_stats。 工作线程时间少于 500 毫秒的查询执行将按 worker_time 为 0 报告。

解决方法: 无。 不要依赖在执行统计信息 DMV 中报告的worker_time,以便在本机编译的存储过程中对短运行查询进行报告。

包含长表达式的本机编译存储过程使用 SHOWPLAN_XML 的错误

问题: 如果本机编译的存储过程包含一个长表达式,则 SHOWPLAN_XML 使用 T-SQL 选项 SET SHOWPLAN_XML ON 或使用 Management Studio 中的选项“显示估计的执行计划”获取该过程可能会导致以下错误:

Msg 41322. MAT/PIT export/import encountered a failure for memory
optimized table or natively compiled stored procedure with object ID
278292051 in database ID 6. The error code was
0xc00cee81.

解决方法: 有两个建议的解决方法:

  1. 为表达式添加括号,类似以下示例:

    不是:

    SELECT @v0 + @v1 + @v2 + ... + @v199
    

    写入:

    SELECT((@v0 + ... + @v49) + (@v50 + ... + @v99)) + ((@v100 + ... + @v149) + (@v150 + ... + @v199))
    
  2. 使用稍微简化的表达式为显示计划目的创建第二个过程,该计划的形状应大致相同。 例如,不是:

    SELECT @v0 +@v1 +@v2 +...+@v199
    

    写入:

    SELECT @v0 + @v1;
    

问题:使用本机编译的存储过程时,将字符串参数或变量与内置函数DATEPARTDAY一起使用时,MONTH错误消息YEAR显示本机编译的存储过程不支持 datetimeoffset。

解决方法:将字符串参数或变量分配给 datetime2 类型的新变量,并在函数DATEPARTDAYMONTHYEAR函数中使用该变量。 例如:

DECLARE @d datetime2 = @string
DATEPART(weekday, @d)

本机编译顾问错误标记 DELETE FROM 子句

问题: 本机编译顾问将存储过程内的子句错误地标记为 DELETE FROM 不兼容。

解决方法: 无。

通过 SSMS 注册会为 DAC 元数据添加不匹配的实例 ID

问题: 通过 SQL Server Management Studio 注册或删除 Data-Tier 应用程序包(.dacpac)时,sysdac* 表不会正确更新,以允许用户查询数据库的 dacpac 历史记录。 sysdac_history_internal和sysdac_instances_internal的instance_id与允许加入不匹配。

解决方法: 此问题已通过 Data-Tier Application Framework 的功能包再分发得到修复。 应用更新后,所有的新历史记录条目都将使用 sysdac_instances_internal 表中为 instance_id 列出的值。

如果instance_id值不匹配,唯一更正不匹配值的唯一方法是以具有写入 msdb 数据库的权限连接到服务器,并更新instance_id值以匹配。 如果从同一数据库获取多个注册和注销事件,则可能需要查看时间/日期以查看哪些记录与当前instance_id值匹配。

  1. 使用具有更新权限 msdb的登录名连接到 SQL Server Management Studio 中的服务器。

  2. 使用 msdb 数据库打开新查询。

  3. 运行此查询查看所有活动的 DAC 实例。 找到要更正的实例并记下 instance_id

    SELECT * from sysdac_instances_internal;
    
  4. 运行此查询可查看所有历史记录条目:

    SELECT * FROM sysdac_history_internal;
    
  5. 确定应与要修复的实例对应的行。

  6. 将 sysdac_history_internal.instance_id 值更新为在步骤 3 中记下的值(来自 sysdac_instances_internal 表):

    UPDATE sysdac_history_internal SET instance_id = '<value from step 3>' WHERE <expression that matches the rows you want to update>;
    

Reporting Services (RTM)

SQL Server 2012 Reporting Services 本机模式报表服务器无法与 SQL Server 2014 Reporting Services SharePoint 组件并行运行

问题: 当同一服务器上安装了 SQL Server 2014 (12.x) Reporting Services SharePoint 组件时,Reporting Services 本机模式 Windows 服务“SQL Server Reporting Services”(ReportingServicesService.exe) 将无法启动。

解决方法: 卸载 SQL Server 2014 (12.x) Reporting Services SharePoint 组件并重启 Microsoft SQL Server 2012 Reporting Services Windows 服务。

详细信息:

SQL Server 2012 (11.x) Reporting Services 本机模式无法在以下任一条件下并行运行:

  • 用于 SharePoint 产品的 SQL Server 2014 (12.x) Reporting Services 加载项
  • SQL Server 2014 (12.x) Reporting Services SharePoint 共享服务

并行安装会阻止 SQL Server 2012 (11.x) Reporting Services 本机模式 Windows 服务启动。 Windows 事件日志中将看到类似于此处描述的错误消息:

Log Name:        Application
Source:          Report Server (<SQL instance ID>)
Event ID:        117
Task Category:   Startup/Shutdown
Level:           Error
Keywords:        Classic
Description:     The report server database is an invalid version.

Log Name:      Application
Source:        Report Server (<SQL instance ID>)
Event ID:      107
Task Category: Management
Level:         Error
Keywords:      Classic
Description:   Report Server (DENALI) cannot connect to the report server database.

有关详细信息,请参阅 SQL Server 2014 Reporting Services 提示、技巧和故障排除

将多节点 SharePoint 场升级到 SQL Server 2014 Reporting Services 所需的升级顺序

问题: 如果 Reporting ServicesSharePoint 共享服务实例在 SharePoint 产品的 Reporting Services 外接程序的所有实例之前升级,多节点场中的报表呈现将失败。

解决方法: 在多节点 SharePoint 场中:

  1. 首先升级 SharePoint 产品的所有 Reporting Services 外接程序实例。
  2. 然后再升级 Reporting Services SharePoint 共享服务的所有实例。

有关详细信息,请参阅 SQL Server 2014 Reporting Services 提示、技巧和故障排除

Azure 虚拟机上的 SQL Server 2014 RTM

在 Azure 中配置可用性组侦听器时,“添加 Azure 副本向导”返回错误

问题: 如果可用性组具有侦听器,当你尝试在 Azure 中配置可用性组侦听器时,添加 Azure 副本向导将返回错误。

此问题是因为可用性组侦听器需要在每个托管可用性组副本的子网中分配一个 IP 地址,包括 Azure 子网。

解决方法:

  1. 在“侦听器”页上,在将托管可用性组副本的 Azure 子网中为可用性组侦听器分配一个空闲的静态 IP 地址。

    此解决方法将允许向导在 Azure 中完成添加副本的工作。

  2. 向导完成后,需要完成 Azure 中侦听器的配置,如 Azure 中 AlwaysOn 可用性组的侦听器配置中所述

分析服务 (RTM)

必须为使用 SQL Server 2014 配置的 SharePoint 2010 新场下载、安装和注册 MSOLAP.5

问题:

  • 对于 SharePoint 2010 MSOLAP.5,必须下载、安装和注册 SharePoint 2013 新场,该场配置了 SQL Server 2014farm 且配置了 SQL Server 2014 RTM 部署,PowerPivot 工作簿无法连接到数据模型,因为连接字符串中引用的提供程序未安装。

解决方法:

  1. 从 SQL Server 2012 SP1 (11.0.3x) 功能包下载 MSOLAP.5 访问接口。 将访问接口安装在运行 Excel Services 的应用程序服务器上。 有关详细信息,请参阅“用于 Microsoft SQL Server 2012 SP1 的 Microsoft Analysis Services OLE DB 提供程序”Microsoft SQL Server 2012 SP1 功能包部分。

  2. 将 MSOLAP.5 注册为 SharePoint Excel Services 中的受信任数据访问接口。 有关详细信息,请参阅 将 MSOLAP.5 添加为 Excel Services 中的受信任数据访问接口

详细信息:

  • SQL Server 2014 (12.x) 包括 MSOLAP.6。 SQL Server 2012 (11.x) 和 SQL Server 2014 (12.x) Power Pivot 工作簿使用 MSOLAP.5。 如果未在运行 Excel Services 的计算机上安装 MSOLAP.5,Excel Services 将无法加载数据模型。

必须为使用 SQL Server 2014 配置的 SharePoint 2013 新场下载、安装和注册 MSOLAP.5

问题:

  • 对于配置有 SQL Server 2014 (12.x) 部署的 SharePoint 2013 场,引用 MSOLAP.5 提供程序的 Excel 工作簿无法连接到 Tabula 数据模型,因为连接字符串中引用的提供程序未安装。

解决方法:

  1. 从 SQL Server 2012 SP1 (11.0.3x) 功能包下载 MSOLAP.5 访问接口。 将访问接口安装在运行 Excel Services 的应用程序服务器上。 有关详细信息,请参阅“用于 Microsoft SQL Server 2012 SP1 的 Microsoft Analysis Services OLE DB 提供程序”Microsoft SQL Server 2012 SP1 功能包部分。

  2. 将 MSOLAP.5 注册为 SharePoint Excel Services 中的受信任数据访问接口。 有关详细信息,请参阅 将 MSOLAP.5 添加为 Excel Services 中的受信任数据访问接口

详细信息:

  • SQL Server 2014 (12.x) 包括 MSOLAP.6。 但 SQL Server 2014 PowerPivot 工作簿使用 MSOLAP.5。 如果未在运行 Excel Services 的计算机上安装 MSOLAP.5,Excel Services 将无法加载数据模型。

损坏的数据刷新计划 (RTM)

问题:

  • 更新刷新计划后计划损坏且不可用。

解决方法:

  1. 在 Microsoft Excel 中,清除自定义高级属性。 请参阅以下知识库文章的“解决方法”部分:KB 2927748

详细信息:

  • 如果刷新计划的序列化长度小于原始计划,则更新工作簿的数据刷新计划时,缓冲区大小不会正确更新,并且新计划信息与旧的计划信息合并,从而导致计划损坏。

数据质量服务 (RTM)

Master Data Services 中没有对 Data Quality Services 的跨版本支持

问题: 不支持以下方案:

  • Master Data Services 2014 承载在安装了 Data Quality Services 2012 的 SQL Server 2012 中的 SQL Server 数据库引擎数据库中。

  • Master Data Services 2012 承载在安装了 Data Quality Services 2014 的 SQL Server 2014 中的 SQL Server 数据库引擎数据库中。

解决方法: 使用相同版本的 Master Data Services 作为数据库引擎数据库和 Data Quality Services。

升级顾问问题 (RTM)

SQL Server 2014 升级顾问报告与 SQL Server Reporting Services 不相关的升级问题

问题: SQL Server 2014 介质附带的 SQL Server 升级顾问 (SSUA) 在分析 SQL Server Reporting Services 服务器时不正确地报告多个错误。

解决方法: 此问题已在 SSUA 的 SQL Server 2014 功能包中提供的 SQL Server 升级顾问中得到修复。

SQL Server 2014 升级顾问在分析 SQL Server Integration Services 服务器时报告错误

问题: SQL Server 2014 介质附带的 SQL Server 升级顾问 (SSUA) 会在分析 SQL Server Integration Services 服务器时报告错误。 向用户显示的错误如下:

The installed version of Integration Services does not support Upgrade Advisor.
The assembly information is "Microsoft.SqlServer.ManagedDTS, Version=11.0.0.0,
Culture=neutral, PublicKeyToken=89845dcd8080cc91

解决方法: 此问题已在 SSUA 的 SQL Server 2014 功能包中提供的 SQL Server 升级顾问中得到修复。

获取帮助

参与编辑 SQL 文档

你是否知道你可以自行编辑 SQL 内容? 你如果这样做,不仅可以帮助改进我们的文档,还可以获得页面贡献者的殊荣。

有关详细信息,请参阅 “编辑Microsoft Learn 文档