public
Description: 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.
Homepage: http://code.google.com/p/query-reviewer/
Clone URL: git://github.com/dsboulder/query_reviewer.git
query_reviewer / README
100644 52 lines (33 sloc) 2.527 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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 </body> 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 %>
 
 
Copyright (c) 2007-2008 Kongregate & David Stevenson, released under the MIT license