Suja,
Assuming that the 32 sprints are intended to be run consecutively, as part of a single project, then you'll likely only require one instance of virtual database (VDB) which you might provision once and refresh 31 times?
Or, if you plan all 32 sprints consecutively, to be run consecutively, as part of 32 separate projects, then you'll likely be provisioning 32 VDBs to start with, and then refreshing them N times (where N is the number of sprint iterations per project)?
Either way, following each provision or refresh, you'll be initializing each VDB with test data for the sprint. You'll use the same mechanism to insert that data as always (i.e. import, script, etc) because a VDB is manipulated like any other database.
From a storage standpoint, immediately following a provision or refresh, a VDB consumes no storage of its own, temporarily sharing all storage with its dSource. But as changes are made to the VDB, those "deltas" comprise the storage consumed by the VDB. Thus initializing the test data for the sprint will consume storage within the Delphix virtualization engine on behalf of the VDB, and then the test cases themselves, when making modifications, will consume more storage.
Be aware too that Delphix data virtualization deduplicates and compresses database blocks/pages, so the storage consumed within the engine is generally much less than the "unvirtualized" total reflected by the database. So while changes or deltas are being stored, they are compressed.
But the main thing to understand is that Delphix VDBs consume storage due to changes made. A read-only VDB consumes no storage of its own.
Does that make sense?
Please let me know what you think?
Thanks!
-Tim