Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- EXPLAIN analyze SELECT * FROM ( SELECT DISTINCT ON (ev.eventid) ev.ticker, ev.cname, ev.cscore, ev.cik, ev.cid, ev.mcap, ev.arrowtype, ev.eventid, ev.eventtype, ev.eventtext, ev.eventextra,
- ev.eventdata1, ev.eventdata2, ev.eventdate, ev.evcode, ev.eventinfo, ev.insertdate, ev.evname, ev.evpriority, ev.evgroup, ev.displayname, ev.bullish,
- COALESCE(wd.buyvalue , 0) AS buyvalue, COALESCE(wd.sellvalue , 0) AS sellvalue, wd.net_ct, wd.ceo_ct, wd.cfo_ct, wd.officer_ct, wd.director_ct,
- wd.officer_ct, wd.owner_ct, ev.eventepoch, ev.YEAR, ev.quarter, ev.MONTH, ev.week, ev.eventdatestr, ev.griddatestr, snip.snip_id AS snip_id,
- snip.mostnotable, snip.TYPE AS sniptype, split_part(snip.sentiment, ' ', 1) AS snipsentiment, snip.title AS sniptitle,
- to_char(snip.publishdate, 'Mon-dd YYYY') AS publishdatestr, age(snip.publishdate) AS snipage,
- EXTRACT('epoch' FROM (current_day() - snip.publishdate))::NUMERIC / 86400 AS snipagedays, snip.publishdate - ev.eventdate AS snipeventage,
- snip.snippet, COALESCE(CASE WHEN qd.close_price <> 0 THEN ((ev.curquote - qd.close_price) / qd.close_price) * 100 ELSE 0 END, 0) AS gain,
- ev.sector FROM ( SELECT ci.ticker, ci.name AS cname, ci.cscore, ci.exportcik AS cik, ci.cid, ci.mcap, ci.industry_id / 100 AS sector, ci.arrowtype, ci.curquote,
- ev.eventid, ev.eventtype, ev.eventtext, ev.eventextra, ev.eventdata1, ev.eventdata2, ev.eventdate, ev.evcode, ev.eventinfo, ev.insertdate,
- cfg.name AS evname, cfg.priority AS evpriority, cfg.evgroup, cfg.displayname, cfg.bullish, EXTRACT('epoch' FROM ev.eventdate) AS eventepoch,
- EXTRACT( YEAR FROM ev.eventdate ) AS YEAR, EXTRACT( quarter FROM ev.eventdate ) AS quarter, EXTRACT( MONTH FROM ev.eventdate ) AS MONTH,
- EXTRACT( week FROM ev.eventdate ) AS week, to_char(ev.eventdate, 'Mon-dd') AS eventdatestr, to_char(ev.eventdate, 'Mon-dd YY') AS griddatestr
- FROM companyevents ev, companyclassinfo ci, evconfig cfg
- WHERE ev.cik = ci.exportcik AND ev.evcode = cfg.evcode AND (( ev.evcode = any(array[305,307,306,308,309])
- AND eventExtra = getCurrentBuybackQuarter() )
- OR ( ev.evcode = any(array[505,101,104,105,106,107,108,111,103,506,201,204,205,206,208,209,211,212,220,214,216,303,310])
- AND eventdate > current_day() - (30 * '1 day'::INTERVAL) ) ) ) ev
- LEFT JOIN rnsniplatest snip ON (snip.cik = ev.cik AND snip.publishdate > current_day() - (30* '1 day'::INTERVAL))
- LEFT JOIN watchlist_daily_scores wd ON (wd.cik = ev.cik AND wd.period = 30 )
- LEFT JOIN quotes qd ON (qd.cid = ev.cid AND qd.trade_date = ev.eventdate AND qd.trade_date >='2004-01-01') ORDER BY ev.eventid ) ss ORDER BY eventdate DESC , evpriority ASC ;
- QUERY PLAN
- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- --------------------------------------------------------------------------------------------------------------------------------------------
- Sort (cost=58127.13..58127.16 ROWS=11 width=798) (actual TIME=717.837..720.171 ROWS=2422 loops=1)
- Sort KEY: ev.eventdate, cfg.priority
- Sort Method: external MERGE Disk: 2608kB
- -> UNIQUE (cost=58079.43..58126.83 ROWS=11 width=1526) (actual TIME=686.429..690.791 ROWS=2422 loops=1)
- -> Sort (cost=58079.43..58103.13 ROWS=9480 width=1526) (actual TIME=686.426..688.964 ROWS=2917 loops=1)
- Sort KEY: ev.eventid
- Sort Method: external MERGE Disk: 3168kB
- -> Nested Loop LEFT JOIN (cost=1190.55..52062.25 ROWS=9480 width=1526) (actual TIME=199.394..662.030 ROWS=2917 loops=1)
- JOIN FILTER: ((qd.cid = ci.cid) AND (qd.trade_date = ev.eventdate))
- -> Nested Loop LEFT JOIN (cost=1190.55..50498.02 ROWS=11 width=1518) (actual TIME=199.060..449.464 ROWS=2917 loops=1)
- -> Nested Loop LEFT JOIN (cost=1190.55..50428.82 ROWS=11 width=565) (actual TIME=199.032..432.765 ROWS=2917 loops=1)
- -> Nested Loop (cost=1190.55..50359.53 ROWS=11 width=244) (actual TIME=198.996..410.609 ROWS=2917 loops=1)
- -> Nested Loop (cost=1190.55..50296.79 ROWS=7 width=173) (actual TIME=198.739..296.251 ROWS=2426 loops=1)
- JOIN FILTER: (ev.evcode = cfg.evcode)
- -> Bitmap Heap Scan ON companyevents ev (cost=990.30..49771.46 ROWS=12 width=126) (actual TIME=198.142..209.067 ROWS=2426 loops=1)
- Recheck Cond: ((evcode = ANY ('{305,307,306,308,309}'::INTEGER[])) OR ((eventdate > '2011-04-19 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (evcode = ANY ('
- {505,101,104,105,106,107,108,111,103,506,201,204,205,206,208,209,211,212,220,214,216,303,310}'::INTEGER[]))))
- FILTER: (((evcode = ANY ('{305,307,306,308,309}'::INTEGER[])) AND (eventextra = 'Q1''11'::text)) OR ((evcode = ANY ('{505,101,104,105,106,107,108,111,103,50
- 6,201,204,205,206,208,209,211,212,220,214,216,303,310}'::INTEGER[])) AND (eventdate > '2011-04-19 00:00:00'::TIMESTAMP WITHOUT TIME zone)))
- -> BitmapOr (cost=990.30..990.30 ROWS=23197 width=0) (actual TIME=157.690..157.690 ROWS=0 loops=1)
- -> Bitmap INDEX Scan ON companyevents_evcode_idx (cost=0.00..817.55 ROWS=23186 width=0) (actual TIME=7.004..7.004 ROWS=13988 loops=1)
- INDEX Cond: (evcode = ANY ('{305,307,306,308,309}'::INTEGER[]))
- -> Bitmap INDEX Scan ON companyevents_eventdate_evcode_idx (cost=0.00..172.75 ROWS=10 width=0) (actual TIME=150.677..150.677 ROWS=4828 loops=1)
- INDEX Cond: ((eventdate > '2011-04-19 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (evcode = ANY ('{505,101,104,105,106,107,108,111,103,506,201,2
- 04,205,206,208,209,211,212,220,214,216,303,310}'::INTEGER[])))
- -> Materialize (cost=200.24..212.28 ROWS=1204 width=51) (actual TIME=0.000..0.012 ROWS=77 loops=2426)
- -> Seq Scan ON evconfig cfg (cost=0.00..199.04 ROWS=1204 width=51) (actual TIME=0.017..0.573 ROWS=77 loops=1)
- -> INDEX Scan USING companyclassinfo_exportcik_idx ON companyclassinfo ci (cost=0.00..8.90 ROWS=2 width=75) (actual TIME=0.007..0.009 ROWS=1 loops=2426)
- INDEX Cond: (ci.exportcik = ev.cik)
- -> INDEX Scan USING watchlist_daily_scores_new_pk ON watchlist_daily_scores wd (cost=0.00..6.28 ROWS=1 width=44) (actual TIME=0.005..0.005 ROWS=1 loops=2917)
- INDEX Cond: ((wd.cik = ci.exportcik) AND (wd.period = 30))
- -> INDEX Scan USING rnsniplatest_pk ON rnsniplatest snip (cost=0.00..6.28 ROWS=1 width=957) (actual TIME=0.004..0.004 ROWS=0 loops=2917)
- INDEX Cond: (snip.cik = ci.exportcik)
- FILTER: (snip.publishdate > '2011-04-19 00:00:00'::TIMESTAMP WITHOUT TIME zone)
- -> Append (cost=0.00..102.02 ROWS=237 width=30) (actual TIME=0.048..0.057 ROWS=1 loops=2917)
- -> Seq Scan ON quotes qd (cost=0.00..18.25 ROWS=220 width=30) (actual TIME=0.000..0.000 ROWS=0 loops=2917)
- FILTER: (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone)
- -> INDEX Scan USING quotes_2004_pk ON quotes_2004 qd (cost=0.00..7.05 ROWS=1 width=20) (actual TIME=0.006..0.006 ROWS=0 loops=2917)
- INDEX Cond: ((qd.cid = ci.cid) AND (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2005_pk ON quotes_2005 qd (cost=0.00..7.09 ROWS=1 width=20) (actual TIME=0.005..0.005 ROWS=0 loops=2917)
- INDEX Cond: ((qd.cid = ci.cid) AND (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2006_pk ON quotes_2006 qd (cost=0.00..7.17 ROWS=1 width=20) (actual TIME=0.005..0.005 ROWS=0 loops=2917)
- INDEX Cond: ((qd.cid = ci.cid) AND (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2007_pk ON quotes_2007 qd (cost=0.00..8.15 ROWS=1 width=20) (actual TIME=0.005..0.005 ROWS=0 loops=2917)
- INDEX Cond: ((qd.cid = ci.cid) AND (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2008_pk ON quotes_2008 qd (cost=0.00..8.33 ROWS=1 width=20) (actual TIME=0.005..0.005 ROWS=0 loops=2917)
- INDEX Cond: ((qd.cid = ci.cid) AND (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2009_pk ON quotes_2009 qd (cost=0.00..7.43 ROWS=1 width=20) (actual TIME=0.005..0.005 ROWS=0 loops=2917)
- INDEX Cond: ((qd.cid = ci.cid) AND (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2010_pk ON quotes_2010 qd (cost=0.00..7.37 ROWS=1 width=20) (actual TIME=0.005..0.005 ROWS=0 loops=2917)
- INDEX Cond: ((qd.cid = ci.cid) AND (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2011_pk ON quotes_2011 qd (cost=0.00..6.63 ROWS=1 width=20) (actual TIME=0.006..0.007 ROWS=1 loops=2917)
- INDEX Cond: ((qd.cid = ci.cid) AND (qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2012_td_idx ON quotes_2012 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2013_td_idx ON quotes_2013 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2014_td_idx ON quotes_2014 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2015_td_idx ON quotes_2015 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2016_td_idx ON quotes_2016 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2017_td_idx ON quotes_2017 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2018_td_idx ON quotes_2018 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2019_td_idx ON quotes_2019 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- -> INDEX Scan USING quotes_2020_td_idx ON quotes_2020 qd (cost=0.00..2.73 ROWS=1 width=30) (actual TIME=0.001..0.001 ROWS=0 loops=2917)
- INDEX Cond: ((qd.trade_date >= '2004-01-01 00:00:00'::TIMESTAMP WITHOUT TIME zone) AND (qd.trade_date = ev.eventdate))
- Total runtime: 723.502 ms
- (69 ROWS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement