gpt4 book ai didi

sql - 如何快速将数据从R导出到SQL Server

转载 作者:行者123 更新时间:2023-12-02 03:42:31 24 4
gpt4 key购买 nike

标准 RODBC 包的 sqlSave 函数即使作为单个 INSERT 语句(参数 fast = TRUE)对于大量数据来说也非常慢由于非最小负载。如何以最少的日志记录将数据写入 SQL 服务器,使其写入速度更快?

目前正在尝试:

toSQL = data.frame(...);
sqlSave(channel,toSQL,tablename="Table1",rownames=FALSE,colnames=FALSE,safer=FALSE,fast=TRUE);

最佳答案

通过在本地将数据写入 CSV,然后使用 BULK INSERT(无法作为类似于 sqlSave 的预构建函数使用),可以将数据写入MS SQL Server 速度非常快。

toSQL = data.frame(...);
write.table(toSQL,"C:\\export\\filename.txt",quote=FALSE,sep=",",row.names=FALSE,col.names=FALSE,append=FALSE);
sqlQuery(channel,"BULK
INSERT Yada.dbo.yada
FROM '\\\\<server-that-SQL-server-can-see>\\export\\filename.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\\n'
)");

SQL Server 必须有权访问保存 CSV 文件的网络文件夹,否则此过程将不起作用。虽然需要进行一些具有各种权限的设置(网络文件夹和BULK ADMIN权限,但速度的返回是无限更有值(value)的)。

关于sql - 如何快速将数据从R导出到SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19190744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com