This is a generic function which gives more details about an object than print(), and is more focused on human readable output than str().
explain(x,...)show_query(x,...)
Arguments
x: An object to explain
...: Other parameters possibly used by generic
Returns
The first argument, invisibly.
Databases
Explaining a tbl_sql will run the SQL EXPLAIN command which will describe the query plan. This requires a little bit of knowledge about how EXPLAIN works for your database, but is very useful for diagnosing performance problems.
Examples
lahman_s <- dbplyr::lahman_sqlite()batting <- tbl(lahman_s,"Batting")batting %>% show_query()batting %>% explain()# The batting database has indices on all ID variables:# SQLite automatically picks the most restrictive indexbatting %>% filter(lgID =="NL"& yearID ==2000L)%>% explain()# OR's will use multiple indexesbatting %>% filter(lgID =="NL"| yearID ==2000)%>% explain()# Joins will use indexes in both tablesteams <- tbl(lahman_s,"Teams")batting %>% left_join(teams, c("yearID","teamID"))%>% explain()