In this Project,we are going to observe the time difference between querying the database with the SQL Syntax and querying the database with the dplyr syntax.
library(dplyr)
con <- dbConnect(RSQLite::SQLite(), dbname = ":memory:")
copy_to(con, nycflights13::flights, "flights",
temporary = FALSE,
indexes = list(
c("year", "month", "day"),
"carrier",
"tailnum",
"dest"
)
)
dbListTables(con)
[1] "flights" "sqlite_stat1"
dbListFields(con, "flights")
[1] "year" "month" "day" "dep_time"
[5] "sched_dep_time" "dep_delay" "arr_time" "sched_arr_time"
[9] "arr_delay" "carrier" "flight" "tailnum"
[13] "origin" "dest" "air_time" "distance"
[17] "hour" "minute" "time_hour"
#Selecting the month 1 from dataset
start=proc.time()
request=dbSendQuery(con, "SELECT * FROM flights WHERE month = 1")
Closing open result set, pending rows
dbFetch(request)
sleep_for_a_minute <- function() { Sys.sleep(60) }
time=proc.time()-start
time
user system elapsed
0.50 0.02 0.60
We will use elapsed time for data analysis. time=0.60 Sec Using Dplyr
library(nycflights13)
library(tidyverse)
start_1=proc.time()
filter(flights,month==1)
dplyr_filtertime=proc.time()-start_1
dplyr_filtertime
user system elapsed
0.27 0.00 0.30
Time=0.30 sec
#Selecting the month 1 from dataset
start=proc.time()
request=dbSendQuery(con, "SELECT month, year, day FROM flights ")
dbFetch(request)
sleep_for_a_minute <- function() { Sys.sleep(60) }
time=proc.time()-start
time
user system elapsed
0.38 0.04 0.45
Time=0.45 Sec
library(nycflights13)
library(tidyverse)
start_1=proc.time()
select(flights,month ,year,day)
dplyr_filtertime=proc.time()-start_1
dplyr_filtertime
user system elapsed
0.09 0.00 0.18
Time=0.18 Sec
Selecting a value from column(SQL Syntax(Time in Sec)) 0.60
Selecting a value from column(dplyr Syntax(Time in Sec)) 0.30
Selecting 3 columns ((SQL Syntax(Time in Sec)) 0.45
Selecting 3 columns ((dplyr Syntax(Time in Sec)) 0.18
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBkZl9wcmludDogcGFnZWQNCiAgd29yZF9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNCkluIHRoaXMgUHJvamVjdCx3ZSBhcmUgZ29pbmcgdG8gb2JzZXJ2ZSB0aGUgdGltZSBkaWZmZXJlbmNlIGJldHdlZW4gcXVlcnlpbmcgdGhlIGRhdGFiYXNlIHdpdGggdGhlIFNRTCBTeW50YXggYW5kIHF1ZXJ5aW5nIHRoZSBkYXRhYmFzZSB3aXRoIHRoZSBkcGx5ciBzeW50YXguICANCg0KYGBge3J9DQojQ3JlYXRpbmcgY29uIGluLW1lbW9yeSBSU1FMaXRlIGRhdGFiYXNlDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShSU1FMaXRlKQ0KY29uIDwtIGRiQ29ubmVjdChSU1FMaXRlOjpTUUxpdGUoKSwgZGJuYW1lID0gIjptZW1vcnk6IikNCg0KI0NvcGluZyBmbGlnaHQgZGF0YXNldCBmcm9tIFIgbGlicmFyeSB0byBSU1FsaXRlIGRhdGFiYXNlDQpjb3B5X3RvKGNvbiwgbnljZmxpZ2h0czEzOjpmbGlnaHRzLCAiZmxpZ2h0cyIsDQogICAgICAgIHRlbXBvcmFyeSA9IEZBTFNFLCANCiAgICAgICAgaW5kZXhlcyA9IGxpc3QoDQogICAgICAgICAgYygieWVhciIsICJtb250aCIsICJkYXkiKSwgDQogICAgICAgICAgImNhcnJpZXIiLCANCiAgICAgICAgICAidGFpbG51bSIsDQogICAgICAgICAgImRlc3QiDQogICAgICAgICkNCikNCmBgYA0KDQpgYGB7cn0NCmRiTGlzdFRhYmxlcyhjb24pDQpgYGANCmBgYHtyfQ0KI0NvbHVtbiB2YXJpYWJsZXMgb2YgdGhlIGZsaWdodHMgZGF0YXNldA0KZGJMaXN0RmllbGRzKGNvbiwgImZsaWdodHMiKQ0KYGBgDQpgYGB7cn0NCiNSZWFkaW5nIHRoZSBkYXRhc2V0DQpkYlJlYWRUYWJsZShjb24sImZsaWdodHMiKQ0KYGBgDQpgYGB7cn0NCiNTZWxlY3RpbmcgdGhlIG1vbnRoIHdoZXJlIG1vbnRoPTEgZnJvbSB0aGUgU1FMIHN5bnRheA0Kc3RhcnQ9cHJvYy50aW1lKCkNCnJlcXVlc3Q9ZGJTZW5kUXVlcnkoY29uLCAiU0VMRUNUICogRlJPTSBmbGlnaHRzIFdIRVJFIG1vbnRoID0gMSIpDQpkYkZldGNoKHJlcXVlc3QpDQpzbGVlcF9mb3JfYV9taW51dGUgPC0gZnVuY3Rpb24oKSB7IFN5cy5zbGVlcCg2MCkgfQ0KdGltZT1wcm9jLnRpbWUoKS1zdGFydA0KdGltZQ0KDQoNCmBgYA0KV2Ugd2lsbCB1c2UgZWxhcHNlZCB0aW1lIGZvciBkYXRhIGFuYWx5c2lzLg0KdGltZT0wLjYwIFNlYw0KVXNpbmcgRHBseXINCmBgYHtyfQ0KI1NlbGVjdGluZyB0aGUgbW9udGggd2hlcmUgbW9udGg9MSBmcm9tIHRoZSBkcGx5ciBzeW50YXgNCmxpYnJhcnkobnljZmxpZ2h0czEzKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpzdGFydF8xPXByb2MudGltZSgpDQpmaWx0ZXIoZmxpZ2h0cyxtb250aD09MSkNCmRwbHlyX2ZpbHRlcnRpbWU9cHJvYy50aW1lKCktc3RhcnRfMQ0KZHBseXJfZmlsdGVydGltZQ0KYGBgDQpUaW1lPTAuMzAgc2VjDQpgYGB7cn0NCiNTZWxlY3RpbmcgbW9udGgsIHllYXIgYW5kIGRheSBmcm9tIFNRTCBzeW50YXgNCnN0YXJ0PXByb2MudGltZSgpDQpyZXF1ZXN0PWRiU2VuZFF1ZXJ5KGNvbiwgIlNFTEVDVCBtb250aCwgeWVhciwgZGF5IEZST00gZmxpZ2h0cyAiKQ0KZGJGZXRjaChyZXF1ZXN0KQ0Kc2xlZXBfZm9yX2FfbWludXRlIDwtIGZ1bmN0aW9uKCkgeyBTeXMuc2xlZXAoNjApIH0NCnRpbWU9cHJvYy50aW1lKCktc3RhcnQNCnRpbWUNCg0KYGBgDQpUaW1lPTAuNDUgU2VjDQpgYGB7cn0NCiNTZWxlY3RpbmcgbW9udGgsIHllYXIgYW5kIGRheSBmcm9tIGRwbHlyIHN5bnRheA0KbGlicmFyeShueWNmbGlnaHRzMTMpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCnN0YXJ0XzE9cHJvYy50aW1lKCkNCnNlbGVjdChmbGlnaHRzLG1vbnRoICx5ZWFyLGRheSkNCmRwbHlyX2ZpbHRlcnRpbWU9cHJvYy50aW1lKCktc3RhcnRfMQ0KZHBseXJfZmlsdGVydGltZQ0KYGBgDQpUaW1lPTAuMTggU2VjDQoNCiAgICAgICAgICAgICAgICAgICAgIAkgDQpTZWxlY3RpbmcgYSB2YWx1ZSBmcm9tIGNvbHVtbihTUUwgU3ludGF4KFRpbWUgaW4gU2VjKSkJICAgICAgICAgMC42MAkgICAgICAgICAgICANCg0KU2VsZWN0aW5nIGEgdmFsdWUgZnJvbSBjb2x1bW4oZHBseXIgU3ludGF4KFRpbWUgaW4gU2VjKSkgICAgICAgICAwLjMwDQoNClNlbGVjdGluZyAzIGNvbHVtbnMgKChTUUwgU3ludGF4KFRpbWUgaW4gU2VjKSkJICAgICAgICAgICAgICAgICAwLjQ1CSAgICAgICAgICAgIA0KDQpTZWxlY3RpbmcgMyBjb2x1bW5zICgoZHBseXIgU3ludGF4KFRpbWUgaW4gU2VjKSkJICAgICAgICAgICAgICAgMC4xOA0KDQoNCg0KDQo=