Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在nvarchar(max)列上选择“非常慢”_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 在nvarchar(max)列上选择“非常慢”

Sql 在nvarchar(max)列上选择“非常慢”,sql,sql-server,tsql,Sql,Sql Server,Tsql,SQLServer2008R2。我在一个约70000行的表上进行选择。 如果我尝试查询nvarchar(max)列,其中最长的字符串是2433个字符,则需要66秒 select Comment from StudentAssessmentComments 按索引列筛选17000行仍需约17秒 select Comment from StudentAssessmentComments where FileYear = 2016 如果我查询另一个未索引的列,它的立即数(

SQLServer2008R2。我在一个约70000行的表上进行选择。 如果我尝试查询nvarchar(max)列,其中最长的字符串是2433个字符,则需要66秒

select Comment from StudentAssessmentComments
按索引列筛选17000行仍需约17秒

select Comment from StudentAssessmentComments where FileYear = 2016
如果我查询另一个未索引的列,它的立即数(<1秒)


nvarchar(max)列执行得如此糟糕是正常的吗?如果没有,有人有什么建议吗?谢谢您的帮助。

我猜您与数据库的网络连接相对较慢。您给出的两个计时都非常接近每秒1000行

如果一个典型的行有1000个字符,那么这将是大约2000字节(宽字符)和大约2MB/秒。这似乎有点慢,但也不是不合理的


因此,我的最佳猜测是,这是您与数据库的“网络”连接,因此,如果您需要成千上万行完整的注释,那么您对此无能为力。

只是尝试直接在服务器上运行它。不到一秒钟。感觉很傻。这里的网络环境应该比这更好,所以我甚至没有想到。谢谢Gordon。索引的目的是加速查询搜索。因此,根据所用时间的结果,未索引列的执行速度要快得多。这主要是由于您的服务器数据库连接。您的服务器是否位于很远的地方?
select StaffID from StudentAssessmentComments