Я работаю в веб-проекте (asp.net) около шести месяцев. Окончательный продукт собирается жить. В проекте используется SQL Server. Результаты тестирования производительности с некоторыми большими объемами данных показывают, что производительность ухудшается, когда данные становятся слишком большими, скажем, 2 миллиона строк (тайм-аут, отложенные ответы и т.д.). Сначала мы использовали полностью стандартизованную базу данных, но теперь мы частично ее нормализовали из-за проблем с производительностью (для сокращения объединений). Прежде всего, это правильное решение? Плюс, каковы возможные решения, когда размер данных становится очень большим, как нет. клиентов увеличится в будущем?
Я хотел бы добавить еще:
- 2 миллиона строк - это таблицы сущностей, таблицы, разрешающие отношения, имеют гораздо большие строки.
- Производительность ухудшается, когда данные + нет. пользователей увеличивается.
- Денормализация была выполнена после определения сильно используемых запросов.
- Мы также используем большое количество столбцов xml и xquery. Это может быть причиной?
- Немного от темы, некоторые люди в моем проекте говорят, что динамический SQL-запрос выполняется быстрее, чем метод хранимой процедуры. Они провели какое-то тестирование производительности, чтобы доказать свою точку зрения. Я думаю, что обратное верно. Некоторые из сильно используемых запросов динамически создаются там, где большинство других запросов инкапсулируются в хранимых процедурах.