sql nvarchar长度是否重要?
答
那么为什么不使用nvarchar(2)
来确保只有2个字符被写入?这是一个约束,确保数据符合预期。
此外,如果您知道值将只有ASCII
然后使用varchar
而不是nvarchar
。
最后,长度约束不会对IN
条款有何影响假定,如果大小总是2的所有值不能超过2.
答
长度我会用nchar(2)
对Unicode或char(2)
非Unicode的或null
。
使用超大的可变宽度列会影响内存授予和行大小估计,因为SQL Server会假定每行保存的值是声明列大小的一半;虽然这可能不是一个宽度为50
的重要因素,但它在较大的尺寸上会产生更明显的差异。
参考:
我应该指定。我对表现最好奇。例如,有一个太长的字段会影响where子句中的速度吗? –
@PatrickSchomburg - 重要的是该领域的价值。字段长度为2000并存储2个字符将不会影响'where'子句。会有什么影响是记录的数量,你如何比较和索引(如果他们在那里,他们是如何构造的,他们是零散的)。唯一真正的例外是长度'max',因为这些值可能会跨越页面到一个overlfow,在这种情况下,我不确定任何索引如何工作,但这只影响也超过4000的值(我相信)。 – Igor
在这种情况下,使用null与空字符串值是否有优势/劣势? –