Я озадачен, почему простой запрос занимает столько времени при выполнении через RPostgreSQL
, но почти мгновенно завершается через другого клиента.У меня есть база данных Postgresql ncol = 500
и nrow = 100
.Я хотел бы прочитать всю базу данных в набор данных с помощью функции dbReadTable
.Если это не удастся, даже чтение в одной строке с помощью dbGetQuery
будет в порядке.
library(RPostgreSQL)
drv = dbDriver("PostgreSQL")
con = dbConnect(drv, dbname = "MYDBNAME", host = "MYHOST",
port = 5432, user = "MYUSER", password = "MYPASSWORD")
before = Sys.time()
res = dbGetQuery(con, "SELECT * FROM detailed WHERE project_code='ABCD1234' LIMIT 1;")
after = Sys.time()
before2 = Sys.time()
res2 = dbReadTable(con, "detailed")
after2 = Sys.time()
dbDisconnect(con) # Close PostgreSQL connection
ellapsed = after - before
ellapsed2 = after2-before2
ellapsed
> Time difference of 50.31242 secs
ellapsed2
> Time difference of 50.38002 secs
Однако я могу запустить SELECT * FROM detailed;
через 0,5 секунды через другого клиента.
Почему этозапрос занимает так много времени для запуска?Что я могу сделать, чтобы ускорить это?Может ли это быть проблема драйвера Postgres с RPostgreSQL
?