2010-04-28 2 views
0

Я отслеживаю вызовы и помещаю их в базу данных. Я помещаю вызов, вызываю, начинаю, заканчиваю в базе данных. В среднем 70-80 звонков в день (нет в выходные), поэтому он достигает 350-400 в неделю. Программа будет использоваться в течение длительного времени, поэтому через год в базе данных будет много элементов.Когда запрос слишком велик?

Часть программы показывает вызовы на графике (объем/день), а также в списке (кто звонил кому). Для этого я использую типичный «select * from table» для получения информации.

Когда запрос будет настолько большим, что пользователь испытает потерю производительности?

Update:

мне нужно всю информацию из таблицы, поэтому выбор был * лучше всего использовать в соответствии с некоторыми людьми.

Каждая строка в базе данных содержит 1 строку int и 4 строки, простые данные.

+0

Загрузите свою базу данных несколькими годами и посмотрите - это действительно единственный способ увидеть, где ваши узкие места. У Redgate есть инструменты для загрузки данных. – Paddy

ответ

1

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

  • у вас есть хороший indexes на полях ваши запросы используют.
  • Вы не делаете что-то действительно глупо в своих запросах.

Без хороших показателей у вас в конце концов возникнут проблемы. Несколько менее важные биты советы:

  • указать столбцы, которые вы хотите, а не с помощью «Select *»
  • убедитесь, что вы сообщаете запрос не вызывается в тысячу раз в секунду, или что-то с ума как это.
3

Вы не указали, что такое хранилище данных, схема, индексы и т. Д. Таким образом, информация очень мало.

Но, как правило (язык твердо в щеку):

Когда пользователи начинают жаловаться.

+2

Ум, это, наверное, немного поздно в игре. :) –

+1

@Robert: любой * реальный * ответ без дополнительной информации от OP слишком рано в игре :) – RedFilter

0

Как долго является частью строки?

Это зависит от множества факторов (включая то, что вы считаете «потерей производительности»), что здесь невозможно дать твердый ответ. Вам нужно будет проверить это самостоятельно и посмотреть

6

Установите ограничение на это сейчас.

Вам действительно нужны данные за все время? Что разумно для графика/списка? 30 дней? 60 дней? Выбирается пользователем?

Хотя, 20000 звонков в год не является огромным объемом данных.

Кроме того, неправильная форма для SELECT * - вы всегда должны указывать список столбцов, который вы выбираете.

+0

+1 для «20000 звонков в год - это не огромный объем данных» –

1

Если вы делаете простой выбор, тогда я угадываю миллионы записей, прежде чем кто-то заметит.

Конечно, если вы используете сервер db на медленной машине, это также помешает ему.

Вы делаете какие-либо предложения или группировки? Любые соединения? Если да, то это индексированные столбцы?

Лучший ответ: Это зависит.

Смежные вопросы