tra*_*vis 7 database sql-server database-design
可能的重复:
varchar字段 - 两个更高效的权力?
Nvarchar或varchar什么是最好使用乘以2或舍入全数?
出于纯粹的习惯,我将SQL Server中使用的列的大小定义为Base2大小.例如,这是我正在处理的表格:
我不知道这个习惯来自哪里,我不确定它是否有意义.以下表格定义是否会在某种程度上低于上述定义?
我想我的主要问题是:使用Base2列长度有合理的原因吗?
使列大于所需的大小可能会对数据库设计造成严重损害。来自博尔:
表每行最多可包含 8,060 字节。在 SQL Server 2008 中,对于包含 varchar、nvarchar、varbinary、sql_variant 或 CLR 用户定义类型列的表,此限制有所放宽。超过 8,060 字节行大小限制可能会影响性能,因为 SQL Server 仍保留每页限制为 8 KB。当 varchar、nvarchar、varbinary、sql_variant 或 CLR 用户定义类型列的组合超过此限制时,SQL Server 数据库引擎SQL Server Database Engine会将宽度最大的记录列移动到 ROW_OVERFLOW_DATA 分配单元中的另一个页,同时保持 24-原始页上的字节指针。当记录根据更新操作延长时,动态地将大记录移动到另一个页面。缩短记录的更新操作可能会导致记录移回 IN_ROW_DATA 分配单元中的原始页。此外,查询和执行其他选择操作(例如对包含行溢出数据的大型记录进行排序或联接)会减慢处理时间,因为这些记录是同步处理的,而不是异步处理的。
我发现如果你给他们额外的尺寸,他们迟早会使用它。此外,如果您将某些内容设置为 varchar (64) 并且实际上只需要最多 10 个字符,则更有可能有人将该字段用于其预期目的以外的用途,并且您会发现这些字段中的数据不正确(例如电话号码字段,其中包含有关办公室秘书的联系方式的注释,以选择一个不那么随机的示例)。
然而,至少这种设计比把所有东西都做成nvarchar(max)要好得多。
归档时间: |
|
查看次数: |
1331 次 |
最近记录: |