Class: AwesomeExplain::Stats::PostgreSQL
- Inherits:
-
Object
- Object
- AwesomeExplain::Stats::PostgreSQL
- Defined in:
- lib/awesome_explain/stats/postgresql.rb
Class Method Summary collapse
- .dml_stats_sql ⇒ Object
- .seq_scans_sql ⇒ Object
- .upsert! ⇒ Object
- .upsert_dml_stats! ⇒ Object
- .upsert_seq_scans! ⇒ Object
Class Method Details
.dml_stats_sql ⇒ Object
49 50 51 |
# File 'lib/awesome_explain/stats/postgresql.rb', line 49 def self.dml_stats_sql "SELECT schemaname as schema_name, relname as table_name, n_tup_ins, n_tup_upd, n_tup_del FROM pg_stat_user_tables" end |
.seq_scans_sql ⇒ Object
45 46 47 |
# File 'lib/awesome_explain/stats/postgresql.rb', line 45 def self.seq_scans_sql "select schemaname as schema_name, relname as table_name, seq_scan, seq_tup_read, idx_scan, idx_tup_fetch, pg_relation_size(schemaname::text || '.'::text || relname::text) as size_bytes from pg_stat_user_tables" end |
.upsert! ⇒ Object
4 5 6 7 |
# File 'lib/awesome_explain/stats/postgresql.rb', line 4 def self.upsert! upsert_seq_scans! upsert_dml_stats! end |
.upsert_dml_stats! ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/awesome_explain/stats/postgresql.rb', line 28 def self.upsert_dml_stats! result = ActiveRecord::Base.connection.execute(dml_stats_sql).to_a result.each do |row| row = OpenStruct.new(row) pg_dml_stat = AwesomeExplain::PgDmlStat.find_or_create_by({ schema_name: row.schema_name, table_name: row.table_name }) pg_dml_stat.update({ total_inserts: row.n_tup_ins, total_updates: row.n_tup_upd, total_deletes: row.n_tup_del, }) end end |
.upsert_seq_scans! ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/awesome_explain/stats/postgresql.rb', line 9 def self.upsert_seq_scans! result = ActiveRecord::Base.connection.execute(seq_scans_sql).to_a result.each do |row| row = OpenStruct.new(row) pg_seq_scan = AwesomeExplain::PgSeqScan.find_or_create_by({ schema_name: row.schema_name, table_name: row.table_name }) pg_seq_scan.update({ seq_scan: row.seq_scan, seq_tup_read: row.seq_tup_read, idx_scan: row.idx_scan, idx_tup_fetch: row.idx_tup_fetch, size_bytes: row.size_bytes }) end end |