Week of Monday 18th February
Usability
Replaced popovers with modal dialogues - hopefully these will interfere less with people exploring the data, be easier to read from start to finish and possible to copy text from
Week of Monday 11th February
Core logic
Added a tip/anti-tip pair to describe whether or not there were trips to the heap on an index-only scan
Added a tip to recommend an index-only scan on slow index scans
Usability
Improved rendering of tree view at higher zoom levels/dpi
Tweaked spacing of buttons on input page on smaller screens
Week of Monday 4th February
Core logic
Tweaked the logic for when we advise investigating adding an index to speed up a sequential scan, and what information is shown in different circumstances.
Usability
Improved description of timing to make it clearer that we are showing wall clock time
Change wording on operations already running quickly to be more clear this is a positive thing!
Change information given when row estimates are perfect to state that this is the case and give a more concise summary of the data
Change tips icon to a lightbulb to show this is an opportunity/suggestion to improve 💡
Change “no tips” icon to a tick to show that this aspect is currently working well
Bugfixes
Fixed an issue whereby if the rows produced by an operation and the query as a whole were both zero, the user could receive a tip saying some the rows produced by the operation were unused
Fix temperamental link to this changelog
Week of Monday 28th January
Core logic
Made it clearer when the app is referring to rows per iteration, and when total rows, in the same way as with times. Also improved the “rows discarded” tip to look at total rows rather than rows per iteration
Support for parallel queries: make sure wall clock time rather than cpu time is displayed (and used for calculations), and show the number of threads used.
Improve code generation for Aggregate nodes, to specify which functions are being called, eg SUM or MAX
Added a tip for slow sorts to suggest an ordered index
Usability
Improved messaging around errors, particularly unexpected ones and session timeouts
Added a new example that showcases some of the new features
Reorder the tips so that more specific (hopefully roughly the same as relevant) ones are more likely to appear at the top
Improved wording of sequential scan tip to make it clearer what the solution is
Tidied up buttons, making them larger and more evenly sized/spaced
Week of Monday 21st January
Core logic
Added support for CTE scans, including operation description, code generation and related tips
Usability
Created changelog and added link from the app
Change colour scheme to improve readability, increase emphasis of highlighted elements and reduce glare (night mode)
Replaced example query plan with a more realistic one
Bugfixes
Fixed an issue whereby cache hits/misses for an operation included those of child operations
Fixed an issue which caused users trying to navigate to the “explore” results page of the app from a webpage outside the app to be redirected to the initial “input” page of the app
Fixed a floating-point issue where loops could be presented as taking eg 0.2159999999999ms
Fixed a bug whereby an operation with lots of loops, each of which took a negligible (< 0.0005ms) time, could be described as having negative loop/total execution time
Week of Monday 14th January
Core logic
Support for loops: correct operation time calculations, and show time breakdown when an operation is executed more than once (“Actual Loops” > 1)
If a Nested Loop node causes a node to be executed a lot, consider it a significant operation, and add a tip to point out it contributes more than is obvious to the query time
Improve the “unused rows” tip to be less easily fooled by aggregating together rows, and specify which node is discarding the rows in the advice
Show the “bad row count estimate” tip for less incorrect estimates, and include the degree of the error in the advice given
Usability
Add an indicator (💛) to tree nodes for operations which have a tip
Added advice on how to get a query plan using psql
Add a link to allow users to submit feedback via email
Make the technical information on the operation popover more prominent, and reorder the values to be more readable
Colour adjustments to improve legibility
Improve wording of operation descriptions
Bugfixes
Correct bug that meant the “Index Name” field was sometimes not shown in the operation popover
Fix a bug that meant that submitting a plan with 0 expected or actual rows would have caused an error
Week of Monday 7th January
Core logic
Add descriptions for the different read and join operations (eg sequential/index scan, hash join, nested loop etc)
Usability
Add routing logic, so browser back/forward buttons work between different plan views and the input view
Add a link to allow users to logout
Stop annoying horizontal jumping when switching between explore/input views by forcing the vertical scroll bar to appear on both pages
Bugfixes
Fix an issue whereby, if the generated code for an operation was too long, the information popover would flicker and be impossible to view
Fix an issue which would have allowed cross-site scripting attacks if hosted on localhost
Fix a UI issue which caused tree node lozenges to be cut off in Firefox
Week of Monday 31st December
Core logic
In the operation popover, include an example of the code that the node might represent
Add a description of the operation to the operation popover
Usability
Correct alignment of “advice” icons (💛) with text
Show a loading spinny on initial page view, as the javascript is loading.
Round off the corners joining the lines on the tree
Week of Monday 17th December
Core logic
Add in a graphical view of the operations in the query plan as a tree
Add a tip for when the rows produced by an operation do not seem to be used. This replaces the old tip which was shown whenever the number of rows produced by an operation was deemed to be large
Stop showing the number of loops for an operation, and show the number of rows returned
Usability
Allow clicking on an operation in the performance table or tree view to highlight it in both views
Remove the advice on how to obtain a query plan using psql
Week of Monday 10th December
Core logic
Link to in-depth articles to explain tips in detail
Show “anti-tips” - aspects of an operation that are functioning well and don’t need any attention. For example, all the data has been read from the cache, or the row count estimate is accurate
Tweaks to how we calculate which operations are worth focusing on to improve query performance.
Add a popover for each of the table column headers to explain what the column means
Usability
Move detailed explanation of tips into a popover to make the tips column less cluttered
Sort table initially by ID rather than by time, to make it represent the text query plan
Always sort the table rows in their natural order, depending on the column (eg descending when sorted by times, ascending when sorted by ID), rather than allowing sorting in either direction.
Add an indicator to show which column the table is currently sorted on
Refinement of tip wording