Here is a simple idea that could make it easier to read the execution plan of queries that have multiple references to the same table, possibly via views: make the row source aliases sufficiently distinctive that they would identify the view. Perhaps even have the alias include the name of view.
This is not exclusive to PeopleSoft, except that PeopleSoft uses views very heavily.
First here is a very simple test example. I'll create a table and a view on the same table.
Now lets look at an execution plan of a query that joins the views.
From just the execution plan it is impossible to tell which INDEX SCAN is from which view.
But the predicate information helps us. The nested loop is driven from the reference to T in the view V to the table T.
The row source alias of the object appears in the predicate, but only if it is specified on that column in either the select list of the criteria. But now we can determine which operation relates to whivj reference.
Here is part of a simple SQL statement generated by nVIsion.
Both PS_XX_RT_RATE_QVW and PS_XX_RT_RATE_Q_VW are views on PS_RT_RATE_TBL. We can see from the execution plan that Oracle has chosen to use one index in one view and another index in another. But which in which?
But I have used the name of the query as the row source alias for the table PS_RT_RATE_TBL in these views, and that alias now appears in the Predicate Information.
So it now very obvious which view in the from clause is responsible for which access of the rate table at operations 6 and 9 in this plan.