到目前为止,我的外键一直是uniqueidentifiers或int。
如果我使用nvarchar字段作为外键,它是否会对性能产生负面影响?我还应该关注其他任何考虑因素吗?
答案 0 :(得分:4)
虽然您可以将nvarchar作为外键,但我不建议您使用nvarchar作为外键。有很多原因我认为非常重要的原因是当你进行JOINS时,与int相比,nvarchar会更慢。
如果我使用nvarchar字段作为外键,会不会对性能产生负面影响?
是的,肯定存在性能问题,因为int使用4字节的数据,并且通常比NVARCHAR更快地加入。
您还可以通过将列作为int和nvarchar来检查使用存储过程sp_spaceused
所使用的空间,您将找到差异。
EXEC sp_spaceused 'TableName'