НАСТРОЙКА
Мне нужно вставить пару миллионов строк либо в SQL Server 2000/2005, либо в MySQL, либо в Access. К сожалению, у меня нет простого способа использовать массовую вставку или BCP или любой другой способ, который мог бы использовать обычный человек. Вставки будут происходить в одной конкретной базе данных, но этот код должен быть независимым от базы данных, поэтому я не могу выполнять массовое копирование, SELECT INTO или BCP. Однако я могу выполнять определенные запросы до и после вставок, в зависимости от того, в какую базу данных я импортирую.
eg.
If IsSqlServer() Then
DisableTransactionLogging();
ElseIf IsMySQL() Then
DisableMySQLIndices();
End If
... do inserts ...
If IsSqlServer() Then
EnableTransactionLogging();
ElseIf IsMySQL() Then
EnableMySQLIndices();
End If
ВОПРОС
Есть ли какие-нибудь интересные вещи, которые я могу сделать с SQL Server, чтобы ускорить эти вставки?
Например, есть ли команда, которую я мог бы сказать SQL Server: «Эй, не беспокойтесь о записи этих транзакций в журнал транзакций».
Или, может быть, я мог бы сказать: «Эй, у меня есть миллион строк, так что не обновляйте свой индекс, пока я полностью не закончу».
ALTER INDEX [IX_TableIndex] ON Table DISABLE
... inserts
ALTER INDEX [IX_TableIndex] ON Table REBUILD
(Примечание. Отключение вышеуказанного индекса работает только в 2005, а не в 2000 году. Бонусные баллы, если вы знаете, как это сделать в 2000 году).
А как насчет MySQL и Access?