Skip to Main Content
  • Questions
  • Parameters to check that Schema separation really affect performance

Breadcrumb

Question and Answer

Chris Saxon

Thanks for the question, Prast.

Asked: February 17, 2022 - 6:53 am UTC

Last updated: February 18, 2022 - 1:34 pm UTC

Version: 12c

Viewed 10K+ times! This question is

You Asked

Hi,

I have this schema that contains a lot of tables (some 8000 tables which 7700 of them are generated automatically by the apps inner system).

I want to separate the system tables from the user tables by using different schemas, one schema for system, another one for user (storing just user data).

How do I prove that the action I take really increase performance ? What variables / parameters do I have to check ? I need to serve the before-and-after value on to a report.



Thanks

and Chris said...

Splitting tables into separate schemas can be a good idea.

But it's unlikely to have much impact on performance unless you're also rewriting the queries (beyond updating the schema).

Using different schemas is more about separation of duties and security. By default users have no access to tables in other schemas.

This improves security as you limit the data attackers can access if there are any vulnerabilities in the app.

It can also simplify testing and impact analysis, as you've decreased the number of tables that can be reached.

If you need to go ahead with performance analysis, then you'll want to conduct a load test, measuring things like:

- Mean, median, and max response times
- Mean, median, and max transactions/second

I doubt you'll find this has a major impact on performance though.

Is this answer out of date? If it is, please let us know via a Comment

More to Explore

Design

New to good database design? Check out Chris Saxon's full fundamentals class.