Вставка большого объема данных в SQL Server 2005 - PullRequest
0 голосов
/ 16 марта 2010

У нас есть приложение (написанное на c #) для хранения рыночной цены акций в базе данных (SQL Server 2005). В него вставляется около 1 миллиона записей за один день. Теперь мы добавляем в него еще один сегмент рынка, и количество записей будет удвоено (2 миллиона в день).

В настоящее время среднее число вставок записей в секунду составляет около 50, максимальное - 450, а минимальное - 0.

Для проверки определенных условий я использовал сервисный брокер (асинхронный триггер) в моей таблице цен. В настоящее время он работает нормально (загрузка процессора составляет около 35%).

Теперь я планирую создать a в памяти набора данных текущей цены акций. мы хотели бы сделать несколько простых расчетов.

В настоящее время я использую метод пакетной вставки XML. (OPENXML в Storred Proc)

Я хочу узнать разные мнения участников по этому поводу.

Пожалуйста, предоставьте свой способ справиться с такой ситуацией.

1 Ответ

0 голосов
/ 16 марта 2010

Ваш вопрос читает, но заголовок подразумевает написание?

При чтении рассмотрите (не используйте вслепую) временные таблицы для кэширования данных, если вы собираетесь выполнить некоторую обработку. Тем не менее, простыми расчетами я предполагаю, что агрегаты живут AVG, MAX и т. Д.

Как правило, было бы бессмысленно перетаскивать данные, кэшировать их в клиенте и агрегировать там.

Если пакетная загрузка:

  • SQLBulkCopy или аналогично промежуточной таблице
  • Одиночная запись из промежуточной таблицы в

Если вы загружаете один файл, просто вставьте его

Миллион строк в день - это ошибка округления, на которую способен SQL Server (Orable, MySQL, DB2 и т. Д.)

Пример: 35 000 транзакций (не строк) в секунду

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