加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql varchar(max)vs varchar(fix)

发布时间:2021-02-24 19:05:13 所属栏目:MsSql教程 来源:网络整理
导读:每次我混淆选择varchar(max)或varchar(fix)数据类型.假设我有一个大约5000 varchar的数据列.列不是null类型. 我应该设置varchar(max)not null或varchar(5000)not null. 在可以为空的数据类型的情况下也是如此. CREATE TABLE [dbo].[tblCmsPages]([CmsPagesID]

每次我混淆选择varchar(max)或varchar(fix)数据类型.假设我有一个大约5000 varchar的数据列.列不是null类型.

我应该设置varchar(max)not null或varchar(5000)not null.

在可以为空的数据类型的情况下也是如此.

CREATE TABLE [dbo].[tblCmsPages](
[CmsPagesID] [int] IDENTITY(1,1) NOT NULL,[PageName] [varchar](250) NOT NULL,[PageContent] [varchar](max) NOT NULL,[Sorting] [int] NOT NULL,[IsActive] [bit] NOT NULL)

//要么

CREATE TABLE [dbo].[tblCmsPages](
[CmsPagesID] [int] IDENTITY(1,[PageContent] [varchar](5000) NOT NULL,[IsActive] [bit] NOT NULL

// [PageContent]将是5000个char或单个char或null然后我应该采取什么.

彼此想我想知道. null和not null之间的主要区别是什么.它仅用于验证检查以及对性能的影响.

解决方法

MSDN

>当列数据条目的大小不同时使用varchar
相当.
>当列数据条目的大小变化时,使用varchar(max)
相当大,大小可能超过8,000字节.

如果在声明VARCHAR变量或列中指定了长度,则允许的最大长度为8000.如果长度大于8000,则必须使用MAX说明符作为长度.如果指定的长度大于8000,则会遇到以下错误(假设指定的长度为10000):

The size (10000) given to the type ‘varchar’ exceeds the maximum allowed for any data type (8000).

更新: –
我找到了一个我想分享的链接: –

Here

Varchar [(n)]和Varchar(Max)之间没有太大的性能差异.与Varchar(Max)相比,Varchar [(n)]提供了更好的性能结果.如果我们知道要存储在列或变量中的数据小于或等于8000个字符,那么与Varchar(Max)相比,使用此Varchar [(n)]数据类型可提供更好的性能.例如:当我运行以下内容时脚本通过将变量@FirstName类型更改为Varchar(Max)然后为100万个赋值,它始终比我们使用数据类型的时间多一倍

Varchar(50) for variable @ FirstName.
DECLARE @FirstName VARCHAR(50),@COUNT INT=0,@StartTime DATETIME = GETDATE()
WHILE(@COUNT < 1000000)
BEGIN
SELECT @FirstName = 'Suraj',@COUNT = @COUNT +1
END
SELECT DATEDIFF(ms,@StartTime,GETDATE()) 'Time Taken in ms'
GO

(编辑:济源站长网)

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

    热点阅读