配置 SQL Server 使用情况和诊断数据收集 (CEIP)
适用范围:SQL Server
总结
默认情况下,Microsoft SQL Server 收集有关其客户如何使用应用程序的信息。 具体来说,SQL Server 收集有关安装体验、使用情况和性能的信息。 此信息有助于 Microsoft 改进产品以更好地满足客户需求。 例如,Microsoft 收集有关客户遇到的错误代码类型信息,这样我们就可以修复相关 bug,改进关于如何使用 SQL Server 的文档,并确定是否应将功能添加到产品中以更好地为客户服务。
具体而言,Microsoft 不会通过这种机制发送以下任何类型的信息:
- 用户表中的任何值
- 任何登录凭据或其他身份验证信息
- 个人信息
以下示例场景包括有助于改进产品的功能使用情况信息。
SQL Server 2017 及更高版本支持列存储索引,以实现快速分析方案。 列存储索引将新插入数据的传统 B 树索引结构与面向列的特殊压缩结构相结合,以压缩数据并加快查询执行速度。 该产品使用探索性方法在后台将数据从 B 树结构迁移到压缩结构,可加快后续获取查询结果的过程。
注意
文档在提到索引时一般使用 B 树这个术语。 在行存储索引中,数据库引擎实现了 B+ 树。 这不适用于列存储索引或内存优化表上的索引。 有关详细信息,请参阅 SQL Server 以及 Azure SQL 索引体系结构和设计指南。
如果后台操作未与插入数据的速度保持一致,则查询性能可能比预期要慢。 为了改进产品,Microsoft 收集有关 SQL Server 与自动数据压缩过程同步情况的信息。 产品团队使用此信息来微调执行压缩的代码的频率和并行结构。 此查询偶尔运行以收集此信息,以便我们 (Microsoft) 可以评估数据移动速度。 这有助于我们优化产品探索方法。
SELECT object_id, type_desc, data_space_id, db_id() AS database_id FROM sys.indexes WITH(nolock) WHERE type = 5 or type = 6
SELECT cntr_value as merge_policy_evaluation
FROM sys.dm_os_performance_counters WITH(nolock)
WHERE object_name LIKE '%columnstore%'
AND counter_name ='Total Merge Policy Evaluations'
AND instance_name = '_Total'
请注意,此过程专注于为客户提供价值的必要机制。 产品团队不会查看索引中的数据,也不会将该数据发送给 Microsoft。 SQL Server 始终收集和发送从安装过程开始的安装体验相关信息,方便我们快速查找并修复客户遇到的任何安装问题。 通过以下机制可将 SQL Server 2017 和更高版本配置为不(基于每个服务器实例)向 Microsoft 发送信息:
- 通过使用错误和使用情况报告应用程序
- 通过在服务器上设置注册表子项
对于 Linux 上的 SQL Server,请参阅 Linux 上的 SQL Server 客户反馈
备注
只能在付费版本的 SQL Server 中禁用向 Microsoft 发送信息的功能。
备注
- 不支持删除或禁用 SQL CEIP 服务。
- 不支持从群集组中删除 SQL CEIP 资源。
若要选择退出数据收集,请参阅启用或禁用本地审核
错误和使用情况报告应用程序
设置完成后,SQL Server 组件和实例的使用情况和诊断数据收集设置可以通过“错误和使用情况报告”应用程序进行更改。 可将此应用程序作为 SQL Server 安装的一部分。 借助此工具,每个 SQL Server 实例都可以配置自己的使用情况报告设置。
备注
错误和使用情况报告应用程序在 SQL Server 的“配置工具”下列出。 使用此工具,可以 SQL Server 2017 中的相同方式,管理错误报告以及使用情况和诊断数据收集的偏好设置。 错误报告独立于使用情况和诊断数据收集,因此可以与使用情况和诊断数据收集分开启用或禁用。 错误报告收集发送到 Microsoft 的故障转储,其中可能包含隐私声明中所述的敏感信息。
SQL Server Reporting Services 2017 和更高版本安装中不包含错误和使用情况报告应用程序。 用于配置向 Microsoft 发送信息的唯一可用机制是在服务器上设置注册表子项。
要启动 SQL Server 错误和使用情况报告,请选择“启动”,然后在搜索框中搜索“错误”。 将显示 SQL Server 错误和使用情况报告项。 启动此工具后,可以管理为相应计算机上安装的实例和组件收集的使用情况和诊断数据以及严重错误。
对于付费版本,选中“使用情况报告”复选框可以管理向 Microsoft 发送使用情况和诊断数据。
对于付费或免费版本,请使用“错误报告”复选框来管理向 Microsoft 发送有关严重错误和故障转储反馈的功能。
在服务器上设置注册表子项
企业客户可以配置组策略设置来选择启用或禁用使用情况和诊断数据收集。 这可通过配置基于注册表的策略完成。 相关注册表子项和设置如下所示:
对于 SQL Server 实例功能:
子项 = HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\{InstanceID}\CPE
注册表项名称 = CustomerFeedback
注册表项类型 DWORD:0 表示选择退出;1 表示选择加入
{InstanceID} 是指实例类型和实例,如以下示例所示:
- MSSQL14.CANBERRA 是指 SQL Server 2017 数据库引擎,“CANBERRA”指实例名称
- MSAS14.CANBERRA 是指 SQL Server 2017 Analysis Services,“CANBERRA”指实例名称
对于 SQL Server Reporting Services 2017 及更高版本的实例功能:
子项 = HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\SSRS\CPE
注册表项名称 = CustomerFeedback
注册表项类型 DWORD:0 表示选择退出;1 表示选择加入
对于所有共享功能:
子项 = HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\{Major Version}
注册表项名称 = CustomerFeedback
注册表项类型 DWORD:0 表示选择退出;1 表示选择加入
注意
{Major Version} 是指 SQL Server 的版本。 例如,“140”是指 SQL Server 2017。
- 对于 SQL Server Management Studio 17 和 SQL Server Management Studio 18,请参阅 SQL Server Management Studio 中的用户协助
设置故障转储收集的注册表子项
与 SQL Server 早期版本的行为类似,SQL Server 2017 和更高版本 Enterprise 版本客户可以在服务器上配置组策略设置,以选择加入或退出故障转储收集。 这可通过配置基于注册表的策略完成。 相关注册表子项和设置如下所示:
对于 SQL Server 实例功能:
子项 = HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\{InstanceID}\CPE
注册表项名称 = EnableErrorReporting
注册表项类型 DWORD:0 表示选择退出;1 表示选择加入
{InstanceID} 是指实例类型和实例,如以下示例所示:
- MSSQL14.CANBERRA 是指 SQL Server 2017 数据库引擎,“CANBERRA”指实例名称
- MSAS14.CANBERRA 是指 SQL Server 2017 Analysis Services,“CANBERRA”指实例名称
对于 SQL Server Reporting Services 2017 及更高版本的实例功能:
子项 = HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\SSRS\CPE
注册表项名称 = EnableErrorReporting
注册表项类型 DWORD:0 表示选择退出;1 表示选择加入
对于所有共享功能:
子项 = HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\{Major Version}
注册表项名称 = EnableErrorReporting
注册表项类型 DWORD:0 表示选择退出;1 表示选择加入
注意
{Major Version} 是指 SQL Server 的版本。 例如,“140”是指 SQL Server 2017。
这些注册表子项上基于注册表的组策略适用于 SQL Server 故障转储收集。
SSMS 的故障转储收集
SQL Server Management Studio (SSMS)不会收集自己的故障转储。 与 SSMS 相关的任何故障转储都作为 Windows 错误报告的一部分进行收集。
启用或禁用此功能的过程取决于操作系统版本。 要启用或禁用该功能,请按照 Windows 版本相应文章中的步骤操作。
Windows Server 2016 和更高版本以及 Windows 10 和更高版本 配置组织中的 Windows 诊断数据
Windows Server 2008 R2 和 Windows 7 WER 设置
对于 Analysis Services 的反馈
在安装过程中,SQL Server 2016 和更高版本 Analysis Services 向 Analysis Services 实例添加一个特殊帐户。 此帐户是 Analysis Services 服务器管理员角色的成员。 该帐户用于收集来自 Analysis Services 实例的反馈信息。
可以将服务配置为,不发送使用情况和诊断数据,如“在服务器上设置注册表子项”部分所述。 但是,执行此操作不会删除服务帐户。
获取帮助
- SQL 意见:是否有改进 SQL Server 的建议?
- Microsoft Q&A (SQL Server)
- DBA Stack Exchange (tag sql-server):询问 SQL Server 相关问题
- Stack Overflow (tag sql-server):有关 SQL 开发问题的答案
- Reddit:有关 SQL Server 的一般讨论
- Microsoft SQL Server 许可条款和许可证信息
- 企业用户支持选项
- 其他 SQL Server 帮助和反馈
参与编辑 SQL 文档
你是否知道你可以自行编辑 SQL 内容? 你如果这样做,不仅可以帮助改进我们的文档,还可以获得页面贡献者的殊荣。
有关详细信息,请参阅如何参与 SQL Server 文档编辑