Firebird Training

IBSurgeon offers Firebird online training (Skype and TeamViewer conference) for the following topics (in English):
  • Optimization of Firebird queries (5-6 hours) - EUR 250/particpant (with volume discounts)
  • How Firebird transactions work  (3-4 hours) -  EUR 210/particpant (with volume discounts)
  • InterBase Administration Training (5-6 hours) - EUR 250/participant (with volume discounts)
Each training consists of 2-3 sessions, (1-2 hours each) and includes materials (set of PDF, SQL scripts). Normally training is split into 2-3 workdays.
You can see the detailed outline for the training below.
Contact us for the quote now.

Optimization of Firebird queries

Performance of SELECT queries

How query is executed:

  •  Client-server approach
  •  Prepare
  •  Plan generation
  •  Execution
  •  Fetches
  •  Buffering

 Performance execution statistics counters:

  •  Reads, Writes, Fetches, Time
  •  Database cache, Disk, CPU
  •  How garbage impacts on queries execution
  •  Cache hits (Classic vs SuperServer

 Access methods/data paths

  •  NATURAL scan
  •  INDEX search
    •  How indices work: B-Trees, record pointers
    •  Indices direction
    •  Examples
  •  Forced INDEX usage
  •  Bit merge of indices
  •  Table cardinality, index selectivity
  •  Turning off indices in WHERE
  •  Index ORDER
  •  SORT
    •  Firebird.conf settings
  •  Differences between index ORDER and SORT
  •  Turning off indices in ORDER BY, GROUP BY
  •  Plans in stored procedures
  •  Plans in VIEWs 

 Queries tuning

  •  PLAN – how to read and understand it
  •  Firebird optimizer tweaks
  •  WHERE FIELD IN (X1, X2, X3...
  •  JOIN
    •  Implicit, explicit
    •  Wrong JOINS
    •  LEFT, RIGHT
    •  Self-JOINS
  •  IN
    •  Exists
    •  Merge
  •  WHERE (X and Y) or (K and  N) 

 Tracking slow and resource-consuming queries through the MON$ and Trace API

  •  What are MON$ and Trace
  •  MON$ tables fields – what they mean
  •  TraceAPI parameters and output
  •  Tools
Contact us for the quote now.


How Firebird transactions work

  • How versions are being created
  • States of transaction in Firebird (active, committed, rolled back, limbo)
  • Visibility of record versions in transactions
  • Key differences between Read Committed and Snapshot
  • Triggers for transactions start and stop
  • Context variables at transaction level
  • What happens at transactions’ start
  • Global transaction markers (OAT, OST, OIT) and their meaning
  • What happens at transaction commit
  • Standard rollback with cache flush
  • Forced rollback without cache flush
  • Rollback transactions with undo-log
  • Rollback without undo-log
  • What is retaining transaction
  • Temporary BLOBs
  • Undo-log
  • Auto-commit (does anybody know about it?)
  • Managing memory for transactions
  • Local TIP and related issues
  • Transactions interaction and best practices for application development. Conflicts between transactions.
  • Templates for transaction usage in application development
  • Scenarios breakdown: Readers and Readers, Readers and Writers, Writers and Writers
  • Best practices
  • Garbage collection mechanism and sweep in details
  • Differences between sweep and garbage collection
  • Autosweep: pro and contras
  • Examples of application design mistakes which lead to excessive garbage
  • Diagnosing transaction management problems: most prevalent problems, how to catch and fix them.
  • OIT, OST, OAT, NEXT — their combinations and what they mean
  • When the garbage collection does not work?
  • How to determine quantity of garbage versions
  • How to find long transactions with MON$ tables
  • Transactions monitoring with MON$ and TraceAPI.
  • Legacy applications: workarounds for error in transactions management

Contact us for the quote now.

Subscribe to IBSurgeon news