如何将数据从R快速导出到SQL Server
发布时间:2020-12-12 16:17:56 所属栏目:MsSql教程 来源:网络整理
导读:标准的RODBC软件包的sqlSave功能即使是单个INSERT语句(参数fast = TRUE)对于大量数据由于非最小加载而言非常慢.我将如何使用最少的日志记录将数据写入我的SQL服务器,以便它写得更快? 目前尝试: toSQL = data.frame(...);sqlSave(channel,toSQL,tablename="T
标准的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:exportfilename.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>exportfilename.txt' WITH ( FIELDTERMINATOR = ',',ROWTERMINATOR = 'n' )"); SQL Server必须具有访问保存CSV文件的网络文件夹的权限,否则此过程将无法正常工作.虽然它需要一些设置与各种权限(网络文件夹和BULK ADMIN权限,奖励的速度无限更有价值). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |