Perl DBI - 加载到 SQL Server

Posted

技术标签:

【中文标题】Perl DBI - 加载到 SQL Server【英文标题】:Perl DBI - Loading into SQL Serverl 【发布时间】:2011-06-19 15:07:58 【问题描述】:

我必须每天将一个大小约为 50MB 的文本文件加载到数据库中。我正在使用 Perl DBI 使用插入语句将文件加载到 SQL Server 中。它的性能不是很好,我想知道是否有更好/更快的方式从 DBI 加载到 SQL Server。

【问题讨论】:

你没有说文件是如何处理的,但是 SQL Server 有一个不错的 ETL 工具——我想他们现在把它叫做集成服务。 【参考方案1】:

您可能应该使用BULK INSERT 语句。没有理由你不能从 DBI 运行它。

【讨论】:

【参考方案2】:

在执行大型INSERT/UPDATE 操作时,禁用目标表上的任何索引、进行更改并重新启用索引通常很有用。这样,索引只需重建一次,而不是在每个INSERT/UPDATE 语句运行后重建它们。

(这也可以通过将原始表复制到未索引的临时表,在临时表上执行您的工作,添加索引,删除原始表并重命名临时表来替换它,从而以零停机时间的方式应用.)

【讨论】:

【参考方案3】:

另一种加快速度的方法(如果尚未完成)是使用prepared statements and bind-values。

【讨论】:

以上是关于Perl DBI - 加载到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

Perl DBI / MS ODBC Driver (LinuxL:RHEL) / SQL-Server:如何插入/更新 BLOB varbinary(max) 数据?

perl / sql server查询“重新排序”

Perl DBI - 使用多个语句运行 SQL 脚本

如何打印 Perl 的 DBI 填充占位符后执行的 SQL 查询?

使用 perl DBI 的 SQL 服务器事务问题

Perl 执行 DBI 循环执行