Where does VDATA reside?
The VDATA virtual table is created in memory by the relevant CDSC. However, the values for only the current row are held in memory at any one time, because there would not be enough memory to hold all of the rows for a large data set in memory.
Is each row in VDATA a complete record or is it restricted to the results of the query?
The VDATA row is based on the query. For example, when you use the following query, each VDATA row contains only age and gender.
SELECT age, gender
FROM VDATA
What are the performance implications of holding only one row in memory?
Performance optimization is always a trade-off between better performance and resource use. Performance can usually be improved by using more memory, but the need to handle large data sets means that it would not always be possible to hold the entire VDATA table in memory at one time.
See also