建立
我必须在SQL Server 2000/2005,MySQL或Access中插入几百万行.不幸的是,我没有一种简单的方法来使用批量插入或BCP或普通人类会采用的任何其他方式.插入将发生在一个特定的数据库上,但该代码需要与数据库无关 - 因此我无法进行批量复制,SELECT INTO或BCP.但是,我可以在插入之前和之后运行特定查询,具体取决于我要导入的数据库.
例如.
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怎么样?