Thursday, November 1, 2012

RAC Performance Tuning Goal


  • 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 variablescursor 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