trace_processor: improve best index for thread table

The thread table was relying on only the first constraint to be the utid
constraint but with some joins (e.g.
select sum(dur) from sched join thread using(utid) where upid = 15;),
the constraint on the upid comes first. This caused incorrect BestIndex
cost estimation which made SQLite choose bad subqueries with queries
like this.

Allow any constraint to be on utid to help speed up queries like this.

Change-Id: Ibc3a31cdd7a48a4ee499807e2d21775eb18fd058
1 file changed
tree: 0210f2703d2c5049fa7e97746215a23562dfeb9e
  1. build_overrides/
  2. buildtools/
  3. debian/
  4. docs/
  5. gn/
  6. include/
  7. infra/
  8. protos/
  9. src/
  10. test/
  11. tools/
  12. ui/
  13. .clang-format
  14. .gitignore
  15. .gn
  16. .travis.yml
  17. Android.bp
  18. Android.bp.extras
  19. BUILD.gn
  20. codereview.settings
  21. heapprofd.rc
  22. MODULE_LICENSE_APACHE2
  23. NOTICE
  24. OWNERS
  25. perfetto.rc
  26. PRESUBMIT.py
  27. README.chromium
  28. README.md
README.md

Perfetto - Performance instrumentation and tracing

Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.

See www.perfetto.dev for docs.

Bugs

  • For bugs affecting Android or the tracing internals use the internal bug tracker (go/perfetto-bugs).
  • For bugs affecting Chrome use http://crbug.com, Component:Speed>Tracing label:Perfetto.