This is an observation that came up on the Oracle Developer Forum a couple of days ago, starting life as the fairly common problem:
I have a “select” that runs quickly but when I use in a “create as select” it runs very slowly.
In many cases this simply means that the query was a distributed query and the plan changed because the driving site changed from the remote to the local server. There are a couple of other reasons, but distributed DML is the one most commonly seen.
In this example, though, the query was not a distributed query, it was a fully local query. There were three features to the query that were possibly suspect, though: