Обработка огромных данных записи в 1 таблице - PullRequest
0 голосов
/ 20 сентября 2011

Я хотел бы задать пару вопросов, как обрабатывать огромные 100 миллионов данных в одной таблице.
Таблица выполнит INSERT, SELECT & UPDATE.

У меня есть совет, чтобы проиндексировать таблицу и заархивировать таблицу в таблицу пар.

Любое другое предложение, которое может помочь настроить производительность SQL.

Корпус: SQL Server 2008. В большинстве случаев обновление, касающееся десятичного значения и состояния крошечного целого числа.

Оператор INSERT не будет использовать BULK INSERT, так как я предполагаю, что в минуту, что многие пользователи позволяют 10000-500000 выполнять оператор INSERT и обновлять таблицу.

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Вы должны учитывать, какие у вас есть столбцы.

Чем больше столбцов nvarchar/text / etc вы включили в разные индексы, тем медленнее будет индекс.

И какиеRDBMS вы собираетесь использовать?У вас есть разные варианты, основанные на SQL Server, Oracle и MySQL ...

Но решающим моментом является создание правильных индексов, которые вы бы использовали ...

Еще одна вещь, вымог бы использовать BULK INSERT на SQL Server для ускорения вставок.

Но спросите, я имел дело с базами данных, заполненными 70-миллионными строками данных в день;)

EDIT ---- После получения дополнительной информации

Я попытаюсь применить немного другой подход к делу и сравнить его со сбором данных.

Нет сомнений, что INSERT быстрее, чем UPDATE.И вы можете создать таблицу, которая будет действовать как таблица для сбора.Я имею в виду, что он только вставляет все время.Обновлений нет, все обрабатывается вставками.

Затем вы используете триггер / событие / планировщик для обработки того, что поступило в эту таблицу, и для заполнения того, что вам нужно, в другую (ые) таблицу (ы).

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

Этоконечно, также как-то связано с тем, для чего «окончательные» данные будут использоваться ...

\ T

0 голосов
/ 20 сентября 2011

Очевидно, что SQL 2008 способен на 100 миллионов записей, но многие детали, на которые можно посмотреть, просто не входят в игру на 100 тысяч.Выберите хороший первичный ключ.Коэффициент заполнения.Другие индексы (замедляют вставку, но выбирают скорость).Параллелизм (блокировка).Если вы можете принять грязное чтение, то это поможет производительности.Этот вопрос требует гораздо больше подробностей.Вам необходимо опубликовать дизайн таблицы и свои операторы выбора, обновления и вставки TSQL.Я не отклонил ваш вопрос, но если вы не предоставите более подробную информацию, он будет отклонен.

Для вставки помните, что вы можете вставлять несколько строк одновременно, и это намного быстрее, чем несколько операторов вставки, если BULK INSERT не является опцией.

    INSERT INTO Production.UnitMeasure
    VALUES (N'FT2', N'Square Feet ', '20080923'), (N'Y', N'Yards', '20080923'), (N'Y3', N'Cubic Yards', '20080923');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...