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,000 行。
如果典型的行有 1,000 个字符,那么这将是大约 2,000 字节(宽字符)和大约 2 MB/秒。这看起来有点慢,但并非没有道理。
所以,我最好的猜测是,这是您与数据库的“网络”连接,因此如果您需要数万行包含完整注释的行,您无能为力。
关于sql - 在 nvarchar(max) 列上选择非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47256417/