Well, didn't you have a look at the documentation first ? (look for "FLUSH SHARED_POOL Clause")
I don't see what I can add to this... If you flush the shared pool, you lose all data dictionary as well as PLSQL and SQL contexts that were cached. This is not to be done in general, but can be useful in some test situations when you want no SQL cached, for example, because you want to be sure you will get a hard parse (the whole SQL context creation = context not found in the shared pool, syntax check, underlying objects check, execution plan creation, save context in the shared pool, query execution).
In general of course you want your shared pool filled with re-used, well written queries with nice bind variables .
HTH & Regards,
ORA-000TK : No bind variable detected... Shared Pool Alert code 5 - Nuclear query ready .