RJDBC слишком медленный для чтения таблицы SQL Server - PullRequest
0 голосов
/ 04 февраля 2019

Я использую пакет RJDBC для подключения R к серверу SQL.Но когда я пытаюсь прочитать входные данные из таблиц, это занимает много времени для чтения.Ниже приведен фрагмент, который даст вам представление о том, как я пытаюсь получить доступ к таблицам.

LocationOfJDBC <- "local_path/sqljdbc41.jar"
options(java.parameters = "-Xmx8048m")
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver" ,LocationOfJDBC ,identifier.quote="`")

mydb <- dbConnect(drv, paste0("jdbc:sqlserver://",DBhost,";databaseName=",DBname), DBuser, DBpass)

#dbListTables(mydb)
#dbDisconnect(mydb)

# Reading SQL Table using DBSENDQUERY Method-which is taking almost 2.6 mins for 100k rows and 14 columns (7 varchar,7 int)
Qyery1<-paste("select * from table1 where id = ",user_id,sep="")
R_table1 = dbSendQuery(mydb, Qyery1)
R_df_table1 = fetch (R_table1, n=-1)

# Reading SQL Table using DBGETQUERY Method - which is taking almost 140 sec for 100k rows and 14 columns (7 varchar,7 int)
Qyery1 <- paste("select * from table1 where id = ",user_id,sep="")
R_df_table1 = dbGetQuery(mydb, Qyery1)

Есть ли лучший способ сделать это.Есть другие клиенты, которые занимают менее 10 секунд.Почему R такой медленный?

...