Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

La requête SQL continue de s'exécuter pendant très longtemps si le terme de recherche n'est pas trouvé

Déjà vous pouvez simplifier votre requête comme ceci;) :

int start=page * recordsInPage;

var inner = (from user in db.Users
            where user.Name.Contains(name) && !user.Deleted && user.AppearInSearch
            orderby user.Verified descending
            select  new
                   {
                     Name = user.Name,
                     Verified = user.Verified,
                     PhotoURL = user.PhotoURL,
                     UserID = user.Id,
                     Subdomain = user.Subdomain,
                     Deleted=user.Deleted,
                     AppearInSearch = user.AppearInSearch
                   }
             ).Skip(start).Take(recordsInPage);

return await inner.ToListAsync();

Si vous rencontrez un problème de performances, essayez de créer une procédure stockée avec votre SQL et utilisez-la avec entity Framework.