- Optimize
connection management, ensure that the middle tier and programs that
connect to the database are efficient in connection management and do not
log on or off repeatedly
- Tune
the SQL using the available tools such as ADDM and SQL Tuning Advisor
- Ensure
that applications use bind variables, cursor sharing was
introduced to solve this problem
- Use packages and procedures (because
they are compiled) in place of anonymous PL/SQL blocks and big SQL
statements
- Use locally managed tablespaces and automatic segment space management to
help performance and simplify database administration
- Use
automatic undo management and temporary tablespace to
simplify administration and increase performance
- Ensure
you use large caching when using sequences, unless you
cannot afford to lose sequence during a crash
- Avoid
using DDL in production, it increases invalidations of the already parsed
SQL statements and they need to be recompiled
- Partion
tables and indexes to reduce index leaf contention (buffer busy global cr
problems)
- Optimize
contention on data blocks (hot spots) by avoiding small tables with too
many rows in a block
Now we can review RAC specific
best practices
- Consider
using application partitioning (see below)
- Consider
restricting DML-intensive users to using one instance, thus reducing cache
contention
- Keep
read-only tablespaces away from DML-intensive tablespaces, they only
require minimum resources thus optimizing Cache Fusion performance
- Avoid
auditing in RAC, this causes more shared library cache locks
- Use
full tables scans sparingly, it causes the GCS to service lots of block
requests, see table v$sysstat column "table scans
(long tables)"
- if
the application uses lots of logins, increase the value of sys.audsess$ sequence
No comments:
Post a Comment