Repository navigation
v0.5.0
Highlights
- Monitor drill-downs (Oracle). The dashboard now leads to what it counts: sessions, statements, wait events, tablespaces and memory. Sessions and statements get new detail views. Where the management packs are enabled, they include Active Session History, AWR plan history and SQL Monitor reports (#74).
- Debug… from the object browser and program windows. Start the debugger on a procedure, function or package member. It stops on entry with no breakpoint needed (#71).
- One active connection for the whole app. The toolbar, object browser, status bar and SQL windows all work on the same connection, so a statement no longer runs on a different database than the one the browser shows (#80).
- MySQL. Thread details open from the dashboard (#87), and the database picked in the object browser is the one SQL windows use (#81).
- WSL. Pythia no longer brings down WSLg, which used to close every Linux GUI window (#88).
Added
Monitor (Oracle) (#74)
- Dashboard links. Each of these opens its details:
- the Sessions tile opens the session list, and Blocked sessions opens the blocking tree;
- wait classes and the user, program and machine bars open the session list filtered to them, with the filter shown as a chip;
- Most open cursors opens that session's cursors, and a long operation opens its session;
- a blocking finding has Details on the blocker.
- Session details open on a new Overview:
- client and connection: OS user, machine, client process and driver, service, network encryption;
- the open transaction, PGA, temp space and active sorts, long operations;
- the PL/SQL being run, with a link to the subprogram;
- where its time went (time model) and its waits since logon.
- More in session details:
- captured bind values, and the session's own plan with peeked binds;
- statistics as the change since the last refresh, open cursors grouped by SQL_ID, and All columns of
V$SESSION; - locked tables and the row a session waits for open in the IDE;
- each tab loads when first shown.
- Session ⏷ menu: cancel its SQL, kill it, Disconnect after transaction, and turn SQL trace on or off. Blocked by and the sessions it blocks are links. The kill dialog says how much of an open transaction gets rolled back.
- SQL details, a tab per statement:
- totals and per-execution figures;
- child cursors with plan hash, bind awareness and SQL profile, baseline or patch;
- each child's plan, with actual rows when they were measured;
- captured binds, why the cursor isn't shared, and the sessions running it.
It opens from Top SQL, the session list and session details.
- Top wait events since the last refresh. Each event opens the sessions waiting on it and its latency histogram.
- History of a session or a statement:
- Diagnostics Pack: the last hour of Active Session History, an ASH report filtered to just it, and the plans AWR kept;
- Tuning Pack: the executions SQL Monitor watched, with their reports as text or HTML;
- a pack that isn't enabled says so, and its views aren't queried.
- Tablespaces unfold into their files and largest segments, or the sessions using a temporary tablespace. The PGA bar unfolds the sessions using the most.
MySQL
- Thread details, from the thread ids in the dashboard's running statements, open transactions and lock waits (#87):
- how it connected: program, client library and version;
- the statement it runs or ran last, with
EXPLAIN FOR CONNECTION; - its transaction, and the data and metadata locks it holds or waits for;
- its recent statements.
Kill query and Kill connection ask first and say what a kill rolls back.
Editor
- Debug… next to Test… on procedures, functions and package members. It opens the test block and debugs it right away, stopping on entry to the subprogram (any overload); the unit is compiled with debug information first. In a program window, right-clicking a subprogram in the spec, or a public one in the body, offers Test… and Debug… too (#71).
- Compile all has a tooltip: it compiles the specification, then the body, and stops at the first error (#78).
Changed
- Active connection:
- Connecting, the object browser's connection picker and the toolbar's connection menu switch it.
- SQL windows with an open transaction or a running statement ask before switching.
- Other connections stay open to switch back to, and disconnecting the active one hands over to another.
- Program windows and object views keep their connection and name it in their tab.
- With Switch connection per window on, SQL windows keep their own connections as before (#80).
- MySQL: the database picked in the object browser is the connection's database. Open SQL windows switch to it and new ones start in it, instead of failing with "No database selected". The toolbar and status bar show the current database (#81).
- The SQL and program editors fill their tab instead of sitting in a 22 px gray frame (#86).
Fixed
- WSL: WSLg's compositor crashes when a Wayland app grows a shared-memory buffer pool, as Pythia did for each new mouse cursor shape (microsoft/wslg#1386). Under WSLg Pythia now opens its window through X11 (Xwayland);
PYTHIA_WAYLAND=1keeps Wayland (#88). - Windows:
pythia.execarries Pythia's icon and version. The taskbar, Start menu, shortcuts and Explorer show Pythia's icon, and Task Manager lists it as Pythia (#77). - Test… on an overloaded package subprogram tests that overload, not always the first one (#85).
- Clicking an entry in the completion list inserts it. Before, only the keyboard worked (#72).
- Session details show an open cursor's whole statement, not the first 60 characters (#73).
- Session details of an ended session no longer show data of the session that took over its SID. A blocker missing from the session list no longer offers actions with a guessed serial# (#75).
- The monitor names objects, rows and TM-locked tables in every schema, not only those the monitoring user can see (#76).
- Trace analyzer: statements re-run through a cached cursor are counted each time (#79).
- MySQL errors read
ERROR 1046 (3D000): …without anORA-prefix (#82). - MySQL: the database picker no longer lists a
PUBLICdatabase (#83). - After disconnecting one of several connections, Execute in a window that was on it runs on the active connection instead of opening the Connect dialog (#84).
Downloads
Every package comes in two flavors:
pythia_…/pythia-v0.5.0-<platform>…: the pure-Rust Oracle driver, so no Oracle client is needed. Take this one unless you need the other.pythia-instantclient_…/…-instantclient: uses the Oracle Instant Client, which you install yourself. You need it for Oracle 11.2, servers that require Native Network Encryption, and OS or wallet logins.
Installing one flavor replaces the other; settings and connections stay.
| Platform | Packages |
|---|---|
| Linux x86_64 | .deb, .AppImage, .tar.gz |
| Windows x86_64 | .msi, -setup.exe, .zip |
macOS (Apple Silicon aarch64, Intel x64) |
.dmg, .tar.gz |
SHA256SUMS.txt has the checksums of all files.
Full changelog: CHANGELOG.md · compare v0.4.1...v0.5.0