Class: SqlLogging::Statistics
- Inherits:
-
Object
- Object
- SqlLogging::Statistics
- Extended by:
- Forwardable
- Defined in:
- lib/sql-logging/statistics.rb
Defined Under Namespace
Classes: Data
Class Method Summary collapse
- .configuration ⇒ Object
- .data ⇒ Object
- .log_report ⇒ Object
- .record_query(sql, name, msec, result) ⇒ Object
- .reset_statistics! ⇒ Object
Class Method Details
.configuration ⇒ Object
27 28 29 |
# File 'lib/sql-logging/statistics.rb', line 27 def configuration SqlLogging.configuration end |
.data ⇒ Object
36 37 38 |
# File 'lib/sql-logging/statistics.rb', line 36 def data @data ||= Data.new end |
.log_report ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/sql-logging/statistics.rb', line 59 def log_report logger.debug "SQL Logging: #{data.queries} statements executed" \ ", returning #{data.bytes} bytes" return unless top_queries? logger.debug "Top #{top_sql_queries} SQL executions:" sorted_keys = top_queries.keys.sort_by do |k| top_queries[k][show_top_sql_queries] end.reverse sorted_keys.slice(0..top_sql_queries).each do |key| query = top_queries[key] logger.debug format( ' Executed %d times in %.1fms (%.1f/%.1f/%.1fms min/median/max),' \ " returning %d rows(%d bytes):\n"\ " %s\n" \ " First exec was: %s\n" \ ' %s', query.queries, query.total_time, query.min_time, query.median_time, query.max_time, query.rows, query.bytes, query.name, query.sql, query.backtrace ) end end |
.record_query(sql, name, msec, result) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/sql-logging/statistics.rb', line 46 def record_query(sql, name, msec, result) return if name.blank? || name =~ / Columns$/ || name == :skip_logging ntuples, bytes = tuples_and_bytes_in_result(result) data.add_query(ntuples, bytes) backtrace = backtrace_cleaner.clean(caller).join("\n ") add_query_to_top_queries(sql, name, backtrace, msec, ntuples, bytes) logger.debug " #{ntuples} rows, #{bytes} bytes" logger.debug " #{backtrace}" if show_sql_backtrace end |
.reset_statistics! ⇒ Object
42 43 44 |
# File 'lib/sql-logging/statistics.rb', line 42 def reset_statistics! data.reset! end |