Рекомендуемое оборудование для определенного количества записей в базе данных SQL Server - PullRequest
1 голос
/ 18 января 2010

Сколько записей считается нормальным для типичной таблицы базы данных сервера SQL? Я имею в виду, если некоторые из таблиц в базе данных содержат что-то вроде трех или четырех миллионов записей, я должен рассмотреть вопрос о замене оборудования, таблиц разбиения и т. Д.? У меня есть запрос, который объединяет только две таблицы и имеет четыре условия в своем предложении WHERE с ORDER By. Этот запрос обычно занимает 3-4 секунды для выполнения, но один раз в каждые 10 или 20 выполнений, он может выполняться даже дольше (10 или 20 секунд) (я не думаю, что это связано с анализом параметров, потому что я перекомпилирую запрос каждый раз). Как я могу улучшить свой запрос для выполнения менее чем за секунду? Как я могу знать, как этого можно достичь? Как я могу узнать, повысит ли производительность объем оперативной памяти, добавление новостных жестких дисков, увеличение скорости CUP или даже улучшение индексов для таблиц? Любой совет по этому вопросу был бы оценен:)

Ответы [ 2 ]

1 голос
/ 18 января 2010

4 миллиона записей это не много. Даже Microsoft Access может справиться с этим.

Даже 3-4 секунды для запроса - это долго. 95% случаев, когда вы сталкиваетесь с такими проблемами с производительностью, сводятся к следующему:

  • Отсутствие соответствующих индексов;
  • Плохо написанный запрос;
  • Модель данных, которая не подходит для написания запросов на выполнение;
  • Непараметрические запросы, разбивающие кеш запросов;
  • MVCC отключен, и у вас есть длительные транзакции, которые блокируют SELECTS («из коробки» так работает SQL Server). См. Лучше параллелизма в Oracle, чем SQL Server? для получения дополнительной информации об этом.

Ничто из этого не имеет отношения к аппаратному обеспечению.

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

0 голосов
/ 18 января 2010

Если вы не выполняете какие-то тяжелые операции join с, 3-4 миллиона строк не требуют какого-либо необычного оборудования. Сначала я бы выяснил, есть ли соответствующие индексы, правильно ли они используются и т. Д.

...