3

Я разрабатываю решение для отчетности, которое использует SQL Server 2008 R2 в качестве базовой базы данных. Схема базы данных довольно проста. Одна таблица с именем Calls с CallId ПК и одна таблица с именем Events, которая имеет связь внешнего ключа с вызовами fk_CallId.Улучшение производительности базы данных SQL Server

Каждый звонок имеет не менее 6-7 событий, и в день регистрируется 3000 + звонков.
Я немного обеспокоен тем, насколько сильно это отношение оказывает на производительность запросов. Если использовать inner join на столе с более чем двумя миллионами строк (Events), это сильно ухудшит производительность, я могу добавить поле CallerId в таблицу Events. A не использовать объединения (хотя я потеряю и другую информацию о связанных Calls Таблица).

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

+3

Через 100 лет у вас будет около 100 миллионов строк в вашей базе данных. Поскольку это все еще база данных среднего размера, на данный момент я действительно не буду беспокоиться о производительности. Ключ здесь - убедиться, что вы правильно индексировали ваши таблицы (и работали на достойном аппаратном отключении). –

+0

@Lieven: Спасибо за комментарий. однако, как я прокомментировал ответ Олега, моя оценка составляет 7 000 000 + строк в таблице «событий» каждый год. – Kamyar

+3

, тогда это станет 700 миллионов строк ** через 100 лет **. Мой первоначальный комментарий все еще применяется. Хотя я, конечно, рекомендую подумать об оптимизации, убедитесь, что вы не стали жертвой [преждевременной оптимизации] (http://www.google.be/search?q=premature+optimization&ie=utf-8&oe=utf-8&aq=t&rls= org.mozilla: нл: официальный и клиент = светлячок-а). –

ответ

3

Это зависит от того, как широкий ваши столы.

На самом деле - 3000 звонков в день не такие большие данные, по крайней мере, за первые десять лет 8-)

но

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

Шаги:

  • проверка правильной индексации (по крайней мере, индекс присоединившихся (и запрашиваемых) столбцов
  • проверить свои запросы - они приносят вам данные, которые вы хотите, чтобы только данные, которые вы хотите?
+0

3000 звонков в день -> ~ 20 000 событий в день -> 7 000 000 + строк в год. – Kamyar

+1

И что? Я работаю с БД, который растет с 1,5 миллионами строк в день с 2005 года, он работает как очарование с сотнями миллионов строк и несколькими терабайтами данных. Все зависит от правильного дизайна. –

+0

@ Камяр, 7 000 000 строк в год, крошечный в терминах базы данных. – HLGEM