在nvarchar(max)列上选择真的很慢

时间:2017-11-13 02:48:21

标签: sql sql-server tsql

SQL Server 2008 R2。我在桌子上做了大约70,000行的选择。 如果我尝试查询nvarchar(max)列,其中最长的字符串是2,433个字符,则需要66秒。

select Comment from StudentAssessmentComments

通过索引列过滤到17,000行仍然需要大约17秒。

select Comment from StudentAssessmentComments where FileYear = 2016

如果我查询其他未索引的列,则立即(<1秒)。

select StaffID from StudentAssessmentComments

nvarchar(max)列执行得如此糟糕是否正常?如果没有,有没有人有任何建议?谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

我猜你的网络连接速度比较慢。你给出的两个时间都非常接近每秒1000行。

如果一个典型的行有1,000个字符,那么这将是大约2,000字节(宽字符)和大约2兆字节/秒。这似乎是缓慢的一面,但这并非不合理。

所以,我最好的猜测是,这是你的网络&#34;连接到数据库,因此如果你需要成千上万的行和完整的评论,你就无法做到这一点。

相关问题