我需要RODBC sqlQuery
的帮助。我运行一个产生11毫米数据行的SQL脚本。使用RODBC抽取数据需要78秒,但不幸的是,当我包含日期/时间字段时,需要180秒才能从RODBC获取数据,而在Management Studio中仅需要78秒。我想知道为什么请和我能做些什么。RODBC posixct日期字段使查询非常缓慢
的日期/时间字段是SQL Server上这种格式的:YYYY-MM-DD HH:MM:SS.000
我要确保我做Sys.setenv(TZ="UTC")
之前,我运行此查询:
lossdata <- as.data.table(sqlQuery(dbhandle, qry))
QRY是一个字符串,数据库句柄使用odbcDriverConnect
被设置。
我得到的日期/时间字段以这种格式,当我从R上拉:YYYY-MM-DD HH:MM:SS (without .000)
我试过RJDBC太多,但它需要同时进行。在使用RJDBC后,将字符的日期/时间字段转换为posixct
的时间也很长,因此这不是一个好的选择。不幸的是,我需要该字段在posixct
中,因为我在排序中使用它,如果它不是这种数据类型,则需要很长的时间。
请帮忙。我不知道我如何重现这个例子。如果您需要任何其他信息,请告诉我。
SQL查询
随着EVENTDATE
select pp.EventDate as EVENTDATE, pp.EVENTID as EVENTID
from
(select * from set.dbo.events where setid in (16,32)) pp
inner join
(select eventid from databasename.dbo.rdm_port where anls = 93) y
on pp.EventId = y.EVENTID
没有EVENTDATE
select pp.EVENTID as EVENTID
from
(select * from set.dbo.events where setid in (16,32)) pp
inner join
(select eventid from databasename.dbo.rdm_port where anls = 93) y
on pp.EventId = y.EVENTID
请显示包含日期时间的查询,以及不查看计算运行情况的查询。 – Parfait
我已经使脚本更小以使其可读,让我知道如果你有任何问题。 – charliealpha
也许RODBC使用函数'as.Date'将非常缓慢的DateTime列从字符转换为Date。有关详细信息,请参阅https://stackoverflow.com/a/12788992/6004997:“所以问题的关键(我认为)是为什么strptime非常慢,也许可以在R中进行改进,或者避免POSIXlt,或者直接或间接“。 –