I recently learned that new tables shouldn't be created in the SYSTEM tablespace, so I copied them to a new tablespace called CAT_DAT. Also, I transfered the corresponding indexes (some generated by Oracle and others custom made) to the tablespace CAT_IDX. Since this time, the performance of the DB is very poor.
The user specified to draw from CAT_DAT and CAT_IDX is configured the same as the old user who drew from the SYSTEM tablespace. Is there something I can do to get the performance back up?
What exactly is the performance problem you're having? Are we talking about the entire database being slower or just queries against the tables you moved?
In the absence of this information try the following:
run explain plan for problem queries. Look for full table scans where index searches should be done.
run utlbstat/utlestat and analyze the results (report.txt)
If it is CHOOSE, FIRST_ROWS, ALL_ROWS then most probably CBO is employed (unless querie's hint overrides it)
If CBO is used, then statistics are important and must be checked if still available after moving table to new tablespace -> best of all if they are exactly the same as were before reorganization.
Creating new/modifying existing statistics can even make things worth.
Just for fun, if indexes are available and non CBO specific features are used(like partition pruning), try to set optimizer_mode=RULE