使用nvarchar作为外键怎么样?

she*_*nku 6 sql sql-server sqlperformance sql-server-2008

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

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

Rah*_*thi 5

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

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

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

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

EXEC sp_spaceused 'TableName'
Run Code Online (Sandbox Code Playgroud)