Sql server 当特定列位于SELECT语句中时,查询速度非常慢

Sql server 当特定列位于SELECT语句中时,查询速度非常慢,sql-server,Sql Server,我有一个生成的SQL查询(实体框架生成的查询),当我有一个orderby子句时,查询速度非常慢。经过如此多的调查,有趣的是,我发现每当我在选择的列列表中有用户名列时,查询就会变得非常慢(55秒),但如果我从同一个表中选择除用户名之外的任何列,查询都会以毫秒为单位响应 这就是问题所在 SELECT [r].[Amount], [r].[DeductedAmount], [r].[LoyaltyPoints], [r].[ClientTransactionId], [r].[Qu

我有一个生成的SQL查询(实体框架生成的查询),当我有一个
orderby
子句时,查询速度非常慢。经过如此多的调查,有趣的是,我发现每当我在
选择
的列列表中有
用户名
列时,查询就会变得非常慢(55秒),但如果我从同一个表中选择除
用户名
之外的任何列,查询都会以毫秒为单位响应

这就是问题所在

SELECT 
    [r].[Amount], [r].[DeductedAmount], [r].[LoyaltyPoints], 
    [r].[ClientTransactionId], [r].[Quantity], [r].[RechargeTypeId], 
    [r0].[Name], [r].[ReferenceNo], [r].[TransactionStatusId], 
    [t].[Name] AS [Name0], [r].[TransactionDateTime], [r].[TransactionDate], 
    [r].[ResultCode], [u].UserName as username, [r].[ResultMessage], 
    [r].[Id], [s].[Id] AS [Id0], [u].[Id] AS [Id1], [r0].[Id] AS [Id2], 
    [t].[Id] AS [Id3]    
FROM 
    [Recharge].[RechargeTransaction] AS [r]
INNER JOIN 
    [Sales].[SalesPoint] AS [s] ON [r].[SalesPointId] = [s].[Id]
INNER JOIN 
    [Account].[User] AS [u] ON [s].[UserId] = [u].[Id]
INNER JOIN 
    [Recharge].[RechargeType] AS [r0] ON [r].[RechargeTypeId] = [r0].[Id]
INNER JOIN 
    [Recharge].[TransactionStatus] AS [t] ON [r].[TransactionStatusId] = [t].[Id]
WHERE 
    CHARINDEX(N'sample-username', [u].[UserName]) > 0
ORDER BY 
    [r].[ReferenceNo] 
值得一提的是,所有主键都是带有非聚集索引的GUID


UserName
列是
nvarchar(256)
,并且有一个唯一的索引

经过几次调查,我发现如果我将列大小减少到100,响应时间就会变成毫秒。这种方法解决了我的问题,但我仍然不知道为什么列的大小会影响查询的响应时间