• db file sequential read等待事件的一点研究


    db file sequential read等待事件有3个参数:file#,first block#,和block数量。
    这个等待事件有3个参数P1,P2,P3,
    
    其中P1代表Oracle要读取的文件的绝对文件号,
    
    P2代表Oracle从这个文件中开始读取的起始数据块号,
    
    P3代表读取的BLOCK数量,通常这个值为1,表明是道单个BLOCK被读取。
    
     
    
    SQL> select SESSION_ID,NAME,P1,P2,P3,WAIT_TIME,CURRENT_OBJ#,CURRENT_FILE#,CURRENT_BLOCK#
              from v$active_session_history ash, v$event_name enm
              where ash.event#=enm.event#
               and SESSION_ID=39;  2    3    4  
    
    SESSION_ID NAME 				  P1	     P2 	P3  WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
    ---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
    	39 db file sequential read		   4	 531505 	 1	    0	     77088	       4	 531505
    	39 db file sequential read		   4	 528344 	 1	    0	     77088	       4	 528344
    	39 db file sequential read		   4	 520464 	 1	    0	     77088	       4	 520464
    	39 db file sequential read		   4	 517219 	 1	    0	     77088	       4	 517219
    	39 db file sequential read		   4	 502844 	 1	    0	     77088	       4	 502844
    	39 db file sequential read		   4	 489070 	 1	    0	     77088	       4	 489070
    	39 db file sequential read		   4	 480568 	 1	    0	     77088	       4	 480568
    	39 db file sequential read		   4	 478611 	 1	    0	     77088	       4	 478611
    	39 db file sequential read		   4	 473972 	 1	    0	     77088	       4	 473972
    	39 db file sequential read		   4	 473407 	 1	    0	     77088	       4	 473407
    	39 db file sequential read		   4	 458534 	 1	    0	     77088	       4	 458534
    
    SESSION_ID NAME 				  P1	     P2 	P3  WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
    ---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
    	39 db file sequential read		   4	 458186 	 1	    0	     77088	       4	 458186
    	39 db file sequential read		   4	 457625 	 1	    0	     77088	       4	 457625
    	39 db file sequential read		   4	 457150 	 1	    0	     77088	       4	 457150
    	39 db file sequential read		   4	 452548 	 1	    0	     77088	       4	 452548
    	39 direct path read			   4	 440464 	 8	    0	     78043	       4	 440424
    	39 direct path read			   4	 430640 	 8	    0	     78043	       4	 430632
    	39 direct path read			   4	 425312 	 8	    0	     78043	       4	 425304
    	39 direct path read			   4	 421408 	 8	    0	     78043	       4	 421400
    	39 direct path read			   4	 416384 	 8	    0	     78043	       4	 416376
    	39 direct path read			   4	 410928 	 8	    0	     78043	       4	 410920
    	39 direct path read			   4	 406240 	 8	    0	     78043	       4	 406232
    
    SESSION_ID NAME 				  P1	     P2 	P3  WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
    ---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
    	39 direct path read			   4	 404944 	 8	    0	     78043	       4	 404936
    	39 direct path read			   4	 399648 	 8	    0	     78043	       4	 399640
    	39 direct path read			   4	 394544 	 8	    0	     78043	       4	 394536
    	39 direct path read			   4	 389344 	 8	    0	     78043	       4	 389336
    	39 direct path read			   4	 383936 	 8	    0	     78043	       4	 383928
    	39 direct path read			   4	 379280 	 8	    0	     78043	       4	 379272
    	39 direct path read			   4	 374288 	 8	    0	     78043	       4	 374280
    	39 direct path read			   4	 369504 	 8	    0	     78043	       4	 369496
    	39 direct path read			   4	 364144 	 8	    0	     78043	       4	 364136
    	39 direct path read			   4	 359120 	 8	    0	     78043	       4	 359112
    	39 direct path read			   4	 354192 	 8	    0	     78043	       4	 354184
    
    SESSION_ID NAME 				  P1	     P2 	P3  WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
    ---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
    	39 direct path read			   4	 350192 	 8	    0	     78043	       4	 350184
    	39 direct path read			   4	 346832 	 8	    0	     78043	       4	 346824
    	39 direct path read			   4	 341936 	 8	    0	     78043	       4	 341928
    	39 direct path read			   4	 337088 	 8	    0	     78043	       4	 337080
    	39 direct path read			   4	 331632 	 8	    0	     78043	       4	 331624
    	39 direct path read			   4	 327056 	 8	    0	     78043	       4	 327048
    	39 direct path read			   4	 321984 	 8	    0	     78043	       4	 321976
    	39 direct path read			   4	 316784 	 8	    0	     78043	       4	 316776
    	39 direct path read			   4	 311680 	 8	    0	     78043	       4	 311672
    	39 direct path read			   4	 306448 	 8	    0	     78043	       4	 306440
    	39 direct path read			   4	 301200 	 8	    0	     78043	       4	 301192
    
    SESSION_ID NAME 				  P1	     P2 	P3  WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
    ---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
    	39 direct path read			   4	 295688 	 8	    0	     78043	       4	 295680
    	39 direct path read			   4	 290600 	 8	    0	     78043	       4	 290592
    	39 direct path read			   4	 286744 	 8	    0	     78043	       4	 286736
    	39 direct path read			   4	 281464 	 8	    0	     78043	       4	 281456
    	39 direct path read			   4	 276136 	 8	    0	     78043	       4	 276128
    	39 direct path read			   4	 271064 	 8	    0	     78043	       4	 271056
    	39 direct path read			   4	 266136 	 8	    0	     78043	       4	 266128
    	39 direct path read			   4	 261160 	 8	    0	     78043	       4	 261152
    	39 direct path read			   4	 256200 	 8	    0	     78043	       4	 256192
    	39 direct path read			   4	 255000 	 8	    0	     78043	       4	 254992
    	39 direct path read			   4	 254824 	 8	    0	     78043	       4	 254816
    
    
    
    发现很多都是 db file sequential read等待事件
    
     
    SQL> select owner,object_name,object_type from dba_objects where object_id=77088;
    
    OWNER	   OBJECT_NAM OBJECT_TYPE
    ---------- ---------- -------------------
    SCOTT	   T1	      TABLE
    
     
    BLOCK_ID: extent的起始块
    
    BLOCKS:extent块的数量
    
    SQL> select owner,segment_name,segment_type from dba_extents
        where file_id = 4 and 531505 between block_id and block_id+blocks-1;  2  
    
    OWNER	   SEGMENT_NA SEGMENT_TYPE
    ---------- ---------- ------------------
    SCOTT	   T1	      TABLE
    
    
    这里是回表造成的单块读
    
    
    模拟下索引上的单块读,模拟index full scan
    
    
    
    SQL_ID  0r8t4zj3urrnp, child number 0
    -------------------------------------
    select id  from t1 where t1.id is not null order by id
     
    Plan hash value: 2463307338
     
    ----------------------------------------------------------------------------
    | Id  | Operation        | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------
    |   0 | SELECT STATEMENT |         |       |       | 42364 (100)|          |
    |*  1 |  INDEX FULL SCAN | ID_IDX1 |    20M|   248M| 42364   (1)| 00:08:29 |
    ----------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       1 - filter("T1"."ID" IS NOT NULL)
     
    Note
    -----
       - dynamic sampling used for this statement (level=2)
     
    
    SQL> col name format a30
    SQL> select SESSION_ID,NAME,P1,P2,P3,WAIT_TIME,CURRENT_OBJ#,CURRENT_FILE#,CURRENT_BLOCK#
              from v$active_session_history ash, v$event_name enm
              where ash.event#=enm.event#
               and SESSION_ID=24;  2    3    4  
    
    SESSION_ID NAME 				  P1	     P2 	P3  WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
    ---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
    	24 db file sequential read		   4	 589800 	 1	    0	     78139	       4	 589800
    	24 db file sequential read		   4	 483506 	 1	    0	     77088	       4	 483506
    	24 db file sequential read		   4	 447172 	 1	    0	     77088	       4	 447172
    	24 db file sequential read		   4	 469775 	 1	    0	     77088	       4	 469775
    	24 db file sequential read		   4	 458597 	 1	    0	     77088	       4	 458597
    	24 db file scattered read		   4	 446041 	 7	    0	     77088	       4	 446044
    	24 db file scattered read		   4	 525865 	 8	    0	     77088	       4	   8714
    	24 db file sequential read		   4	   8714 	 1	    0		-1	       4	   8714
    	24 db file sequential read		   1	  64155 	 1	    0		40	       1	  64155
    	24 db file sequential read		   1	  11540 	 1	    0		40	       1	  11540
    	24 db file sequential read		   1	  19442 	 1	    0		62	       1	  19442
    
    SESSION_ID NAME 				  P1	     P2 	P3  WAIT_TIME CURRENT_OBJ# CURRENT_FILE# CURRENT_BLOCK#
    ---------- ------------------------------ ---------- ---------- ---------- ---------- ------------ ------------- --------------
    	24 db file scattered read		   1	  46040 	 8	    0		68	       1	  46040
    	24 db file sequential read		   1	    172 	 1	    0		-1	       0	      0
    	24 db file sequential read		   1	  21910 	 1	    0		-1	       0	      0
    	24 db file scattered read		   1	  83984 	 8	    0		-1	       0	      0
    	24 db file sequential read		   1	  64354 	 1	    0		-1	       0	      0
    	24 db file sequential read		   1	  64335 	 1	    0		-1	       0	      0
    	24 db file scattered read		   1	  70152 	 3	    0		-1	       0	      0
    	24 db file scattered read		   1	  55196 	 5	    0		-1	       0	      0
    	24 db file scattered read		   1	   5376 	 8	    0		-1	       0	      0
    	24 db file sequential read		   1	   2867 	 1	    0		-1	       0	      0
    
    21 rows selected.
    
    
    select owner,segment_name,segment_type from dba_extents
        where file_id = 4 and 589800 between block_id and block_id+blocks-1; SQL>   2  
    
    OWNER			       SEGMENT_NAME									 SEGMENT_TYPE
    ------------------------------ --------------------------------------------------------------------------------- ------------------
    SCOTT			       ID_IDX1										 INDEX
    
    
    


    
    
    
                                        
    
  • 相关阅读:
    Knockout应用开发指南 第八章:简单应用举例(2)
    微软ASP.NET站点部署指南(7):生产环境部署
    Knockout应用开发指南 第七章:Mapping插件
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(6)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(5)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(3)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(9)
    《Microsoft Sql server 2008 Internals》读书笔记第九章Plan Caching and Recompilation(8)
    Microsoft Visual Studio .NET 2003 引导程序插件下载地址(非官方)
    Vs2010在没有安装SQL Server 2005/2008 Express时如何连接MDF数据文件?
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352377.html
Copyright © 2020-2023  润新知