Performance metrics graph with server optimization abstract visuals

Course

Odoo Performance Mastery

A practical, intensive course on finding and eliminating performance bottlenecks in Odoo at the ORM, SQL, Python, and server layers.

Level: Middle Duration: 60min + 30min Q&A
#odoo #performance #scalability #postgresql #profiling #optimization

A fast-paced course for Odoo developers who want to stop guessing and start systematically diagnosing and fixing performance issues. No theory for the sake of theory — real bottlenecks, real tools, real profiling.

What You’ll Gain

  • Understanding of how Odoo actually spends time: ORM, caching, SQL, RPC, views, workers.
  • Ability to quickly locate bottlenecks using profiling tools, logs, statistics, and structured methods.
  • Clear patterns for writing fast and predictable business logic.
  • Skill to prepare Odoo for heavy data loads, large teams, and high-traffic systems.

Course Modules

1. Odoo Performance Foundations

1 lesson

Build a mental model of where performance is lost in Odoo — and what to measure first.

  • What “performance” means in Odoo:

  • ORM cost model: prefetching, lazy reads, cache hits/misses.

  • SQL cost model: joins, locks, sequential scans.
  • Worker model: concurrency, gevent, I/O.
  • Reading Odoo’s logs for performance: query timings, prefetching statistics, RPC timings.
  • Identifying slow patterns without tools: the “smell test”.
  • Homework: analyze a provided log and locate the 3 most probable bottlenecks.

2. ORM, Python & Business Logic Optimization

1 lesson

Learn to write code that scales — and fix common bottlenecks introduced by developers.

  • ORM anti-patterns and how to rewrite them:

  • Loops of .search() or .browse().

  • Massive mapped()/filtered() on recordsets.
  • Wrong compute/store usage.
  • Improper domain construction.
  • Caching: how the Odoo cache works, cache poisoning, cache invalidation traps.
  • When to drop to SQL: safe patterns for hand-written queries, read_group, batching techniques.
  • Profiling Python in Odoo: cProfile, profilehooks, Odoo internal timing tools.
  • Homework: refactor a slow method using ORM wins + apply profiling to show improvement.

3. PostgreSQL & Server-Side Optimization

1 lesson

Go deeper: understand what happens in PostgreSQL and how server configuration impacts performance.

  • PostgreSQL diagnostics:

  • EXPLAIN (ANALYZE, BUFFERS) — reading execution plans.

  • Locks, deadlocks, slow queries, vacuum & analyze.
  • Indexing strategies for Odoo models.
  • Key server tuning:

  • workers, gevent, max_cron_threads, db_maxconn.

  • Impact of memory settings, I/O, network latency.
  • Multi-worker performance pitfalls: cache isolation, concurrency issues, duplicate work.
  • Homework: analyze execution plan for a provided query and propose an index or rewrite.

4. Frontend, Assets, Long Transactions & Final Strategy

1 lesson

Combine all layers into a single diagnostic strategy that works in real production environments.

  • Frontend/HTTP:

  • Slow controllers, large payloads, over-rendered views.

  • Assets, lazy loading, RPC batching.
  • Queueing, cron, long transactions:

  • Preventing locks and huge commits.

  • Splitting long jobs safely.
  • Load-testing Odoo (practical methods without expensive tools).
  • A complete end-to-end workflow for diagnosing any performance issue.
  • Final mini-project: define performance strategy for a given scenario (e-commerce, WMS, heavy accounting, etc.).

Contacts

Email: aghanimoff@gmail.com
Telegram: @aghanimoff
LinkedIn: Valerii Sharlai