Details
-
Type:
Bug
-
Status: Stalled
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 10.1
-
Fix Version/s: 10.1
-
Component/s: None
-
Labels:None
-
Epic Link:
-
Sprint:10.1.6-1, 10.1.6-2, 10.1.8-1
Description
Data comes from Sandy Bridge system running sysbench OLTP RO in 1 thread against 1 table.
Call graphs:
- 0.29% mysqld mysqld
- Item_field::used_tables() const
+ 16.02% Item::const_item() const
+ 13.23% JOIN::prepare(Item***, TABLE_LIST*, unsigned int, Item*, unsigned int, st_order*, bool, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*)
+ 11.63% Item_func::update_used_tables()
+ 8.13% JOIN::optimize_inner()
+ 6.51% build_equal_items_for_cond(THD*, Item*, COND_EQUAL*, bool)
+ 5.63% st_select_lex::update_used_tables()
+ 5.11% setup_fields(THD*, Item**, List<Item>&, enum_mark_columns, List<Item>*, bool)
+ 5.03% Item_equal::update_const()
+ 4.33% Item_equal::update_used_tables()
+ 4.08% Item_func::fix_fields(THD*, Item**)
+ 4.07% Item_func::eval_not_null_tables(unsigned char*)
+ 3.44% Item_equal::fix_fields(THD*, Item**)
+ 2.52% JOIN::optimize()
+ 1.96% Arg_comparator::cache_converted_constant(THD*, Item**, Item**, Item_result)
+ 1.43% Item_sum::check_sum_func(THD*, Item**)
+ 1.42% make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*)
+ 1.11% add_key_fields(JOIN*, key_field_t**, unsigned int*, Item*, unsigned long long, st_sargable_param**)
+ 0.77% setup_conds(THD*, TABLE_LIST*, List<TABLE_LIST>&, Item**)
+ 0.75% Item_func_between::fix_fields(THD*, Item**)
+ 0.74% Item_sum::update_used_tables()
+ 0.66% is_local_field(Item*)
This is virtual method which can't be inlined. Most time spent for function call convention. Check if we can revoke it's virtual status.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
I doubts we can remove virtual status, but we can check how it is called, frequently such functions called several times in a row instead of 1 call with storing result...