как уменьшить нагрузку на базу данных - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть база данных (sql server 2005), теперь в таблице около 100000 записей, называемых пользователями, когда я делаю запрос, использую linq to sql, это очень медленно и медленно. Как я могу сделать некоторые действия для улучшенияскорость

Ответы [ 4 ]

2 голосов
/ 21 сентября 2011

Анализ вашего запроса и добавление некоторых индексов в вашу таблицу может помочь.

Чтобы получить более конкретный ответ, отправьте более конкретную информацию (структура таблицы, индексы, которые у вас есть, SQL-код L2S генерирует, ...)

1 голос
/ 21 сентября 2011

Вы можете (в порядке предпочтения)

  • Сохранить ваш запрос как хранимую процедуру
  • Добавить индексы своим пользователям таблица, для чего вы запрашиваете / сортировка для
  • Анализ вашего запроса (если это сложно), посмотрите, есть ли менее ресурсоемкий способ делать это. Вам помогут графические анализаторы запросов.
  • В крайнем случае, не используйте LINQ, а вместо этого ADO.NET Entity Framework это значительно быстрее. Но вы увидите улучшения производительности только для сумасшедших вещей, и только если вы уже сделали все вышеперечисленное.
0 голосов
/ 21 сентября 2011

В вашем распоряжении лучшие инструменты для анализа доступа к вашей базе данных и определения того, что необходимо оптимизировать:

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

В графическом плане выполнения ищите шаги, которые используют много ЦП и пути, которые передают много записей. Это то, что вы хотите оптимизировать. Возможно, вы где-то сканируете таблицу, которая идет медленно, или, возможно, объединяет гораздо больше записей, чем вам нужно, где-то медленно, и т. Д.

0 голосов
/ 21 сентября 2011

Используйте хранимые процедуры, а затем используйте linq to sql, чтобы получить нужные строки, это даст производительность.

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