LINQ to SQL: первый вызов - PullRequest
       27

LINQ to SQL: первый вызов

2 голосов
/ 16 декабря 2009

Я использую LINQ to SQL для доступа к базе данных (SQL Server 2005). Первый вызов занимает до 10 секунд для извлечения данных, второй вызов занимает менее секунды.

Что можно сделать, чтобы улучшить производительность при первом обращении к базе данных? Действие базы данных происходит в контроллере приложения asp.net mvc.

Спасибо

Ответы [ 4 ]

1 голос
/ 16 декабря 2009

Я считаю, что SQL Server кеширует запрос, и это нормально. Теперь, если исходные 10 секунд - это слишком много, вам нужно захватить SQL-запрос (я бы предложил профилировщик) и затем просмотреть его. В прошлом я запускал sql в консоли управления с выбранным показом фактического плана выполнения. В Интернете есть ресурсы, объясняющие, как это читать, но это должно помочь вам найти узкое место. НТН

Редактировать Я имею в виду, что для долго выполняющихся запросов нормально ускоряться после их однократного запуска, поскольку SQL Server кэширует запрос (я считаю, что план выполнения точен) для последующего использования.

Wade

0 голосов
/ 16 декабря 2009

Я думаю, что вы испытываете процесс компиляции Asp.Net при первой загрузке страницы, а не проблемы с производительностью LTS. Одним из способов измерения производительности является профилирование с помощью Linq to Sql Profiler . Он точно скажет вам, какой запрос генерируется, а также время выполнения запроса и вашего кода.

0 голосов
/ 16 декабря 2009

Я очень сомневаюсь, что виновником здесь является Linq-to-SQL. Можете ли вы опубликовать T-SQL, который генерирует L2S, а также количество строк и информацию об индексации?

0 голосов
/ 16 декабря 2009

Не уверен, что этот тип таймаута связан с LINQ или ASP.NET. Вы также замечаете тайм-аут при использовании базы данных с ADO.NET?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...