Странный тайм-аут при использовании linq / entity, MVC2 - PullRequest
0 голосов
/ 11 августа 2011

Я только что случайно начал получать эту проблему, и ранее это было хорошо до сегодняшнего вечера.Я не хочу касаться тайм-аутов, я считаю, что это не нужно.

Это простой запрос.

{"Timeout expired.  The timeout period elapsed prior to completion of the 
operation or the server is not responding."}

Вот код, вызывающий тайм-аут ..

   var post = (from p in con.blog_posts 
                    orderby p.post_dt descending 
                    select p).First();

Кто-нибудь может подумать о каких-нибудь щелях, которые я должен проверить, чтобы попытаться решить эту проблему?

edit: я могу подключиться к серверу с помощью студии управления, и он работает ..

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Работают ли другие запросы к базе данных должным образом?Перейдите в свою базу данных и выполните этот запрос и посмотрите, сколько времени потребуется, чтобы вернуться.Попробуйте выполнить точный запрос (захватите его в SQL Profiler).Это скажет вам, если ваша база данных просто медленно работает для этого запроса, или это другая проблема.

Мое первое предположение будет, что у вас нет индекса в столбце post_dt.Попытка запроса непосредственно в SQL докажет или опровергнет это.Если выполнение запроса занимает много времени, добавьте некластеризованный индекс для этого столбца и повторите попытку.

1 голос
/ 11 августа 2011

вы можете избежать сортировки:

var post = 
    from p in con.blog_posts
    where p.post_dt == con.blog_posts.Max(post=>post.post_dt) 
    select p
...