Очень медленная проблема в веб-приложении, которое использует LINQ to SQL - PullRequest
2 голосов
/ 17 июля 2010

Я занимаюсь разработкой примера веб-приложения, использующего C # и LINQ to SQL. Приложение работает очень медленно, и для перехода между страницами требуется около 2 секунд. Я уже использовал SQL Profiler и отслеживаю звонки на SQL-сервер. Все SQL выглядят нормально для меня, и время их выполнения всегда составляет около 1 или 2 миллисекунд.

Я пробовал такое же приложение на другом ПК, и оно то же самое. Так что это не из-за производительности моего компьютера.

Если вы хотите ознакомиться с моим примером приложения, вы можете загрузить его по адресу http://www.mediafire.com/download.php?rudid9w22id1dmp

База данных находится в App_Data, и вам может потребоваться SQLExpress 2005.

Большое спасибо за вашу помощь заранее.

Ответы [ 3 ]

1 голос
/ 17 июля 2010

Вы предварительно компилируете какие-либо из ваших вызовов Linq-Sql?Это очень помогает для часто используемых запросов, например:

public static class Queries
{
    private static readonly Func<MyDatContext, string, IQueryable<User>> GetUserCompiled
        = CompiledQuery.Compile<MyDataContext, string, IQueryable<User>>
            (context, username) => context.Users.Where(u => u.Username.Equals(username));

    public static User GetUser(string username) {
        using (var context = new MyDataContext()) {
            return GetUserCompiled(context, username).SingleOrDefault();
        }
    }
}

Для часто выполняемых запросов это чрезвычайно выгодно.

1 голос
/ 17 июля 2010

Если ваш SQL нормальный и вызовы всегда 1-2 мс, возможно, проблема не в linq-to-sql?

1 голос
/ 17 июля 2010

Включите трассировку и посмотрите, поможет ли это найти узкое место, поскольку это не похоже на проблему SQL.

http://www.asp101.com/articles/robert/tracing/default.asp

...