我需要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,或者直接或間接「。 –