使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

Microsoft 将 Microsoft SQL Server 2012 修复分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。

症状

当您在 SQL Server 2012 Data Quality Services (DQS)中执行发现活动或清理活动时,DQS_PROJECTS 数据库的增长速度可能会非常快。 临时 X_ DQS_PROJECT 数据库中的表的情况尤其快。 特别是,你可能会遇到以下针对发现活动的问题:

  • DQS_PROJECTS 数据文件(MDF)大小可能为源数据大小的30倍。 当知识库发布时,这些临时数据将被删除。 已发布的知识库将被移动到 DQS_MAIN 数据文件(MDF)中,并且可能是源数据大小的5倍。

  • DQS_PROJECTS 的事务日志(LDF)大小经常增加。

特别是,你可能会在清理活动中遇到以下问题:

  • DQS_PROJECTS 数据文件(MDF)的大小可能为源数据大小的40倍。

  • DQS_PROJECTS 事务日志(LDF)大小的大小可能约60到100倍源数据的大小。

原因

以下一种或多种原因导致出现此问题:

  • 空行和 column 值在瞬态表中占用空间。 对于在每个架构中具有名称 X_INDEX_DATA_SOURCE_TABLE 的表中的空行和空列,大部分空间由 BigInt 列占用。

  • 存储在 X_INDEX_DATA_SOURCE_TABLE 内部表中的瞬时数据不会在项目完成或知识库发布后立即发布。

解决方案

累积更新信息

SQL Server 2012

此问题的修补程序首次发布于 SQL Server 2012 Service Pack RTM 的累积更新2。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2703275 SQL Server 2012 累积更新包2注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2012 修补程序。 必须将 SQL Server 2012 Service Pack RTM 修补程序应用到 SQL Server 2012 Service Pack RTM 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

解决方法

若要解决此问题,请在 DQS 中删除不必要的数据项目和知识文库,帮助最大程度地减少项目所使用的内部表的占用。应用此修补程序后,DQS_PROJECT 数据库大小不会自动减少。 有关如何减小数据库大小的详细信息,请转到以下 Microsoft 网站:

如何收缩数据库注意 仅安装此修补程序不会更正过去已发生的数据库增长问题,并且仅对将来创建的新项目和活动有帮助,以及将来完成的项目和活动。若要手动减小 DQS 数据库的大小,请查看不再使用的知识文库或已完成的数据质量项目。 你可以使用数据质量客户端,然后单击 "打开知识库 " 或 " 打开数据质量项目" 以获取每个知识库或每个项目的列表。 右键单击知识文库名称或项目名称,然后单击 "删除"。你可以运行以下 Transact-sql 脚本来帮助估计每个知识库和每个项目的大小,并 DQS_PROJECTS 数据库中的每个项目来更好地测量每个 DQS_MAIN 使用的磁盘空间。

-- DQSSizes.sql-- Version 1 - Nov 7, 2011 -JH-- Loops over each table in DQS_MAIN and DQS_PROJECTS to enumerate rows counts + index page counts to estimate size-- Reports by KB, then reports a drill in by Table within each KB-- Count Rows per objectUSE DQS_MAINGOCREATE TABLE ##DQSRowCounts (ObjId BIGINT, DBName SYSNAME, SchemaName SYSNAME, TableName SYSNAME, RowCounts BIGINT);EXEC sp_msforeachtable 'INSERT INTO ##DQSRowCounts SELECT OBJECT_ID(''?''), ''DQS_MAIN'', OBJECT_SCHEMA_NAME(OBJECT_ID(''?'')), OBJECT_NAME(OBJECT_ID(''?'')), COUNT(*) FROM ? WITH (NOLOCK)';GOUSE DQS_PROJECTSGOEXEC sp_msforeachtable 'INSERT INTO ##DQSRowCounts SELECT OBJECT_ID(''?''), ''DQS_PROJECTS'', OBJECT_SCHEMA_NAME(OBJECT_ID(''?'')), OBJECT_NAME(OBJECT_ID(''?'')), COUNT(*) FROM ? WITH (NOLOCK)';-- count pages per object CREATE TABLE ##DQSsizes(DbId INT, objid BIGINT, PageCount INT)INSERT INTO ##DQSsizes SELECT DB_ID('DQS_MAIN'), object_id, SUM(PS.page_count)FROM sys.dm_db_index_physical_stats (DB_ID('DQS_MAIN'),NULL, NULL, NULL, NULL) PSGROUP BY object_idINSERT INTO ##DQSsizes SELECT DB_ID('DQS_PROJECTS'), object_id, SUM(PS.page_count)FROM sys.dm_db_index_physical_stats (DB_ID('DQS_PROJECTS'),NULL, NULL, NULL, NULL) PSGROUP BY object_idGO-- Rows and Size per KBSELECT RC.DBName, RC.SchemaName, KB.Name AS KBProject, SUM(RC.RowCounts) AS TotalRowsAcrossAllTables, SUM(S.PageCount)*8 AS EstimatedKBSizeinKiloBytes,KB.ORIGIN_KNOWLEDGEBASE, KB2.Name AS OriginKBName, KB.CREATED_BY, KB.CREATE_DATEFROM ##DQSsizes SJOIN ##DQSRowCounts RC ON S.DbId=DB_ID(RC.DBName) AND S.objid=RC.ObjIdLEFT OUTER JOIN DQS_MAIN.dbo.A_KNOWLEDGEBASE KB WITH (NOLOCK)ON RC.SchemaName  =  ( CASEWHEN (RC.SchemaName LIKE 'KnowledgeBase%') THEN 'KnowledgeBase'+CAST(KB.ID AS NVARCHAR)WHEN (RC.SchemaName LIKE 'DQProject%') THEN 'DQProject'+CAST(KB.ID AS NVARCHAR)WHEN (RC.SchemaName LIKE 'KnowledgeManagement%') THEN 'KnowledgeManagement'+CAST(KB.ID AS NVARCHAR)  END)LEFT OUTER JOIN DQS_MAIN.dbo.A_KNOWLEDGEBASE KB2 WITH (NOLOCK)ON KB.ORIGIN_KNOWLEDGEBASE=KB2.IDGROUP BY DBName, SchemaName, KB.Name, KB.ORIGIN_KNOWLEDGEBASE, KB2.Name, KB.CREATED_BY, KB.CREATE_DATEORDER BY DBName, SchemaName, KB.NameGO-- Rows and Size per Table per KBSELECT RC.DBName, RC.SchemaName, KB.Name AS KBProject, RC.TableName, RC.RowCounts, S.PageCount*8 AS EstKiloByteSizeFROM ##DQSsizes SLEFT OUTER JOIN  ##DQSRowCounts RC ON S.DbId=DB_ID(RC.DBName) AND S.objid=RC.ObjIdLEFT OUTER JOIN DQS_MAIN.dbo.A_KNOWLEDGEBASE KB WITH (NOLOCK)ON RC.SchemaName  =  ( CASEWHEN (RC.SchemaName LIKE 'KnowledgeBase%') THEN 'KnowledgeBase'+CAST(KB.ID AS NVARCHAR)WHEN (RC.SchemaName LIKE 'DQProject%') THEN 'DQProject'+CAST(KB.ID AS NVARCHAR)WHEN (RC.SchemaName LIKE 'KnowledgeManagement%') THEN 'KnowledgeManagement'+CAST(KB.ID AS NVARCHAR)  END)ORDER BY DBName, SchemaName, KBProject, TableNameGODROP TABLE ##DQSsizesDROP TABLE ##DQSRowCounts

更多信息

安装此修补程序后,当 DQS 在每个项目的架构内创建内部表 X_INDEX_DATA_SOURCE_TABLE 时,将在 BigInt 列上使用稀疏提示最大限度地减少空行和列使用的空间,以最大限度地减少保留这些对象所需的磁盘空间。 此修补程序允许 DQS 释放临时 X_INDEX_DATA_SOURCE_TABLE 对象。 因此,可能会重复使用空间,或者在发布知识库或完成数据质量项目后,可以减少数据库的大小。 因此,当你单击项目末尾的 " 完成" 按钮时,可帮助释放活动所使用的磁盘空间。

需要更多帮助?

需要更多选项?

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

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×