Database Reference
In-Depth Information
in the global enqueue layer, even if the package is validated by an initial session, other sessions must acquire global
locks, verify the package state, and only then proceed further. 8 This behavior affects application availability severely.
Our recommendation is that you avoid deploying application changes during busy hours or perform application
rollout in a controlled maintenance window. Even creating an index on a critical table has the ability to cause major
application downtime due to globalized library cache locks and pins.
Similarly, massive data changes should be performed during off hours. Excessive amount of undo block access
might be required if user sessions try to access modified blocks.
Summary
Better-designed applications that scale well in a single-instance database will scale even better in a RAC database.
With a few simple application design strategies, such as objects designed with scalability in mind, optimal use of
sequences, and application affinity, you can give your application a scalability boost. We realize there are some
potential contradictions in our recommendations; for example, we recommend decreasing the number of indexes in a
table and also decreasing logical reads, which might require more indexes. Instead of following our recommendations
unquestioningly, use a balanced approach, understand the reasoning behind the recommendation, and then apply
the principles to match your scenario. The ultimate goal is to reduce application wait time and increase the scalability
of the application.
8 You can reduce the dependency chain by creating cascading packages. See, for example, Expert PL/SQL Practices for Oracle
Developers and DBAs (Apress, 2011), specifically Chapter 15 “Dependencies and Invalidations”, by Arup Nanda.
 
Search WWH ::




Custom Search