应用对象
SQL Server 2012 Analysis Services SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Business Intelligence SQL Server 2012 Standard SQL Server 2012 Web

简介

本文列出了 Microsoft SQL Server 2012 Service Pack 2 (SP2) 中修复的 bug。笔记

  • 此处未记录的其他修补程序也可能包含在 Service Pack 中。

  • 发布更多文章时,将更新此列表。

有关如何获取 SQL Server 2012 Service Pack 的详细信息,请单击以下编号以查看Microsoft知识库中的文章:

2755533 如何获取最新 service Pack for SQL Server 2012 说明 有关应从可用下载列表中选择哪些下载的详细信息,检查此处的发行说明。

更多信息

SQL Server 2012 Service Pack 是累积更新,并将 SQL Server 2012 的所有版本和服务级别升级到 SP2。 除了本文中列出的修补程序外,此 Service Pack 最多包含并包含 Microsoft SQL Server 2012 SP1 累积更新 9 (CU9)有关可用于 SQL Server 2012 SP1 的累积更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:

2772858 SQL Server 2012 Service Pack 1 发布后发布的SQL Server 2012 版本

此 Service Pack 中已修复的问题

有关 SQL Server 2012 SP2 中修复的 bug 的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章。

VSTS 错误号

知识库文章编号

说明

1374617

2028830

修复:实现 SQL Server 2008 或 SQL Server 2012 故障转移群集安装时,共享组件安装在错误的位置

1703014

2963382

修复:在 SSAS 2012 中运行多维数据集创建 MDX 查询时无法连接到服务器

2011247

2927741

修复:对 SSRS 2012 报表使用 DrillThrough 操作时,图像未在网页中正确显示

2034994

2963383

修复:在 SSRS 2012 中使用 HPB 呈现器查看报表时文本被截断

1769469

2963384

修复:SQL Server 2012 中 tempdb 数据库的日志文件已满时,SQL Server崩溃

1973168

2963386

修复:当导出到 Excel 工作表的订阅大于 10 MB 时,SSRS 2012 失败并显示 IsolatedStorageException

1973196

2963388

修复:SSRS 2012 无法将大于 10 MB 的报表导出为 Excel 格式

787358

2963404

修复:回滚导致数据库在 2012 SQL Server进入可疑模式

1043717

2806979

修复:针对 2012 SQL Server启用了 RCSI 的数据库中的表运行查询时性能不佳

1178585

2963412

SQL Server 2012 SP2 中的新 DMF sys.dm_fts_index_keywords_position_by_document

1182241

2966520

修复:1 月 1 日在 SSRS 2012 中重启 Reporting Services Windows 服务时,不会创建新的日志文件

1240848

2966519

修复:2012 SQL Server日志备份失败时没有错误消息

1253861

2936004

修复:在报表查看器 2012 UI 中以本地模式完成数据源绑定时,Visual Studio 2012 因访问冲突而崩溃

1262029

2966522

修复:文件共享订阅未填充 SSRS 2012 中的说明列

1481773

2966523

修复:指定 SSRS 2012 报表时,“名称”下拉列表为空

1419367

2964762

修复:在 SSAS 2012 中使用 Discover 命令时,将记录事件 ID 22 或错误0xC1000016

2103903

2972285

修复:在 SQL Server 2012 中使用 SSISDB 作为部署存储时出现的性能问题

2021581

2965035

SQL Server 2012 Service Pack 2 中的 SSAS 2012 日志记录功能改进

203749

2952444

修复:在 2012 SQL Server 中使用表变量时性能不佳

2095064

2936328

修复:针对在 SQL Server 2008 R2 或 SQL Server 2012 中保存了计算列的表运行 CHECKTABLE 或 CHECKDB 时发生访问冲突

1222472

2827857

修复:DTA 不适用于使用补充字符排序规则的 SQL Server 2012 实例

2124209

2939277

修复:在 SQL Server 中使用并行查询计划运行包含 UNION 运算符的查询时,结果不正确

SQL Server 2012 SP2 中还包含了以下问题的解决方法。

VSTS 错误号

说明

950185

改进了处理大型 HTML 报表时有关处理错误和警告的消息传送。

950189

改进了处理包含大量参数的报表时处理错误和警告的消息传送。

994470

使用块模式一元运算符时的结果不正确。

1041277

具有 AlwaysOn 辅助服务器的 DPM 完整备份将转换为copy_only备份。

1278767

表格实例 perfmon 计数器的值:Memory\VertiPaq <TypeName> KB 始终为 0。

1355346

结束 SCOPE 语句与开始的 SCOPE 语句不匹配。

1374617

修复:实现 SQL Server 2008 故障转移群集安装时,共享组件安装在错误的位置

1610447

使用条件计算执行 DAX 表达式时,未初始化的对象会导致崩溃和潜在的错误结果。

1610492

使用 PowerPivot v2 11.0.3000.0 时,简单的 DAX 查询将返回意外结果。

2060218

使用无效的 InstanceId 分析 SSRS 配置文件时,“ACTIONABLE_HEAP_CORRUPTION”。

2065570

RING_BUFFER_NONYIELD_PROCESSTABLE环缓冲区中的 NonYieldProcessTable 记录没有用户和内核处理时间。

2075161

在 SSRS 2012 的日志中提供平台信息

1347204

修复:在 2012 SQL Server中将数据插入到具有跨数据库事务中默认序列的列的表中时出现访问冲突

1184332

如果对模型数据库执行结尾日志备份,则模型数据库将在服务器重启期间冻结还原状态,从而阻止SQL Server成功启动。 这是因为无法在服务器启动期间创建 Tempdb 数据库,并且收到以下错误消息:“无法打开数据库 '<DatabaseName>'

1243853

还原大容量日志数据库(其中添加了初始大小大于 64704KB 的新数据文件)的日志备份时,将发生错误 3456。

1404999

在具有LOCK_TIMEOUT设置的会话中发出数据库快照删除时,可能会出现超时错误,后跟断言错误。

1190211

使用 InstallShield 安装SQL Server最终处于挂起状态。 有关详细信息,请转到 知识库文章。

1386073

安装 SQL Server 2012 SP2 后,当从配置管理器或服务控制管理器停止SQL Server时,发出关闭后,SQL Server会立即记录一条信息性消息。 在早期版本中,我们在内部服务(如.NET Framework、service Broker)停止后发出了此消息。

社区提交的连接项的修补程序

连接 Bug ID

说明

714689

当你对多个服务器实现企业管理框架时,评估结果会多次写入输出 xml 文件,并且列表中的其中一个服务器出错。

735543

当数据库备份还原为同一实例上的不同数据库时,数据库将进入还原模式。

736509

不能调试在 SQL Server Management Studio (SSMS) 中调用sp_executesql的存储过程。 按 F11 时,会收到“对象引用未设置为对象的实例”错误消息。

740181

SSMS 不会在SQL Server Express中完全管理 Full-Text。

745566

SQL Server SMO 忽略 2012 SQL Server 和 2014 SQL Server 中的默认约束。

764197

SSMS 处理编号存储过程不一致。

769121

“列'<列名>'不属于表摘要。 (System.Data) “错误消息时,复制表的名称相同,但位于不同的架构中。

773710

还原到包含全文索引的数据库快照后,在重启SQL Server、分离并附加数据库,或使数据库脱机,然后将数据库设置为联机之前,无法创建任何ft_catalogs。

774317

SSMS 偶尔在关闭时崩溃,这会导致它自动重启

785064

在 Business Intelligence Development Studio 中使用客户管道组件时,“null 值对'stream'无效”错误消息, (BIDS) 。

785151

在打开“显示实际查询计划”的情况下执行查询时,返回 Null 的结果,并收到以下错误消息:错误:消息 50000、级别 16、状态 10、过程测试、第 34 行字符串或二进制数据将被截断。

791929

将数据插入具有触发器的分区视图中时出现“系统断言检查失败”错误消息。

797967

在 SSMS 中编写列级权限脚本时,创建脚本会复制语句。

799430

尝试刷新任务栏上的 SSMS 窗口图标时,SSMS 可能会崩溃。

804901

部署新版本的大型项目在部署到 SSIS 目录数据库 (SSISDB) 时遇到超时。 此外,还会收到以下错误消息:无法部署项目。 有关详细信息,请在operation_messages视图中查询操作标识符“219”。。 (Microsoft SQL Server,错误:27203) 未能部署项目。 请修复问题,稍后再试。:超时已过期。 操作完成之前已过的超时期限或服务器未响应。 语句已终止。

805659

“SQL 语句的某些部分嵌套得太深。 在分析或执行存储过程时重写查询或将其分解为较小的查询“错误消息。

SQL Server 2012 SP2 的亮点

下面是 SQL Server 2012 Service Pack 2 (又名 SP2) 中的一些更改的亮点:

  • 保障性:

    • 消息 35285 按预期显示为信息性消息,而不是显示为错误。

  • 功能:

    • SQL 编写器支持COPY_ONLY备份:Data Protection Manager (DPM) AlwaysOn 辅助服务器上的完整备份将转换为COPY_ONLY备份。

  • 添加对本地多维数据集创建方案的支持:

    • 使用 SQL Server 2012 Analysis Services (SSAS 2012) SP2 时,可以创建一个本地多维数据集,用于连接到在关闭 SQL 浏览器的静态非默认端口上运行的 SSAS。 此新功能由 msmdsrv.ini 中的新配置设置控制:“ConfigurationSettings\LocalCubeServerPortInConnectionString”。 若要启用此功能,请将 值设置为 1。 如果 SSAS 2012 配置为故障转移群集或在默认端口上运行,此设置将不起作用。

  • 添加更多日志记录:

    • 此 Service Pack 将详细信息添加到 SSAS 日志文件,以帮助改进故障排除。 这包括 SSAS 版本、计算机名称、netbios 名称、CPU 数量、RAM 大小、IP、端口、协议类型、死锁、锁定超时和其他一些信息。

  • SSISDB 死锁和清理性能改进

    • 简介

      • SSISDB 数据库中对SSISDB.catalog.create_execution存储过程的并发调用死锁

        • 已针对 SSISDB 并发和死锁问题进行了修复。 但是,这并不能解决所有问题。 当前的解决方法是将作业交错几秒钟。 但不能使用此解决方法。

        • SSISDB 维护作业性能不佳

      • 修补程序可用于 SSISDB 维护作业。

    • 体系结构

      • 以前的模型:

        • 每个事务创建一个证书和对称密钥,这些证书和对称密钥也必须在维护或清理任务中存储和处理。

      • 新模型:

        • 在目录属性表中引入新行,SERVER_OPERATION_ENCRYPTION_LEVEL默认为PER_EXECUTION,以保持向后兼容性,可以将值更改为PER_PROJECT为每个项目创建一个密钥或证书对。 在从 PER_EXECUTION 更改为PER_PROJECT之前,需要进行完全清理。 引入了两个新的存储过程进行完全清理。

      • 更改摘要:

        • 在 SSISDB 属性表中引入新行SERVER_OPERATION_ENCRYPTION_LEVEL:

          • 只有两个值 (1 和 2) 有效。

          • 值“1”:默认值。 根据执行级别使用对称密钥和证书进行加密。 安全性高,但可能存在性能或死锁问题。

          • 值“2”:根据项目级别使用对称密钥和证书进行加密。 降低安全性,解决性能或死锁问题。

        • 引入两个新的存储过程 (SP) Cleanup_server_logs 和 cleanup_server_execution_keys

          • SP 设计为在将加密级别从“1”更改为“2”时使用。 可以先运行Cleanup_server_logs,以便快速完成,使 SSISDB 进入良好状态。 SSISDB 数据库已准备好更改为加密级别。

          • Cleanup_server_keys花费的时间比Cleanup_server_logs长。 但是,它在加密级别更改为“2”后运行,并在非高峰时间定期运行。

          • Cleanup_server_logs:仅清理所有操作日志。

          • Cleanup_server_execution_keys:清理用于保护敏感执行参数的对称密钥和证书。

          • (1,2) ) @cleanup_flag int (

            • cleanup_flag = 1:删除执行级别的对称密钥和证书

            • cleanup_flag = 2:删除项目级对称密钥和证书, (仅当删除此垂直项目且已) 清除与此项目相关的所有操作日志时,才会删除这些密钥和证书。

          • @delete_batch_size int = 1000

            • 在此存储过程的一次调用中,将删除密钥或证书的数量。

        • 在 internal.cleanup_server_retention_window 中,将delete_batch_size从 10 更改为 1000。

  • 对表变量行计数的可选支持,以改进查询计划:

    • 如果表变量与 SQL Server 中的其他表联接,则由于查询计划选择效率低下,可能会导致性能降低,因为SQL Server在编译查询计划时不支持统计信息或跟踪表变量中的行数。

    • 在 SQL Server 2012 SP2 中,引入了一个新的跟踪标志,允许查询优化器使用有关插入表变量中的行数的信息,以便选择更高效的查询计划。 启用跟踪标志 2453 以激活此行为。笔记:

      • 在某些情况下,启用跟踪标志 2453 可能会导致性能降低,因为在执行期间需要额外的编译来考虑插入表变量的实际行数。 通常,如果表变量具有大量与其他表联接的行,或者具有多个行,并在嵌套循环联接运算符的外侧使用,并且内部端有一个处理大量行的计划,则可以受益于此跟踪标志。

      • 使用 OPTION (RECOMPILE) 查询提示,可以在其他版本的 SQL Server 上实现类似的行为。 但是,查询提示需要检测和修改由于表变量驱动的大量工作而导致计划选择不佳的所有查询,而启用跟踪标志 2453 可能会影响现有工作负载。

  • 改进了并行查询执行计划的性能故障排除

    • DMV sys.dm_exec_requests现在返回并行查询执行计划的cpu_time的准确值。 统计信息 IO 诊断现在报告并行查询执行计划的准确逻辑读取。

  • 改进了哈希溢出诊断

    • 如果哈希联接或哈希聚合运算符在查询执行期间将数据溢出到 tempdb 数据库,则现在会为 STATISTICS IO 诊断报告相应的 I/O。

  • 改进了全文索引诊断

    • 在某些情况下,可能很难理解如何返回某些全文查询的结果。 全文搜索子系统与外部断字符和非索引列表交互,由于这种交互,文档中关键字的位置信息可能与实际文本中观察到的位置信息不同。 执行“短语”或“NEAR”搜索时,这高度相关,因为在内部计算中使用字词之间的增量来查找匹配的文档。

    • 在 2012 SQL Server SP2 中,添加了一个新的动态管理功能 (DMF) ,以提供对文档中索引的关键字的位置信息的访问权限。 新的 DMF 类似于现有 DMF sys.dm_fts_index_keywords_by_document,其语法如下:sys。 dm_fts_index_keywords_position_by_document ( DB_ID ('database_name') ,OBJECT_ID ('table_name') )

    • 它返回有关每个事件及其在索引文档中的位置的信息,而不是事件计数。

    • 此信息可用于查看文本与内部索引之间的映射,该映射将显示搜索短语的增量差异(如果有)。 这有助于了解短语搜索的结果。

  • 保障性

    • 事务复制:

      • 添加到历史记录表中的统计信息的详细消息以及代理日志中更详细的消息:

        • 向 <统计信息添加了文本消息,> xml 输出来定义 logreader 和分发服务器代理中的不同状态。

        • 为分发服务器和 logreader 参数化命令添加了文章级统计信息。

        • 向分发服务器代理中的输出文件添加了跳过的命令数。

        • 增加了在分发服务器代理中执行架构更改所花费的时间。

      • LogReader:捕获用户转储时,会将日志记录添加到 .TXT 文件中。

      • 对等:更新插入、更新和删除过程,以便为冲突消息提供以下详细信息:

        • 表名称

        • 主键列名称和值

        • 当前版本

        • 预版本

        • 后期版本

    • 合并复制:

      • 当合并代理的输出详细级别设置为 4 时,在日志文件中添加的跟踪标志 101 的输出。

  • Functionnality

    • 事务复制:

      • 对等复制现在支持使用 Update 或 对文本列进行部分更新。编写语义。

    • 合并复制:

      • 已重新设计清理存储过程,以避免冗余上传数据。

  • 记录包含处理错误和警告的消息,以防止对 CSS 的常见调用,大型 HTML 报告。

    • 概述:

      • 检测报表设计,以确定报表设计是否会对大型 HTML 报表进行网络化,并可能导致性能问题。 应通过检查交互式页面高度和宽度设置来轻松检测到这一点。

    • 用户方案:

      • 在Report Builder中创建报表。 在 InteractiveSize 属性中输入值“0”。 你会收到一个弹出窗口,其中包含以下有关潜在性能影响的消息警告:

        将交互式 heigth 设置为 0 mat 会影响性能。

  • 性能增强

    • Service Pack 2 中的多项性能增强功能,如以下文章所述:

      • 2012 SQL Server数据库锁定活动增加时,会出现性能问题

      • 2012 SQL Server 处理外部页面期间 NUMA 环境中出现性能问题

      • ALTER INDEX 后性能下降...ONLINE 操作在 2012 SQL Server中止

    • DMV 增强功能

      • sys.dm_db_session_space_usage反映每个会话的用户对象在 tempdb 数据库中占用的空间量。 当删除的行数超过 1024 页时,将延迟取消分配这些页面。 在 SQL Server 2012 Service Pack 2 中,DMV 还将包括在名为 user_objects_deferred_dealloc_page_count 的新列中延迟的分配单元的空间使用情况。

      • 如果故障转移群集上安装SQL Server,sys.dm_server_services现在会在 cluster_nodename 列中正确指定节点名称。

    • 环形缓冲区增强功能

      • 应用域RING_BUFFER_CLRAPPDOMAIN的环形缓冲区包括应用域在 <DoomReason> 字段中卸载的原因:

        • 1 = 由 DDL 操作(如放置程序集)卸载。

        • 2 = 由安全相关操作(例如更改权限)卸载。

        • 3 = 由于内存压力处理而卸载。

        • 4 = 由于初始化失败而卸载。

      • 相应的扩展事件app_domain_ring_buffer_recorded包括doom_reason事件数据字段中的卸载原因。

      • 在资源监视器监视的状态中检测到更改时,RING_BUFFER_RESOURCE_MONITOR具有条目。 此外,对于系统和进程资源通知,<IndicatorsPool> </IndicatorsPool> 节点中也提供了池通知。

      • Resource_monitor_ring_buffer_recorded扩展事件包括pool_indicators数据字段中的池范围通知。

      • RING_BUFFER_NONYIELD_PROCESSTABLE包括进程名称以及记录环形缓冲区条目时系统中运行的最多 8192 个线程的其他信息。

    • 备份和还原增强功能

      • 从 Service Pack 2 开始,不再允许使用 norecovery 选项备份模型的尾日志。

      • 错误日志中的备份和还原完成消息包括持续时间和吞吐量信息:

        • BACKUP DATABASE 在 0.026 秒 (89.261 MB/秒) 内成功处理了 298 个页面。

        • RESTORE DATABASE 在 0.016 秒 (145.050 MB/秒) 内成功处理了 298 个页面。

    • 扩展事件

      • SQL Server 2012 Service Pack 2 中添加或修改了以下扩展事件:

        • 内存分配:

          • 可以使用扩展事件page_allocated和page_freed来查看SQL Server内存的主要使用者。 从 Service Pack 2 开始,这些扩展事件还会报告在查询执行期间分配和释放的保留内存。

        • 虚影清理:

          • 在表或索引中删除记录时,此类删除操作从不以物理方式从页面中删除记录,只会将它们标记为已删除或虚影。 这是一项性能优化,允许更快地完成删除操作。 然后,一个名为虚影清理任务的后台任务会以物理方式删除所有已删除的记录。 Service Pack 2 中添加了几个扩展事件,以提供此任务的各个阶段的见解:

            • ghost_cleanup_task_start

            • ghost_cleanup_task_suspend

            • ghost_cleanup_task_packet_enqueue

            • ghost_cleanup_task_process_packet

            • ghost_cleanup_task_process_pages_for_db_packet

参考

有关如何确定当前SQL Server版本的详细信息,请单击以下版本号以查看Microsoft知识库中的文章:

321185 如何确定SQL Server及其组件的版本和版本

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。