Query Reviewer plugin

Plugin details

This rails plugin not only runs "EXPLAIN" before each of your select queries in development, but provides a small DIV in the rendered output of each page with the summary of query warnings that it analyzed.

Websitehttp://code.google.com/p/query-reviewer/ Repositorygit://github.com/dsboulder/query_reviewer.git Author David Stevenson Tags query LicenseMIT

Documentation

Install the plugin:
ruby script/plugin install git://github.com/dsboulder/query_reviewer.git

QueryReviewer
=============

QueryReviewer is an advanced SQL query analyzer. It accomplishes the following goals:

* View all EXPLAIN output for all SELECT queries to generate a page (and optionally SHOW PROFILE ALL)
* Rate a page's SQL usage into one of three categories: OK, WARNING, CRITICAL
* Attach meaningful warnings to individual queries, and collections of queries
* Display interactive summary on page

All you have to do is install it. You can optionally run:

  rake query_reviewer:setup


Which will create config/query_reviewer.yml, see below for what these options mean. If you don't have a config file, the plugin will use the default in vendor/plugins/query_reviewer.


Configuration
=============

The configuration file allows you to set configuration parameters shared across all rails environment, as well as overriding those shared parameteres with environment-specific parameters (such as disabling analysis on production!)

* enabled: whether any output or query analysis is performed. Set this false in production!
* inject_view: controls whether the output automatically is injected before the in HTML output.
* profiling: when enabled, runs the MySQL SET PROFILING=1 for queries longer than the warn_duration_threshold / 2.0
* production_data: whether the duration of a query should be taken into account (if you don't have real data, don't let query duration effect you!)

* stack_trace_lines: number of lines of call stack to include in the "short" version of the stack trace
* trace_includes_vendor: whether the "short" verison of the stack trace should include files in /vendor
* trace_includes_lib: whether the "short" verison of the stack trace should include files in /lib

* warn_severity: the severity of problem that merits "WARNING" status
* critical_severity: the severity of problem that merits "CRITICAL" status

* warn_query_count: the number of queries in a single request that merits "WARNING" status
* critical_query_count: the number of queries in a single request that merits "CRITICAL" status

* warn_duration_threshold: how long a query must take in seconds (float) before it's considered "WARNING"
* critical_duration_threshold: how long a query must take in seconds (float) before it's considered "CRITICIAL"


Example
=======

If you disable the inject_view option, you'll need to manually put the analyzer's output into your view:

<%= query_review_output %>

Further Documentation

There is currently no advanced documentation for this plugin.

New documentation

Edit plugin | (0 older versions) | Last edited by: hardway, about 1 month ago