Дизайн таблицы SQL Server и использование SqlBulkCopy для вставки данных - PullRequest
0 голосов
/ 09 января 2019

Мне просто нужно предложение по наилучшему использованию SqlBulkCopy.

Скажем, у меня есть таблица, показанная ниже

    Type BidNumber HQregion Services PrimaryExec Value
    --------------------------------------------------
          22        USA      Some     None         33
          24        Europe   None     Delta        44
    SL    22        USA      Some     Tango        39
    GV    44        Mexico   Delta    Charlie      33
    Time  22        India    Charlie  None         33

Можно сказать о 100 тыс. Записей с пустым Type столбцом 100 тыс. С SL с некоторыми такими же точками данных, как пустые, но некоторые другие, и я использую SqlBulkCopy для копирования данных из файлов Excel в эту таблицу.

Мне было интересно, стоит ли разбивать таблицу на несколько таблиц, которые имеют одинаковые точные столбцы, но различаются по типу, поэтому одна таблица, скажем, MainData, другая для SLData и GVData, а затем использовать SqlBulkCopy просто вставить данные в конкретные таблицы. Это плохой дизайн с несколькими таблицами, когда данные только одного столбца отличаются, и это будет эффективно при использовании массового копирования, поскольку мне нужно удалить данные перед вставкой, а это ночной процесс.

Итак, окончательная структура будет:

Основной стол

BidNumber HQregion Services PrimaryExec Value

SL Table

BidNumber HQregion Services PrimaryExec Value

GV Table

BidNumber HQregion Services PrimaryExec Value

Расписание

BidNumber HQregion Services PrimaryExec Value

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 января 2019

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

0 голосов
/ 09 января 2019

Вы слишком усложняете вещи. 100 КБ мало для sql массового копирования. Как крошечный. Это размер, который я ожидаю загрузить через секунду или около того.

...