Sybase Bulk Copy - PullRequest
       13

Sybase Bulk Copy

0 голосов
/ 01 февраля 2011

Мы можем добавить еще один столбец в таблицу iC_ProductImageAssociation под названием «ProductFeatureApplicabilityId»

этот столбец будет ссылаться на iC_ProductFeatureApplicability. Поэтому, когда продукт предполагает, что в iC_ProductFeatureApplicability вставлен код ABC с ProductFeature of Color 'RED', мы можем взять этот ProductFeatureApplicabilityId и сохранить его в таблице iC_ProductImageAssociation.

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

, в котором вместо того, чтобы хранить отдельные столбцы в качестве элемента (как в настоящее время в таблице iC_ProductFeature, мы сохраняем цвет, размер, бренд и т. Д. В качестве отдельных столбцов), мы можем создать главную таблицу функций продукта (iC_ProductFeatureMasters), сохраните все эти столбцы как строки, и во время выполнения администратор может определить дополнительные функции

, поэтому iC_ProductFeatureMasters будет хранить данные как

ProductFeatureMasterId                        FeatureName 

 1                                            Color

 2                                            Size

 3                                            Brand 

 4                                            Dimensions

и таблица iC_ProductFeature будут хранить ProductFeatureMasterId и его значение.

так что теперь iC_ProductFeature будет выглядеть ниже

ProductFeatureId               ProductFeatureMasterId     Description         UOM ID  

 1                                    1                       RED
 2                                    4                       10                     1    

Ответы [ 2 ]

0 голосов
/ 01 февраля 2011

Скорее всего, триггеры и другая логика, которая должна выполняться с каждой вставкой строки, - это то, что держит вещи медленно, а не метод вставки.Даже массовое копирование не будет быстрым, если потребуется выполнение триггеров.

Я бы рекомендовал реорганизовать логику для запуска всех строк после их вставки, а не по одной за раз.Обычно вы создаете промежуточные таблицы для новых данных, где они будут храниться во время обработки и до объединения с обычными таблицами данных.

0 голосов
/ 01 февраля 2011

Вот пример из моего кода:

var table = new DataTable();
var sqlCopy = new SqlBulkCopy(dataBaseConnection, SqlBulkCopyOptions.Default, sqlTransaction) { DestinationTableName = destinationTableName};
sqlCopy.WriteToServer(table);

Дополнительную информацию можно найти, перейдя по ссылкам ниже:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx

http://www.sqlteam.com/article/use-sqlbulkcopy-to-quickly-load-data-from-your-client-to-sql-server

Вы не можете сделать BulkCopy для нескольких таблиц, поэтому вам нужно BulkCopy для каждой из ваших таблиц. Для транзакционного поведения вы должны создать объект Transaction и передать конструкторы объектов BulkCopy.

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