Как влияет количество записей конкретной таблицы (в SQL Server) на время ответа LINQ Queries в C # MVC - PullRequest
0 голосов
/ 05 декабря 2018

Я немного погуглил название темы, но не нашел полезного ответа.Большинство вопросов касалось влияния числа столбцов таблицы на производительность запроса, в то время как мне нужно знать влияние количества строк таблицы на время ответа на запрос linq в проекте C # MVC.На самом деле, у меня есть веб-проект MVC, в котором я пытаюсь получить сигналы тревоги, установленные с помощью ajax-вызова с сервера, и показать их в веб-сетке на стороне клиента.Каждый ajax-вызов выполняется каждые 60 секунд в цикле, созданном методом setTimeOut.Количество строк в таблице аварийных сигналов (в базе данных SQL Server) постепенно увеличивается, и через неделю оно достигает тысяч строк.Сначала, когда я запускаю проект, я вижу в DevTools браузера (Chrome), что время каждого ajax-вызова занимает около 1 секунды или около того.Но это время постепенно увеличивается с каждым днем, и через неделю каждый успешный вызов ajax занимает более 2 минут.Это приводит к тому, что около 5 вызовов ajax всегда находятся в очереди ожидания.Я уверен, что в коде на стороне клиента (JQuery) и на стороне сервера (C #) нет утечки памяти, поэтому единственный подозреваемый виновник - это время ответа SELECT Query, выполняемое для таблицы аварийных сигналов.Я ценю любой совет.

1 Ответ

0 голосов
/ 05 декабря 2018

Проверьте запрос, который выполняется в базе данных.Есть два варианта:

  1. Ваш запрос Linq извлекает все данные из базы данных и обрабатывает их локально.В этом случае количество строк в таблице очень важно.Вам нужно исправить ваш запрос Linq и убедиться, что он выбирает только соответствующие строки из базы данных.Затем вы можете нажать опцию 2.
  2. Ваш запрос Linq выбирает только соответствующие строки из базы данных, но в вашей таблице нет соответствующих индексов, и каждый запрос просматривает все данные в таблице..

Однако из-за того, что в вашей таблице всего несколько тысяч строк, я сомневаюсь, что сканирование таблицы займет 2 минуты, поэтому более вероятной причиной такого замедления является вариант 1.

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