加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – sql server数据大小限制

发布时间:2020-12-30 16:10:42 所属栏目:编程 来源:网络整理
导读:这个题目与我的 SQL Data type size有关 varchar(max)好像最多可以存储2GB. 我无法领略的是,在这个链接 sql row overflow MS说(我的重点): A table can contain a maximum of 8,060 bytes per row. In SQL Server 2008,this restriction is relaxed for tabl

这个题目与我的 SQL Data type size有关
varchar(max)好像最多可以存储2GB.
我无法领略的是,在这个链接 sql row overflow MS说(我的重点):

A table can contain a maximum of 8,060 bytes per row. In SQL Server
2008,this restriction is relaxed for tables that contain varchar,
nvarchar,varbinary,sql_variant,or CLR user-defined type columns.
The length of each one of these columns must still fall within the
limit of 8,000 bytes; however,their combined widths can exceed the
8,060-byte limit. This applies to varchar,nvarchar,varbinary,
sql_variant,or CLR user-defined type columns when they are created
and modified,and also to when data is updated or inserted.

我不大白这个说法.
他们说varchar(max)可以容纳2GB可是他们在上面的链接中说列长度不能高出8KB
这不是抵牾的,照旧我在这里漏掉了什么?

办理要领

为了说清晰,我们可以采纳第一个很是根基的告诉:
A table can contain a maximum of 8,060 bytes per row.

换句话说:每行必需得当一页(8 kB).假如也许的话,很多行可以放在一个页面中 – 但从不反过来.

二进制大工具(TEXT,NTEXT,BLOB)怎么样?这些列中的数据存储在非凡位置.该行只生涯一个指向数据的指针,因此上面的根基语句如故创立:表行必需得当一个页面.

Binary large data is stored outside of the table.
Each table row just holds a pointer in each BLOB field which actually points to the data.

有了这个说法,新的varchar(max)成果黑白凡的,其举动如下:

> varchar(n):存储在行中的常用文本字段,行数据必需得当一个页面.
> varchar(max),小数据内容:只要全部行数据都得当一个页面,就存储在行中.
> varchar(max),大数据内容:只要数据不再得当一个页面,指针就会存储在行中,varchar(max)数据会被单独存储.在这种环境下,varchar(max)的举动相同于文本数据范例.

请留意,大数据内容取决于表的全部其他列.另外,varchar(max)可以以压缩情势存储文本,使得高出8,060个字符也许得当一个数据页.

在我看来,语句这些列中的每一列的长度如故必需在8,000字节的范畴内好像禁绝确,乃至也许是不正确的(varchar(max)列现实上可以容纳2 GB的数据,但不是存储在行中).

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读