Analyzing DMA (Direct Memory Access)

Post by Mingchun Zhao - Development Department of Insight Technology Japan. Mainly engaged in the development of Oracle monitoring tool using a DMA (Direct Memory Access) technique.

I would like to share and analyze about DMA(Direct Memory Access).
Our product performance monitoring tool ‘PIEX’ and database auditing tool ‘PISO’ both uses DMA method to collect necessary information for monitoring or analyzing performance of a database.

Most of you might image data transferring directly between device and RAM without looking through CPU. Well few years ago I was thinking the same thing.

But what I would want to share about in this issue is completely different. This method is collecting performance data from accessing to the database memory area directly (i.e. Oracle SGA area).

So why is it DMA? It’s simple, that’s because it’s really attractive method to collect each information frequently without performance degradation to the database. I’ve started working on DMA few years ago and for me it’s still in progress exploring about DMA.

It might be an extreme case, but what if you try to check dynamic performance view to find where the bottleneck occurred and could not get the result for quite a while? Well if this happens you might have to give up getting performance data from dynamic performance view. Furthermore, there might be a possibility of making the performance worse caused by query to dynamic performance view.

DMA uses different process from Oracle and also it is asynchronous to Oracle. This makes it possible for DMA to collect necessary data directly. For this reason, in case if Oracle hung up like I mentioned in above, we could able to detect the cause of performance problem or bottleneck by collecting related information from Oracle.insight-tec-dma

This will be enough for introduction. In the next issue I’ll start collecting information actually using DMA.

2 Comments

  1. James

    发现PROF.zip这个包里的profiler.sql是能过serveroutput on size 1000000 这个来打印html的,最大只能输出这么多。如果对于一个代码量很大的过程就会报ERROR: ORA-06502: PL/SQL: numeric or value error: cracahter string buffer too small ORA-06512: at SYS.DBMS_OUTPUT , line 238 ORA-06512: at SYS.DBMS_OUTPUT , line 260 ORA-06512: at line 1 哎,不知道 在11g DBMS_HPROF.START_PROFILING这个包能提供 什么 样的报告

  2. Guilherme

    The link names are not always perfcet here is some of the funny links in the sheet:CSD_INCIDENTS_NON_SEC_V:and CS_INCIDENTS_ALL_VL.INSTALL_SITE_USE_ID = HZ_PARTY_SITES.PARTY_SITE_IDICX_PO_DISTRIBUTES_DIFF_V:and ICX_PO_REVISIONS_TEMP.LOCATION_ID = PO_LINE_LOCATIONS_ARCHIVE.SHIPMENT_NUM

Leave a Comment

Your email address will not be published. Required fields are marked *