Использование секционирования SQL-сервера при хранении 1000 записей в секунду - PullRequest
1 голос
/ 22 февраля 2009

Я прочитал вашу статью (раздел SQL Server: не ответ на все вопросы) и быть удивительным в использовании разделов для моего случая или нет Я должен хранить около 1000 записей в секунду, эти данные о местоположении мобильных узлов, эти данные делают мою базу данных слишком большой Как вы думаете, я должен разделить свою базу данных или нет (у меня так много отчетов в будущем).

Ответы [ 4 ]

1 голос
/ 22 февраля 2009

1000 в секунду не так уж много.

  • Это каждую секунду 24/7?
  • В определенном окне?
  • Это пик 1000 в секунду, но обычно меньше?

У нас есть недавняя система, растущая на 20 миллионов строк / месяц (после прибавки, скажем, еще 50–80 миллионов), и мы не думаем о чем-то вроде разделения.

0 голосов
/ 10 мая 2009

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

В ответе gbn есть несколько полезных моментов, о которых вы не упомянули, например, сколько записей в месяц (или неделю, или день) добавляется. Комментарий Ричарда относительно того, насколько велика (средняя) запись, также имеет большое значение, особенно с точки зрения того, насколько велики средние записи для индексов, предполагая, что индексы не включают все поля из таблицы.

Ответ Гбн, однако, также кажется мне немного безрассудным. Растет на 20 миллионов строк в месяц и даже не «думает о чем-то вроде разделения». Без достаточных показателей, как указано выше, это возможный путь к катастрофе. По крайней мере, вы должны подумать об этом, даже просто чтобы определить, как долго вы можете поддерживать текущий и / или ожидаемый темп роста, прежде чем подумать об увеличении объема ОЗУ или разделов.

0 голосов
/ 10 мая 2009

Возможно, вам придется взглянуть на другую RDMS. Я бы посмотрел на Vertica .

0 голосов
/ 22 февраля 2009

Это много данных.

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

Учитывая объем данных, с которыми вы собираетесь работать, вы, вероятно, захотите использовать архитектуру, которая легко масштабируется? По этой причине вы можете захотеть использовать облачные сервисы типа Amazon Ec2 или SQL Data Services на платформе Azure.

http://aws.amazon.com/ec2/

http://www.microsoft.com/azure/data.mspx

Возможно, если вы предоставите более конкретные сведения о том, что именно вы действительно хотите сделать, т. Е. Какой бизнес-процесс вы хотите поддержать, мы сможем предоставить более конкретную помощь.

Без таких подробностей невозможно определить, является ли разделение SQL Server подходящим для вас подходом к проектированию.

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