Access method and wait event
hi,
i am confused about access method and wait event.
is there any relation between access method and wait event?
sb92075 wrote:
is there any relation between access method and wait event?No relationI disagree. If access method is full table scan or fast full index scan, that's likely to cause db file scattered read waits, whereas an index driven access method such as index range scan will likely cause db file sequential read waits.
-Mark
Similar Messages
-
Evaluating FXG files - possible to access elements and add event handlers?
I would like to read an existing FXG file into flash builder and then datamine the file for elements, and add event handlers to those elements.
For instance, if I have two rectangles in an FXG file (not in the flash builder mxml) and then read it in, I'd like to search for every rectangle and add an event handler that detects a mouse click. If the FXG code changes to three rectangles, I don't want to change my mxml for flash builder.
Is this possible?I'm seeing a pretty tragic death using the following, where theDiagram.fxg is in the assets directory. Does <Graphic> map to a SpriteVisualElement, or is the <Graphic> composed of SpriteVisualElements?
import assets.theDiagram;
private var fxgCls:Class = theDiagram as Class;
private var fxgElement:SpriteVisualElement = new fxgCls() as SpriteVisualElement;
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::updateCallbacks()[E:\dev\4.x\frameworks\projec ts\framework\src\mx\core\UIComponent.as:7093]
at mx.core::UIComponent/set nestLevel()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:3986]
at spark.core::SpriteVisualElement/http://www.adobe.com/2006/flex/mx/internal::addingChild()[E:\dev\4.x\frameworks\projects\s park\src\spark\core\SpriteVisualElement.as:2106]
at spark.core::SpriteVisualElement/addChild()[E:\dev\4.x\frameworks\projects\spark\src\spark \core\SpriteVisualElement.as:2070]
at assets::theDiagram_Text_16710627/createText()
at assets::theDiagram_Text_16710627()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at mx.core::FlexSprite()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\FlexSprite.as: 61]
at spark.core::SpriteVisualElement()[E:\dev\4.x\frameworks\projects\spark\src\spark\core\Spr iteVisualElement.as:87]
at assets::theDiagram()[assets/theDiagram-generated.as:10]
at SpecViewer()[SpecViewer.mxml:22]
at _SpecViewer_mx_managers_SystemManager/create()
at mx.managers.systemClasses::ChildManager/initializeTopLevelWindow()[E:\dev\4.x\frameworks\ projects\framework\src\mx\managers\systemClasses\ChildManager.as:304]
at mx.managers::SystemManager/initializeTopLevelWindow()[E:\dev\4.x\frameworks\projects\fram ework\src\mx\managers\SystemManager.as:2810]
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::kickOff()[E:\dev\4.x\frameworks\projects\frame work\src\mx\managers\SystemManager.as:2637]
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::preloader_completeHandler()[E:\dev\4.x\framewo rks\projects\framework\src\mx\managers\SystemManager.as:2539]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.preloaders::Preloader/timerHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\p reloaders\Preloader.as:515]
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick() -
Best Access Method and Estimated Performance
Dear folks,
I'm new to BDB. Although I have read all the documentation and the DS Presentation from Margo, I would like to ask your help to tunne my db layout.
I have to index 1 million key/data pairs in wich key is a logical number and data is 256 lenght (64 int array).
The size of the database is around 200MB. After the initial seed of data, the data will be READ ONLY. No need for concurrent access. One C program will acess the DB (single threaded).
I'm running on a Dual Xeon 3.2 GHz with 4 gb RAM.
I've choosen to use the QUEUE ACCESS METHOD (since I'm using logical numbers as key and a fixed data size).
I need to randomly access 140.000 keys in the DB.
As I've read from the documentation this would be accomplished in less than a second.
I would like to ask you what would be the expected retrieval time (number of keys/second) for my case (millions of 256 bytes data, with default configuration options) and if QUEUE is the best choice.
From my implementation test the c program takes a considerable amount of time the first time it queries (dpb->get) the database for 140.000 keys (is this the so called COLD START?). The successive times I run the program querying the DB with different 140.000 random keys it becames faster for each new run (is this because I'm warming up the cache?).
I'm using default configuration values for all tunning params: cache, mmapsize, etc...
Would it be possible to load the whole DB in memory before querying it with dpb->get? Would it make the 140.000 querying process faster?
I've tryied to iterate trough every record with a cursor and it takes around 5 seconds the first time and then gets faster on the successive runs. I've also tryied to iterate through every page to "warm up" the process before querying the 140.000 keys but did not have a great improvement.
My goal is to query 140.000 random keys from the DB as fastest as possible. (Be it changing by choosing a more appropriate access method, be it for tunning the config parameters).
I appreciate your help.
Maurice S.Thank you Michael for your reply!!!
I've seen the thread regarding the strategy of openning the mpool file and iterating through the pages.
I've implemented that sucessfully (that reduced the total time required to perform the "get's" and also make this time a CONSTANT of around 0.5 seconds).
My implementation works the following way:
1) First I create the DB_ENV pointer
1.A) All my dbs are in a folder called "dbs". Therefore I call dbenv->set_data_dir appropriatelly
1.B) dbenv->set_mp_mmapsize(dbenv,300*1024*1024); (each DB has 183 MB)
1.C) I set the cache size to the smallest possible value dbenv->set_cachesize(dbenv, 0, 20 *1024, 0); [as I've read through the forum about similar cases]
1.D) Finally dbenv->open(dbenv, "db",DB_CREATE | DB_RDONLY| DB_INIT_MPOOL, 0))
2) Then I call the db (wich has 700.000 records; with for 4 bytes for each key, and 260 bytes for each data)
2.A) db_create(&dbs[c], dbenv, 0))
2.B) dbs[c]->set_re_len(dbs[c],260)
2.C) dbs[c]->set_pagesize(dbs[c], 64*1024))
2.D) dbs[c]->open(dbs[c],NULL, database, NULL, DB_QUEUE, DB_RDONLY, 0664))
Then I do the "mpool file iteration":
.....all the code from that thread.....
DB_MPOOLFILE* mfp =NULL;
mfp = dbs[c]->get_mpf(dbs[c]);
db_pgno_t lastPageNum;
void* pageAddr;
mfp->get(mfp, &lastPageNum, NULL, DB_MPOOL_LAST, &pageAddr);
mfp->put(mfp, pageAddr, DB_PRIORITY_UNCHANGED, 0);
db_pgno_t pageNum=0;
for(pageNum=0; pageNum<=lastPageNum; pageNum++)
mfp->get(mfp,&pageNum, NULL, 0, &pageAddr);
mfp->put(mfp,pageAddr, DB_PRIORITY_UNCHANGED,0);
And then I get 140.000 random records:
DBT key, data;
for(k=0;k<140000;k++)
db_recno_t recno=rand()%700000;
memset(&key, 0, sizeof(DBT));
memset(&data, 0, sizeof(DBT));
key.data = &recno;
key.size = sizeof(recno);
int dc[65];
data.data = dc;
data.ulen = sizeof(dc);
data.flags = DB_DBT_USERMEM;
dbp->get(dbp, NULL, &key, &data, 0);
It takes around 0.5 seconds to perform all 140.000 random GET's.
I have 20 DB's like the one described above.
Changing the code above in order to use another one of the 20 DB's results in the same EXECUTION TIME (around 0.5 seconds).
Is this the performance that you would expect from BDB? 280.000 random accessess per second in a 700.000 records QUEUE DB with 260 bytes data field?
Is there any other parameters I could tunne to improve performace?
Would BTREE acess method perform better ? (I could index the record numbers as strings: "00000001", "00000002", ..... )
I do appreciate your attention.
Hope my post can be a source for help to other BDB users, as the forum has been to me.
Best rgs,
Maurice S. -
RE: Looking for some database statistics and wait event statistics
Hi:
We are using Oracle 10g RAC on Sun Solaris 5.9.
1) In GV$SYSSTAT, we cannot find the following database statistics:
'global cache converts',
'global cache convert time',
'global cache gets',
'global cache get time',
'global cache convert timeouts',
'global cache defers'
2) In GV$SYSTEM_EVENT, we cannot find the following wait event:
'buffer busy global CR'
For 1) and 2), could you please tell us where to retrieve the above information,
or suggest a reasonable alternative?
Have these stats been removed in Oracle 10g?
Have they been renamed? To what?
3) We currently compute the number of additional redo logs that can be accommodated in the free space of the archive directory using the formula:
(arhive directory free space / redo log file size)
However, using ASM we find that the free space for a ASM diskgroup is being reported as zero in the table v$asm_diskgroup if the diskgroup is mounted manually. How would one go about retrieving the free space for a logical volume?
ThanksHi:
We are using Oracle 10g RAC on Sun Solaris 5.9.
1) In GV$SYSSTAT, we cannot find the following database statistics:
'global cache converts',
'global cache convert time',
'global cache gets',
'global cache get time',
'global cache convert timeouts',
'global cache defers'
2) In GV$SYSTEM_EVENT, we cannot find the following wait event:
'buffer busy global CR'
For 1) and 2), could you please tell us where to retrieve the above information,
or suggest a reasonable alternative?
Have these stats been removed in Oracle 10g?
Have they been renamed? To what?
3) We currently compute the number of additional redo logs that can be accommodated in the free space of the archive directory using the formula:
(arhive directory free space / redo log file size)
However, using ASM we find that the free space for a ASM diskgroup is being reported as zero in the table v$asm_diskgroup if the diskgroup is mounted manually. How would one go about retrieving the free space for a logical volume?
Thanks -
Berkeley DB about hash Access Methods
When I use Berkeley DB with hash Access Methods, and the recored is very large, I want to know:
for examle when i insert two recored
(key1, data1) and (key2, data2) into DB, the hash of key1 and hash of key2 is same, but key1 and key2 is different, how the Berkeley DB to do this?
is the Berkeley DB cover the key1,data1 with key2,date2 ?, if so, i think it is a terrible things.
thanks for any reply, waiting......You are very welcome, thanks again,
but now i find the Berkeley DB working are very slowly when the Database size grow up to more than 2GB, below is the list of my computer information:
OS: windows server 2003
API: C language
memory: 1GB
CPU: intel 820
database Access Methods: hash
key and dada: key is always char[32], data is always int32
when I open the database in the env, I didn't set the catch and page size because I don't know how to set it, and i also find there is anthor method to improve the performance by set the "Page fill factor", and "DB->set_h_ffactor", but can you give me some advice how can set it to make DB more fast,
by the way I find when the Berkeley DB's database size is larger than memory, it works very slowly, why? -
DB_HEAP access method with db_hotbackup utility
I open a Db handle with DB_HEAP access method and do nothing about it . When first created , the db file is 8kb , but after excuting db_hotbackup utility the db file is 4kb. if I do db_hotbackup under the failover environment , BDB give me an error message :
db_hotbackup: Backup Failed: BDB0075 DB_PAGE_NOTFOUND: Requested page not found
db_hotbackup: BDB5043 HOT BACKUP FAILED!
Other access method is ok . I try to set the Db pagesize 8kb but still wrong .
I think a db file is bigger than a page size. So it's hard to understand.
ThanksSorry about mix the two problems. Let me make it clearly :
1 .Create an Environment contains an empty DB_HEAP database file with the code below.
1.1 compile the code and mkdir "fileHome" for Environment direcotory,
1.2 execute the program
2. execute { db_hotbackup -h ./fileHome -b ./failover } . and in failover directory the database file will become smaller than it in Environment direcotry.
3. chang code { const char* fileHome = "fileHome"; } to { const char* fileHome = "failover"; }
4. compile the changed code and execute again.( for creating region files in the failover directory)
5. execute { db_hotbackup -h ./failover -b ./failover_back } after this we can see the wrong message :
db_hotbackup: Backup Failed: BDB0075 DB_PAGE_NOTFOUND: Requested page not found
db_hotbackup: BDB5043 HOT BACKUP FAILED!
The problem I said on the previous time is I try to insert some record to the database but failed. I just wonder if this BDB version is not supportint DB_HEAP access method.
The code is :
#include<iostream>
#include<cstring>
#include<cstdlib>
#include"db_cxx.h"
int main()
u_int32_t env_flags = DB_CREATE |
DB_INIT_LOCK |
DB_INIT_LOG |
DB_INIT_TXN |
DB_INIT_MPOOL;
u_int32_t db_flags = DB_CREATE | DB_AUTO_COMMIT;
const char* fileHome = "fileHome";
const char* filename = "simpletxn.db";
Db *dbp = NULL;
DbEnv myEnv(0);
try{
myEnv.open(fileHome,env_flags,0);
dbp = new Db(&myEnv,0);
dbp->set_pagesize(8 * 1024);
dbp->open(0,
filename,
NULL,
DB_HEAP,
db_flags,
0);
}catch(DbException& e){
std::cerr<<"error when opening environment and database: "<<filename<<","<<fileHome<<std::endl;
std::cerr<<e.what()<<std::endl;
try{
if(dbp != NULL)
dbp->close(0);
myEnv.close(0);
}catch(DbException& e){
std::cerr<<"error when closing environment and database: "<<filename<<","<<fileHome<<std::endl;
std::cerr<<e.what()<<std::endl;
return 0;
Thanks !!! -
RAC specific Wait events in AWR
DB version: 10.2.0.4
OS : Solaris x86
What are the most frequent RAC specific Wait events that appear in AWR reports ?Hi Pete,
This depends on your environment. You can identify them as follows:
Monitoring Oracle RAC Statistics and Wait Events
http://download.oracle.com/docs/cd/E11882_01/rac.112/e16795/monitor.htm#i1010220
ASH Report for Oracle RAC: Top Cluster Events
The ASH report Top Cluster Events section is part of the Top Events report that is specific to Oracle RAC. The Top Cluster Events report lists events that account for the highest percentage of session activity in the cluster wait class event along with the instance number of the affected instances. You can use this information to identify which events and instances caused a high percentage of cluster wait events.
http://download.oracle.com/docs/cd/E11882_01/rac.112/e16795/monitor.htm
Regards,
Levi Pereira
<font size="1" color="red">Please close your thread when you get the solution to your problem.</font><br>
<font size="1" color="red">Mark the replies answered "helpful" answer and/or "correct" answer that will help others with same problem.</font><br>
<font size="1" color="red">Thanks for doing your part to make this community as valuable as possible for everyone!</font><br> -
Hi all,
anybody please tel me how can i access key and mouse events.here i don't have any GUI application.
thanks in advance
pradeepIf you don't have a GUI application then no events will be generated.
Or do you mean "GUI experience?" A quick google would have found you these:
http://java.sun.com/docs/books/tutorial/uiswing/events/mouselistener.html
http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html -
Performance Issue: Wait event "log file sync" and "Execute to Parse %"
In one of our test environments users are complaining about slow response.
In statspack report folowing are the top-5 wait events
Event Waits Time (cs) Wt Time
log file parallel write 1,046 988 37.71
log file sync 775 774 29.54
db file scattered read 4,946 248 9.47
db file parallel write 66 248 9.47
control file parallel write 188 152 5.80
And after runing the same application 4 times, we are geting Execute to Parse % = 0.10. Cursor sharing is forced and query rewrite is enabled
When I view v$sql, following command is parsed frequently
EXECUTIONS PARSE_CALLS
SQL_TEXT
93380 93380
select SEQ_ORDO_PRC.nextval from DUAL
Please suggest what should be the method to troubleshoot this and if I need to check some more information
Regards,
Sudhanshu BhandariWell, of course, you probably can't eliminate this sort of thing entirely: a setup such as yours is inevitably a compromise. What you can do is make sure your log buffer is a good size (say 10MB or so); that your redo logs are large (at least 100MB each, and preferably large enough to hold one hour or so of redo produced at the busiest time for your database without filling up); and finally set ARCHIVE_LAG_TARGET to something like 1800 seconds or more to ensure a regular, routine, predictable log switch.
It won't cure every ill, but that sort of setup often means the redo subsystem ceases to be a regular driver of foreground waits. -
Difference between wait event and timed event
Hi,
Anyone has idea that what is the difference between wait events and timed events in Statspack report. I couldn't find it over google.
Thanks.It's 10.2.0.1 on Linux
(Couldn't do a query, because Linux is inside VM Ware. And it is not being accessed from Base windows machine.)
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time
db file scattered read 9,750,617 34,611 4 44.7
CPU time 14,248 18.4
read by other session 1,532,282 8,984 6 11.6
db file sequential read 4,514,494 5,588 1 7.2
latch: cache buffers lru chain 277,245 4,823 17 6.2
Wait Events DB/Inst: ABCD/ABCD Snaps: 1-2
-> s - second, cs - centisecond, ms - millisecond, us - microsecond
-> %Timeouts: value of 0 indicates value was < .5%. Value of null is truly 0
-> Only events with Total Wait Time (s) >= .001 are shown
-> ordered by Total Wait Time desc, Waits desc (idle events last)
Avg
%Time Total Wait wait Waits
Event Waits -outs Time (s) (ms) /txn
db file scattered read 9,750,617 0 34,611 4 24.2
read by other session 1,532,282 0 8,984 6 3.8
db file sequential read 4,514,494 0 5,588 1 11.2
latch: cache buffers lru chain 277,245 0 4,823 17 0.7
latch free 121,466 0 3,291 27 0.3
---------------------------------------------------------------------------------------------------- -
Hi: I'm analyzing this STATSPACK report: it is "volume test" on our UAT server, so most input is from 'bind variables'. Our shared pool is well utilized in oracle. Oracle redo logs is not appropriately configured on this server, as in 'Top 5 wait events' there are 2 for redos.
I need to know what else information can be dig-out from 'foreground wait events' & 'background wait events', and what can assist us to better understanding, in combination of 'Top 5 wait event's, that how the server/test went? it could be overwelming No. of wait events, so appreciate any helpful diagnostic or analysis. Database is oracle 11.2.0.4 upgraded from 11.2.0.3, on IBM AIX power system 64bit, level 6.x
STATSPACK report for
Database DB Id Instance Inst Num Startup Time Release RAC
~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---
700000XXX XXX 1 22-Apr-15 12:12 11.2.0.4.0 NO
Host Name Platform CPUs Cores Sockets Memory (G)
~~~~ ---------------- ---------------------- ----- ----- ------- ------------
dXXXX_XXX AIX-Based Systems (64- 2 1 0 16.0
Snapshot Snap Id Snap Time Sessions Curs/Sess Comment
~~~~~~~~ ---------- ------------------ -------- --------- ------------------
Begin Snap: 5635 22-Apr-15 13:00:02 114 4.6
End Snap: 5636 22-Apr-15 14:00:01 128 8.8
Elapsed: 59.98 (mins) Av Act Sess: 0.6
DB time: 35.98 (mins) DB CPU: 19.43 (mins)
Cache Sizes Begin End
~~~~~~~~~~~ ---------- ----------
Buffer Cache: 2,064M Std Block Size: 8K
Shared Pool: 3,072M Log Buffer: 13,632K
Load Profile Per Second Per Transaction Per Exec Per Call
~~~~~~~~~~~~ ------------------ ----------------- ----------- -----------
DB time(s): 0.6 0.0 0.00 0.00
DB CPU(s): 0.3 0.0 0.00 0.00
Redo size: 458,720.6 8,755.7
Logical reads: 12,874.2 245.7
Block changes: 1,356.4 25.9
Physical reads: 6.6 0.1
Physical writes: 61.8 1.2
User calls: 2,033.7 38.8
Parses: 286.5 5.5
Hard parses: 0.5 0.0
W/A MB processed: 1.7 0.0
Logons: 1.2 0.0
Executes: 801.1 15.3
Rollbacks: 6.1 0.1
Transactions: 52.4
Instance Efficiency Indicators
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %: 100.00 Redo NoWait %: 100.00
Buffer Hit %: 99.98 Optimal W/A Exec %: 100.00
Library Hit %: 99.77 Soft Parse %: 99.82
Execute to Parse %: 64.24 Latch Hit %: 99.98
Parse CPU to Parse Elapsd %: 53.15 % Non-Parse CPU: 98.03
Shared Pool Statistics Begin End
Memory Usage %: 10.50 12.79
% SQL with executions>1: 69.98 78.37
% Memory for SQL w/exec>1: 70.22 81.96
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time
CPU time 847 50.2
enq: TX - row lock contention 4,480 434 97 25.8
log file sync 284,169 185 1 11.0
log file parallel write 299,537 164 1 9.7
log file sequential read 698 16 24 1.0
Host CPU (CPUs: 2 Cores: 1 Sockets: 0)
~~~~~~~~ Load Average
Begin End User System Idle WIO WCPU
1.16 1.84 19.28 14.51 66.21 1.20 82.01
Instance CPU
~~~~~~~~~~~~ % Time (seconds)
Host: Total time (s): 7,193.8
Host: Busy CPU time (s): 2,430.7
% of time Host is Busy: 33.8
Instance: Total CPU time (s): 1,203.1
% of Busy CPU used for Instance: 49.5
Instance: Total Database time (s): 2,426.4
%DB time waiting for CPU (Resource Mgr): 0.0
Memory Statistics Begin End
~~~~~~~~~~~~~~~~~ ------------ ------------
Host Mem (MB): 16,384.0 16,384.0
SGA use (MB): 7,136.0 7,136.0
PGA use (MB): 282.5 361.4
% Host Mem used for SGA+PGA: 45.3 45.8
Foreground Wait Events DB/Inst: XXXXXs Snaps: 5635-5636
-> Only events with Total Wait Time (s) >= .001 are shown
-> ordered by Total Wait Time desc, Waits desc (idle events last)
Avg %Total
%Tim Total Wait wait Waits Call
Event Waits out Time (s) (ms) /txn Time
enq: TX - row lock contentio 4,480 0 434 97 0.0 25.8
log file sync 284,167 0 185 1 1.5 11.0
Disk file operations I/O 8,741 0 4 0 0.0 .2
direct path write 13,247 0 3 0 0.1 .2
db file sequential read 6,058 0 1 0 0.0 .1
buffer busy waits 1,800 0 1 1 0.0 .1
SQL*Net more data to client 29,161 0 1 0 0.2 .1
direct path read 7,696 0 1 0 0.0 .0
db file scattered read 316 0 1 2 0.0 .0
latch: shared pool 144 0 0 2 0.0 .0
CSS initialization 30 0 0 3 0.0 .0
cursor: pin S 10 0 0 9 0.0 .0
row cache lock 41 0 0 2 0.0 .0
latch: row cache objects 19 0 0 3 0.0 .0
log file switch (private str 8 0 0 7 0.0 .0
library cache: mutex X 28 0 0 2 0.0 .0
latch: cache buffers chains 54 0 0 1 0.0 .0
latch free 290 0 0 0 0.0 .0
control file sequential read 1,568 0 0 0 0.0 .0
log file switch (checkpoint 4 0 0 6 0.0 .0
direct path sync 8 0 0 3 0.0 .0
latch: redo allocation 60 0 0 0 0.0 .0
SQL*Net break/reset to clien 34 0 0 1 0.0 .0
latch: enqueue hash chains 45 0 0 0 0.0 .0
latch: cache buffers lru cha 7 0 0 2 0.0 .0
latch: session allocation 5 0 0 1 0.0 .0
latch: object queue header o 6 0 0 1 0.0 .0
ASM file metadata operation 30 0 0 0 0.0 .0
latch: In memory undo latch 15 0 0 0 0.0 .0
latch: undo global data 8 0 0 0 0.0 .0
SQL*Net message from client 6,362,536 0 278,225 44 33.7
jobq slave wait 7,270 100 3,635 500 0.0
SQL*Net more data from clien 7,976 0 15 2 0.0
SQL*Net message to client 6,362,544 0 8 0 33.7
Background Wait Events DB/Inst: XXXXXs Snaps: 5635-5636
-> Only events with Total Wait Time (s) >= .001 are shown
-> ordered by Total Wait Time desc, Waits desc (idle events last)
Avg %Total
%Tim Total Wait wait Waits Call
Event Waits out Time (s) (ms) /txn Time
log file parallel write 299,537 0 164 1 1.6 9.7
log file sequential read 698 0 16 24 0.0 1.0
db file parallel write 9,556 0 13 1 0.1 .8
os thread startup 146 0 10 70 0.0 .6
control file parallel write 2,037 0 2 1 0.0 .1
Log archive I/O 35 0 1 30 0.0 .1
LGWR wait for redo copy 2,447 0 0 0 0.0 .0
db file async I/O submit 9,556 0 0 0 0.1 .0
db file sequential read 145 0 0 2 0.0 .0
Disk file operations I/O 349 0 0 0 0.0 .0
db file scattered read 30 0 0 4 0.0 .0
control file sequential read 5,837 0 0 0 0.0 .0
ADR block file read 19 0 0 4 0.0 .0
ADR block file write 5 0 0 15 0.0 .0
direct path write 14 0 0 2 0.0 .0
direct path read 3 0 0 7 0.0 .0
latch: shared pool 3 0 0 6 0.0 .0
log file single write 56 0 0 0 0.0 .0
latch: redo allocation 53 0 0 0 0.0 .0
latch: active service list 1 0 0 3 0.0 .0
latch free 11 0 0 0 0.0 .0
rdbms ipc message 314,523 5 57,189 182 1.7
Space Manager: slave idle wa 4,086 88 18,996 4649 0.0
DIAG idle wait 7,185 100 7,186 1000 0.0
Streams AQ: waiting for time 2 50 4,909 ###### 0.0
Streams AQ: qmn slave idle w 129 0 3,612 28002 0.0
Streams AQ: qmn coordinator 258 50 3,612 14001 0.0
smon timer 43 2 3,605 83839 0.0
pmon timer 1,199 99 3,596 2999 0.0
SQL*Net message from client 17,019 0 31 2 0.1
SQL*Net message to client 12,762 0 0 0 0.1
class slave wait 28 0 0 0 0.0
thank you very much!Hi: just know it now: it is a large amount of 'concurrent transaction' designed in this "Volume Test" - to simulate large incoming transaction volme, so I guess wait in eq:TX - row is expected.
The fact: (1) redo logs at uat server is known to not well-tune for configurations (2) volume test slow 5%, however data amount in its test is kept the same by each time import production data, by the team. So why it slowed 5% this year?
The wait histogram is pasted below, any one interest to take a look? any ideas?
Wait Event Histogram DB/Inst: XXXX/XXXX Snaps: 5635-5636
-> Total Waits - units: K is 1000, M is 1000000, G is 1000000000
-> % of Waits - column heading: <=1s is truly <1024ms, >1s is truly >=1024ms
-> % of Waits - value: .0 indicates value was <.05%, null is truly 0
-> Ordered by Event (idle events last)
Total ----------------- % of Waits ------------------
Event Waits <1ms <2ms <4ms <8ms <16ms <32ms <=1s >1s
ADR block file read 19 26.3 5.3 10.5 57.9
ADR block file write 5 40.0 60.0
ADR file lock 6 100.0
ARCH wait for archivelog l 14 100.0
ASM file metadata operatio 30 100.0
CSS initialization 30 100.0
Disk file operations I/O 9090 97.2 1.4 .6 .4 .2 .1 .1
LGWR wait for redo copy 2447 98.5 .5 .4 .2 .2 .2 .1
Log archive I/O 35 40.0 8.6 25.7 2.9 22.9
SQL*Net break/reset to cli 34 85.3 8.8 5.9
SQL*Net more data to clien 29K 99.9 .0 .0 .0 .0 .0
buffer busy waits 1800 96.8 .7 .7 .6 .3 .4 .5
control file parallel writ 2037 90.7 5.0 2.1 .8 1.0 .3 .1
control file sequential re 7405 100.0 .0
cursor: pin S 10 10.0 90.0
db file async I/O submit 9556 99.9 .0 .0 .0
db file parallel read 1 100.0
db file parallel write 9556 62.0 32.4 1.7 .8 1.5 1.3 .1
db file scattered read 345 72.8 3.8 2.3 11.6 9.0 .6
db file sequential read 6199 97.2 .2 .3 1.6 .7 .0 .0
direct path read 7699 99.1 .4 .2 .1 .1 .0
direct path sync 8 25.0 37.5 12.5 25.0
direct path write 13K 97.8 .9 .5 .4 .3 .1 .0
enq: TX - row lock content 4480 .4 .7 1.3 3.0 6.8 12.3 75.4 .1
latch free 301 98.3 .3 .7 .7
latch: In memory undo latc 15 93.3 6.7
latch: active service list 1 100.0
latch: cache buffers chain 55 94.5 3.6 1.8
latch: cache buffers lru c 9 88.9 11.1
latch: call allocation 6 100.0
latch: checkpoint queue la 3 100.0
latch: enqueue hash chains 45 97.8 2.2
latch: messages 4 100.0
latch: object queue header 7 85.7 14.3
latch: redo allocation 113 97.3 1.8 .9
latch: row cache objects 19 89.5 5.3 5.3
latch: session allocation 5 80.0 20.0
latch: shared pool 147 90.5 1.4 2.7 1.4 .7 1.4 2.0
latch: undo global data 8 100.0
library cache: mutex X 28 89.3 3.6 3.6 3.6
log file parallel write 299K 95.6 2.6 1.0 .4 .3 .2 .0
log file sequential read 698 29.5 .1 4.6 46.8 18.9
log file single write 56 100.0
log file switch (checkpoin 4 25.0 50.0 25.0
log file switch (private s 8 12.5 37.5 50.0
log file sync 284K 93.3 3.7 1.4 .7 .5 .3 .1
os thread startup 146 100.0
row cache lock 41 85.4 9.8 2.4 2.4
DIAG idle wait 7184 100.0
SQL*Net message from clien 6379K 86.6 5.1 2.9 1.3 .7 .3 2.8 .3
SQL*Net message to client 6375K 100.0 .0 .0 .0 .0 .0 .0
Wait Event Histogram DB/Inst: XXXX/xxxx Snaps: 5635-5636
-> Total Waits - units: K is 1000, M is 1000000, G is 1000000000
-> % of Waits - column heading: <=1s is truly <1024ms, >1s is truly >=1024ms
-> % of Waits - value: .0 indicates value was <.05%, null is truly 0
-> Ordered by Event (idle events last)
Total ----------------- % of Waits ------------------
Event Waits <1ms <2ms <4ms <8ms <16ms <32ms <=1s >1s
SQL*Net more data from cli 7976 99.7 .1 .1 .0 .1
Space Manager: slave idle 4086 .1 .2 .0 .0 .3 3.2 96.1
Streams AQ: qmn coordinato 258 49.2 .8 50.0
Streams AQ: qmn slave idle 129 100.0
Streams AQ: waiting for ti 2 50.0 50.0
class slave wait 28 92.9 3.6 3.6
jobq slave wait 7270 .0 100.0
pmon timer 1199 100.0
rdbms ipc message 314K 10.3 7.3 39.7 15.4 10.6 5.3 8.2 3.3
smon timer 43 100.0 -
Wait events 'direct path write' and 'direct path read'
Hi,
We have a query which is taking more that 2 min. It's a 9.2.0.7 database. We took the trace/tkprof of the query,and identified that there are so manay 'direct path write' and 'direct path read' wait events in the trace file.
WAIT #3: nam='direct path write' ela= 5 p1=201 p2=70710 p3=15
WAIT #3: nam='direct path read' ela= 170 p1=201 p2=71719 p3=15
In the above, "p1=201" is a file_id, but we could not find any data file, temp file, control file with that id# 201.
Can you please let us know what's "p1=201" here, how to identify the file which is causing the issue.
Thanks
SravanWhat does:
show parameter db_filesreturn? My guess, is that it returns 200.
The direct file read and direct file write events are reads and writes to TEMP tablespace. In those wait events, the file# is reported as db_files+temp file id. So, 201 means temp file #1.
Now, as to your actual performance problem.
Without seeing the SQL and the corresponding execution plan, it's impossible to be sure. However, the most common causes of temp writes are sort operations and group by operations.
If you decide to post your SQL and execution plan, please be sure to make it readable by formatting it. Information on how to do so can be found here.
Hope that helps,
-Mark
Edited by: mbobak on May 1, 2011 1:50 AM -
How do I access classes and methods defined in a wsdl file
I have been provided a wsdl file I need to find out how do I access classes and methods defined in a wsdl file directly instead of doing a wsdl2java...
Several comments :
1- is there any reason to have blank chars inserted after the path ? Seems that you already have a problem there. If possible, try to solve the problem at the source
2- the end of line char is usually CR (Carriage Return, aka ASCII char 13 = $0D = Control-D). But LF (Line Feed = 10 = $0A = control-A) is also used (platform dependent). In LV, you can use the "Concatenate strings" function to add/insert control chars (found in the String Control Palette). However, this will not solve your problem of unwanted added blank chars at the end of your string.
3- you can use the Trim white space.vi (in the "Additionnal string functions" sub-palette) to remove ALL the spaces in your string
4- you can build your own "end space remover" function. :
reverse the string, wire to a "Match pattern" function, use " +" (space + "+") to search for any number of spaces, reverse again the "after substring".
5- there is no point 5 :-)
You may find interesting description of ASCII chars here
Chilly Charly (aka CC)
E-List Master - Kudos glutton - Press the yellow button on the left... -
What do the wait events 'gc cr failure' and 'cr request retry' mean?
I'm trying to troubleshoot an issue for a customer. Environment is Oracle 10.2.0.4 (64-bit) on Redhat 5. Two node RAC cluster. The 10046 trace file shows lots of 'gc current block 2-way' waits but also a few 'gc cr failure' and 'cr request retry' waits. The 'cr request retry' waits take about 0.9 seconds each. I cannot find much if any information on these two wait events. Any help is much appreciated.
Thanks!Hi,
Also, you might need to check the protocol is being used for the interconnect communication.
here are the steps just in case:
$ORACLE_HOME/bin/sqlplus / as sysdba
oradebug setmypid
oradebug unlimit
oradebug ipc
oradebug TRACEFILE_NAME
Review the file that the last oradebug gave you back.
Metalink note 181489.1 provides some handy steps to analyze your situation. (also contains the latest supported protocols for IPC)
Hope this helps
Regards,
Jozsef -
Wait events and locks monitoring /resolving scripts
Looking for wait events and locks monitoring /resolving scripts /tips.
Hi,
Looking for wait events and locks monitoring /resolving scriptsHere is the collection of monitoring scripts that I
use, and it has dozens of scripts for locking:
http://www.oracle-script.com
For one-off scripts, here is a script by Laurent Baylac to show locks in Oracle 10g:
http://www.dba-village.com/village/dvp_scripts.ScriptDetails?ScriptIdA=3508
SET LINESIZE 500
SET PAGESIZE 1000
COLUMN username FORMAT A15
COLUMN machine FORMAT A25
COLUMN logon_time FORMAT A20
SELECT LPAD(' ', (level-1)*2, ' ') || NVL(s.username, '(oracle)') AS username,
s.osuser,
s.sid,
s.serial#,
s.lockwait,
s.status,
s.module,
s.machine,
s.program,
TO_CHAR(s.logon_Time,'DD-MON-YYYY HH24:MI:SS') AS logon_time
FROM v$session s
CONNECT BY PRIOR s.sid = s.blocking_session
START WITH s.blocking_session IS NULL;
SET PAGESIZE 14
-- Search for locked objects
-- To be executed under the SYSTEM account
-- Compatible with Oracle10.1.x and higher
select
distinct to_name object_locked
from
v$object_dependency
where
to_address in
select /*+ ordered */
w.kgllkhdl address
from
dba_kgllock w,
dba_kgllock h,
v$session w1,
v$session h1
where
(((h.kgllkmod != 0) and (h.kgllkmod != 1)
and ((h.kgllkreq = 0) or (h.kgllkreq = 1)))
and
(((w.kgllkmod = 0) or (w.kgllkmod= 1))
and ((w.kgllkreq != 0) and (w.kgllkreq != 1))))
and w.kgllktype = h.kgllktype
and w.kgllkhdl = h.kgllkhdl
and w.kgllkuse = w1.saddr
and h.kgllkuse = h1.saddr
Don Burleson
Oracle Press author
Maybe you are looking for
-
Problems with new PalmDesktop6.2 and Palm TX
I have a Palm TX that I have been using and syncing OK for over a year. I recently installed the PalmDesktop version 6.2 and it seemed to work well. For Christmas, I received an external disk drive and I moved all of the folders and documents from
-
Problem in binding the bridge to Infiniband card
Hi there, We are running Oracle VM Server 2.2 on HP Blade with Mellanox card installed in it. We are trying to use the infiniband card for higher speed but are unable to bind any bridge to this interface. Mellanox drivers are installed and the device
-
Hi all, I would be glad, if someone can let me know weather SAP B1 9.0 supports purchase request object in Workflow. If yes let me know the process. Regards, Neslin
-
How to open IE window for .html user manual?
how to open an IE window for a .html user manual? I'm creating a user manual in .html format, and I want to open that file in an IE window when a user click on the "Help" menu (JMenuItem - using ActionPerformed event). Is it possible to do that in ja
-
Hi, today I faced strange problem with OCM(Oracle conneciton Manager) I installed OCM on separete server and I used to manage connection to my databases, however the server crash and we have to reboot that server and start the OCM again, but the OCM