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?
Check the status of the indexes. They might have become invalid and hence your applications might be running slow. If that is the case, rebuild the indexes.
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)
The response time in querying the moved tables is where the performance problem lies. The rest of the DB is fine. Everything is on the same disk (redo logs, indexes, Oracle binaries, etc.).
Why don't you try this. Reorganize the new tablespace contents once by EXPORT and IMPORT, and then check the Execution plan for your queries whether the indexes are properly used or not.
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
Bookmarks