I recently encountered a bug related to MView log causing very high library cache: mutex x wait events.
I will brief about the debugging steps I tried and fix for the same.
Few things to note before I proceed:-
- We observed huge wait events for library cache: mutex X whenever we performed flip to standby or when DB was bounced. I am implying that library cache was cold and didn’t had required cursor information and object handles.
- Load on the (more...)
In my previous article on Latches, I mentioned various things related to latches including different types and their behavior.
In this article I will describe similar things about mutexes.
Mutex are low level serialization / locking mechanism to protect memory structure inside library cache.
Why there was a change from Latches ?
Mutex was introduced from 10.2 onwards and have been proved very efficient in managing library cache operations.
Mutex takes less memory then latches. Typically latch (more...)
Latches are low level serialization mechanism which protects memory areas inside SGA. They are light wait and less sophesticated than enqueues and can be acquired and released very quickly.
Latch acquisition does not involve any complex algorithm and is based on test-and-set atomic instruction of a computer processor.
Latch can be classified in multiple ways:-
Shared latch and exclusive latch:
Shared latch is the one which can be shared by multiple processes/sessions.
This is a brief article about workload management in RAC. I tried to cover different components of workload management in RAC and how they are configured at client side or server side. I haven’t gone into details of configuration steps but just mentioned in brief about how it can be done.
Readers are advised to refer Oracle documentation to understand details about configuration of workload management.
Workload management on RAC
There are 2 major components (more...)
This Question came to my mind when I was discussing “direct path reads” with DBA candidates. I was surprised that many DBAs were not aware of object level checkpoint that happens while doing direct path read. So I thought many DBAs may not be knowing different level of checkpoints that happens in the database and hence the question.
Well, the answer is 7 (as per my knowledge). Oracle does 7 different checkpoints at various stages. Lets check out what (more...)
Recently I was engaged to convert the character set for few MySQL databases from latin1 to UTF8 collation utf8_general_ci. This article describes the approach taken for doing the same.
First I will describe various levels at which we can change the character set and collation and then we will see how to convert existing data in a database to required character set.
Backup your database:
Before even thinking about changing character set for your database, (more...)
In this article, I will cover various key structures that makes up Cassandra. We will also see what structure resides in memory and what resides on disk.
In next article, I will give an overview of various key components that uses these structure for successfully running Cassandra. Further articles will cover more details about each structure/components in details
Cassandra Node Architecture:
Cassandra is a cluster software. Meaning, it has to be installed/deployed on multiple servers (more...)
This is a small article to demonstrate why correct statistics are important and how they affect execution statistics of same plan.
In the past we learned that changing table statistics or index statistics (or rebuilding index) can causes plan for a SQL to change. Because when statistics changes, optimizer will try to generate new plan based on changed statistics.
With 11g, oracle provided baseline to ensure stability in SQL plans. So if you have single (more...)
Many times, while doing SQL tuning, we want to trace (event 10046) single SQL in database. Instead of going for module level tracing or session level using DBMS_MONITOR, we can simply use below alter system command to trace specific SQL
Example: I have a table T1 and index T_I_TABLE_NAME on that table.
I am running following SQL and I want to trace on this SQL
select * from T1 where table_name = 'SINGLE_PRODUCT_GROUPS';
Prior to 11g, whenever optimizer goes for full table scan, Oracle used to show “db file scattered read” as wait event. But starting from 11g, a full table scan can show (depending on certain conditions) “direct path read” wait event.
db file scattered read – happens when blocks for a table is read from datafile into buffer cache in SGA
direct path read – happens when blocks for a table is read from datafile into (more...)