| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\ |
|
| | |
|
| |
| |
| |
| | |
Make it visible
|
|\ \
| |/ |
|
| | |
|
| | |
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
dependent
subquery when ORDER BY is present
Currently for setting r_limit we divide with the number of iterations we invoke the dependent subquery.
This is not needed for the case of limit. For varying limits we produce the output that the limit varies with
execution.
Also there is a type for filtered , we forgot to multiply by 100 as it is represented as a percent.
|
| |
| |
| |
| |
| | |
Currently explain format=json does not show the order direction of fields used during filesort.
This patch would remove this limitation
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
Patch submitted by Eugene Kosov <claprix@yandex.ru>,
comments added by commiter.
Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
|
|\ \
| |/ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
- Tabular EXPLAIN now prints "RECURSIVE UNION".
- There is a basic implementation of EXPLAIN FORMAT=JSON.
- it produces "recursive_union" JSON struct
- No other details or ANALYZE support, yet.
|
| | |
|
|/
|
|
| |
Show outer_ref_condition in EXPLAIN FORMAT=JSON output.
|
| |
|
|
|
|
| |
Remove debug printout that was accidentally left in place
|
| |
|
|
|
|
| |
- Add EXPLAIN/ANALYZE FORMAT=JSON handling for a few special cases.
|
|
|
|
| |
Printing non-trivial HAVING added.
|
|
|
|
|
|
|
|
| |
- Part 3: Adding mem_root to push_back() and push_front()
Other things:
- Added THD as an argument to some partition functions.
- Added memory overflow checking for XML tag's in read_xml()
|
|
|
|
|
|
|
|
| |
- Added mem_root to all calls to new Item
- Added private method operator new(size_t size) to Item to ensure that
we always use a mem_root when creating an item.
This saves use once call to current_thd per Item creation
|
|
|
|
|
|
|
| |
Added mandatory thd parameter to Item (and all derivative classes) constructor.
Added thd parameter to all routines that may create items.
Also removed "current_thd" from Item::Item. This reduced number of
pthread_getspecific() calls from 290 to 177 per OLTP RO transaction.
|
| |
|
|
|
|
|
|
|
| |
Fixes over the original patch:
- Fix variable/class/other names
- Fix the JSON output to be in line with the output of other JSON
constructs we produce
|
| |
|
|
|
|
|
| |
- Make ANALYZE correctly remember and report filesort() calls
- Temp.table use is collected but only basic info is reported.
|
|
|
|
|
|
| |
Added THD argument to select_result and all derivative classes.
This reduces number of pthread_getspecific calls from 796 to 776 per OLTP RO
transaction.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sql_alloc() has additional costs compared to direct mem_root allocation:
- function call: it is defined in a separate translation unit and can't be
inlined
- it needs to call pthread_getspecific() to get THD::mem_root
It is called dozens of times implicitely at least by:
- List<>::push_back()
- List<>::push_front()
- new (for Sql_alloc derived classes)
- sql_memdup()
Replaced lots of implicit sql_alloc() calls with direct mem_root allocation,
passing through THD pointer whenever it is needed.
Number of sql_alloc() calls reduced 345 -> 41 per OLTP RO transaction.
pthread_getspecific() overhead dropped 0.76 -> 0.59
sql_alloc() overhed dropped 0.25 -> 0.06
|
| |
|
|
|
|
|
| |
Fix EXPLAIN FORMAT=JSON to produce output that's not worse than
the tabular form.
|
|\ |
|
| | |
|
| | |
|
|/
|
|
| |
Provide basic info about sorting/grouping done by the queries.
|
|
|
|
|
|
|
| |
(Based on original patch by Sanja Byelkin)
Make the code that produces JSON output handle LooseScan quick select.
The output we produce is compatible with MySQL 5.6.
|
|
|
|
|
|
|
|
|
| |
- Remove ANALYZE's timing code off the the execution path of regular
SELECTs.
- Improve the tracker that tracks counts/execution times of SELECTs or
DML statements:
= regular execution just increments counters
= ANALYZE will also collect timings.
|
|
|
|
| |
Print r_rows. There is no table tracking for reading from tmp table, yet.
|
| |
|
|
|
|
|
|
| |
Tracking total time added in UPDATE/DELETE
Fixed selectivity calculation in UPDATE/DELETE
Macro definitions of time tracting fixed.
|
|
|
|
|
|
| |
Switch from relying on PERFORMANCE_SCHEMA to using our
own hooks for counting the time spent reading rows from
tables.
|
|
|
|
|
|
|
|
|
| |
Show total execution time (r_total_time_ms) for various parts of the
query:
1. time spent in SELECTs
2. time spent reading rows from storage engines
#2 currently gets the data from P_S.
|
|
|
|
| |
Change r_rows to be double
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Changed 0x%lx -> %p
array.c:
- Static (preallocated) buffer can now be anywhere
my_sys.h
- Define MY_INIT_BUFFER_USED
sql_delete.cc & sql_lex.cc
- Use memroot when allocating classes (avoids call to current_thd)
sql_explain.h:
- Use preallocated buffers
sql_explain.cc:
- Use preallocated buffers and memroot
sql_select.cc:
- Use multi_alloc_root() instead of many alloc_root()
- Update calls to Explain
|