2000个字符的最佳SQL类型

时间:2013-06-06 13:04:24

标签: sql sql-server sql-server-2008 tsql

我有一个名为X509的列的表,我已经使用了这个函数知道如何 许多字符都有存储的值:

select distinct  LEN (x509certificate)   from ctrc     

这个陈述给了我这些价值观:

  2112
  2732
  2748
  2800

我需要在此列中保存从2112(最小)到2800(最大)字符的值,该表使用NVARCHAR(max)或nvarchar lenght -1。什么是这种数据的最佳sql类型???

感谢亚历杭德罗

3 个答案:

答案 0 :(得分:4)

如果你的意思是什么是用于存储证书本身的最佳列类型,那么X509证书没有固定的长度,使用nvarchar是正确的,nvarchar(MAX)或者例如与试图获得正确的长度要求相比,nvarchar(maxlength * 2)对数据库的性能影响基本为零。

如果你的意思是最好存储LEN计算的结果,那么常规的int列就可以了。 tinyint也能正常工作,但如果你考虑性能或存储问题,那么除非你存储数十亿行将比你维护/记忆的精神成本低,否则再次发挥作用。

总之,'保持简单':)

答案 1 :(得分:1)

你可以这样做:

ALTER TABLE ctrc ADD [cert_length] as LEN (x509certificate);

SQL Server将为列使用合适的大小。

如果您谈论证书,那么NVARCHAR(MAX)就可以了。如果您没有更改任何表选项并且页面中仍有足够的空间,SQL Server将在行中存储偶数(N)VARCHAR(max)列。

答案 2 :(得分:0)

我认为varchar(max)是长度未知的字符串的最佳数据类型。

有关详细信息,您可以浏览此链接: http://www.dotnetspider.com/forum/158173-Difference-between-Varchar-nvarchar.aspx