I like the idea of Virtual Layers, but when they are too big and constructed from complex queries, QGIS takes a lot of time to redraw it (it seems like it recalculates the entire layer at every zoom/pan/etc).
My workaround is to export Virtual Layer to GeoPackage format and continue to work with that.
In my case, Virtual Layer is often just an intermediate to be processed with further tools and I do not need it long term. I would rather save it as "Temporary scratch layer", just like many Processing tools do.
Is there a way to do so?
