she*_*nku 6 sql sql-server sqlperformance sql-server-2008
到目前为止,我的外键一直是uniqueidentifiers或int.
如果我使用nvarchar字段作为外键,它会对性能产生负面影响吗?我还应该关注其他任何考虑因素吗?
虽然您可以将 nvarchar 作为外键,但我不建议您使用 nvarchar 作为外键。有很多原因,我认为非常重要的一个原因是,当您执行 JOINS 时,nvarchar 会比 int 慢。
如果我使用 nvarchar 字段作为外键,它会对性能产生负面影响吗?
是的,肯定会有性能问题,因为 int 使用 4 字节的数据,并且通常比 NVARCHAR 更快地加入。
您还可以sp_spaceused通过将列作为 int 和 nvarchar来检查使用存储过程使用的空间,您会发现差异。
EXEC sp_spaceused 'TableName'
Run Code Online (Sandbox Code Playgroud)