使用nvarchar作为外键怎么样?

时间:2014-02-26 05:21:32

标签: sql sql-server sql-server-2008 sqlperformance

到目前为止,我的外键一直是uniqueidentifiers或int。

如果我使用nvarchar字段作为外键,它是否会对性能产生负面影响?我还应该关注其他任何考虑因素吗?

1 个答案:

答案 0 :(得分:4)

虽然您可以将nvarchar作为外键,但我不建议您使用nvarchar作为外键。有很多原因我认为非常重要的原因是当你进行JOINS时,与int相比,nvarchar会更慢。

  

如果我使用nvarchar字段作为外键,会不会对性能产生负面影响?

是的,肯定存在性能问题,因为int使用4字节的数据,并且通常比NVARCHAR更快地加入。

您还可以通过将列作为int和nvarchar来检查使用存储过程sp_spaceused所使用的空间,您将找到差异。

EXEC sp_spaceused 'TableName'