SQL Server 2000: удаление и вставка огромных объемов данных - PullRequest
1 голос
/ 23 июля 2011

У нас есть SQL Server 2000, который содержит около 6 000 000 записей.И в одном столбце хранится PDF.

Вопрос в том, что каждый месяц мы удаляем около 250 000 записей и вставляем около 250 000 в определенный день.После этого обновлений нет, только чтение.

Вопрос: оптимально ли удалить 500 записей и вставить 500 записей, затем удалить, затем вставить, затем удалить и вставить и т. Д.

Илиодновременно удалять 250 000 и вставлять 250 000 в 500 партий?

Какой вариант является оптимальным?и есть лучшее управление памятью?

+ 1 для тех, кто указывает мне на статью в MSDN или что-то в этом роде.

Ответы [ 3 ]

2 голосов
/ 23 июля 2011
0 голосов
/ 23 июля 2011

Поскольку вы не упомянули об этом, стоит подчеркнуть стандартную практику вставки / удаления / обновления любого очень большого объема данных на основах отбрасывания всех индексов перед применением изменений и их последующего применения.

Для этого есть две причины.

  1. Система быстрее перестраивает индексы за один раз, а не на основе записи (меньшее перемещение головки на диске).

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

0 голосов
/ 23 июля 2011

Возможно, вы захотите рассмотреть разбиение.Если вы упорядочите его так, чтобы вы могли просто удалить раздел за раз, удаление займет миллисекунды.Смотри http://msdn.microsoft.com/en-us/library/aa902650(v=sql.80).aspx

...