36500365体育在线
主页 > game365 > Microsoft Docs中的行溢出数据超过8 KB
Microsoft Docs中的行溢出数据超过8 KB
发布日期:2019-06-06 13:07    浏览次数:     作者:英国365bet备用网址    
行溢出注意事项
合并用户定义类型的varchar,nvarchar,varbinary,sql_variant或CLR列时,每行超过8060字节,请考虑以下事项:
由于SQL Server仍然保持每页8 KB的限制,因此行大小限制大于8,060字节会影响性能。
如果组合用户定义类型varchar,nvarchar,varbinary,sql_variant或CLR的列超出此限制,则SQL Server数据库引擎会将最宽的记录列移动到分配单元ROW_OVERFLOW_DATA的另一页。在原始页面上留下24。
由于更新操作导致记录延长,大寄存器动态移动到另一页。
如果通过更新操作缩短记录,则记录可以返回到分配单元IN_ROW_DATA的原始页面。
此外,执行查询或其他选择操作(例如,对包含行溢出数据的大型记录进行排序或合并)会导致这些记录同步处理而不是异步处理,这会增加处理时间。
因此,如果您正在设计的表包含多列用户定义的varchar,nvarchar,varbinary,sql_variant或CLR,请考虑可以溢出的行的百分比以及可以查询的频率请。它溢出来了。
如果需要经常检查溢出数据行中的大量行,请考虑规范化表并将某些列移动到另一个表。
然后可以使用异步JOIN操作执行查询。
对于用户定义的varchar,nvarchar,varbinary,sql_variant或CLR列,单个列的长度必须在8000字节的限制范围内。
只有它的总长度可以超过表中的8060字节行限制。
其他数据类型(包括char和nchar数据)的列总和必须在8,060字节行边界内。
大对象数据不受8,060字节限制的约束,即行数。
聚簇索引索引键不能包含分配单元ROW_OVERFLOW_DATA中包含现有数据的varchar列。
如果在varchar列上创建聚簇索引,并且分配单元IN_ROW_DATA中存在现有数据,则插入或更新列推送数据。
有关分配单位的详细信息,请参阅组织表和组织索引。
您可以包含包含行溢出数据的列,例如非聚簇索引中的键列和非键列。
对于使用稀疏列的表,记录大小限制为8,018字节。
如果转换数据和现有日志数据的总和超过8,018字节,则返回MSSQLSERVERERROR576。
由于在稀疏和非分布数据类型之间转换列,数据库引擎会在当前记录中保留数据的副本。
以这种方式,记录所需的存储暂时加倍。
使用sys获取有关可能包含行溢出数据的表或索引的信息。
Dm_db_index_physical_stats动态管理功能。