Statspack学习(一).安装配置
				
		
		
				
				 
		
				
						    Statspack是Oracle提供的一个非常强大的工具,用于检测Oracle系统在某段时间内的执行性能,是用来判断、排查Oracle故障和系统瓶颈的最主要和最常用的手段。从今天开始就来学习一下这个工具的使用方法。
				
		
		
				
				 
		
				
						一、参数设置
				
		
		
				
				 
		
				
						    安装和运行Statspack需要配置以下参数
				
		
		
				
						
						
				 
		
				
						
								    1、job_queue_processes
						
				
		
		
				
						
						
				 
		
				
						    为了可以建立自动任务,执行数据手机,该参数需要大于0(默认是10)
				
		
		
				
						
						
				 
		
				
						
								    2、timed_statistics
						
				
		
		
				
						
						
				 
		
				
						    收集操作系统的计时信息,用以先是时间等统计信息,优化数据库和SQL语句。在使用statspack收集统计信息时建议将该值设置为TRUE,否则收集的统计信息大概只能起到10%的作用。timed_statistics设置为true会引起系统的开销,但是其带来的影响与好处相比是微不足道的
				
		
		
				
						
						
				 
		
				
						    注:该参数收集的时间信息存储在v$sysstat和v$sesstat等动态视图中。
				
		
		
				
						
						
				 
		
				
						
						
				 
		
				
						
								二、安装Statspack
						
				
		
		
				
						
						
				 
		
				
						    以SYSDBA身份登陆,执行安装脚本
				
		
		
				
						
						
				 
		
				
						
								    1、查看基础信息
						
				
		
		
				
						
						
				 
		
				
						    SQL> select instance_name,host_name,version,startup_time from v$instance;
 
    INSTANCE_NAME    HOST_NAME  VERSION           STARTUP_TIME
    ---------------- ---------- ----------------- ------------
    dodo             WXQ-0099   10.2.0.1.0        2009-2-21
				
		
		
				
						
						
				 
		
				
						
								    2、查看现有数据文件位置
						
				
		
		
				
						
						
				 
		
				
						    SQL> select file_name from dba_data_files;
 
    FILE_NAME
    ---------------------------------------------------------
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\USERS01.DBF
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSAUX01.DBF
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\UNDOTBS01.DBF
    E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSTEM01.DBF
				
		
		
				
						    
				
		
		
				
						
								    3、创建表空间,用于存放统计信息
						
				
		
		
				
						
						
				 
		
				
						    注:如果采样间隔短、周期长则使用大一点的表空间。例如每半小时采样一次,持续一周,则数据量比较大,需要500M左右空间。
				
		
		
				
						    注:表空间不能太小,否则创建对象会失败,至少需要100M空间
				
		
		
				
						
						
				 
		
				
						    SQL> create tablespace perfstat
      2  datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\PERFSTAT.DBF'
      3  size 500M
      4  extent management local;
 
    Tablespace created
				
		
		
				
						
						
				 
		
				
						
								    4、执行spcreate脚本创建Statspack
						
				
		
		
				
						
						
				 
		
				
						    SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spcreate.sql
				
		
		
				
						
						
				 
		
				
						    开始创建之后需要输入以下几个值: 
				
		
		
				
						    Enter value for perfstat_password:perfstat
				
		
		
				
						    Enter value for defaulttablespace:perfstat
				
		
		
				
						    Entwe value for temporary_tablespace:temp
				
		
		
				
						
						
				 
		
				
						    最后如果安装成功会出现以下信息:
				
		
		
				
						
						
				 
		
				
						    Started spooling to D:\Program Files\PLSQL Developer\spcpkg.lis
    Creating Package STATSPACK...
    Package created
    No errors for PACKAGE PERFSTAT.STATSPACK
				
		
		
				
						
						    Creating Package Body STATSPACK...
    Package body created
    No errors for PACKAGE BODY PERFSTAT.STATSPACK
 
    NOTE:
    SPCPKG complete. Please check spcpkg.lis for any errors.
    Stopped spooling to D:\Program Files\PLSQL Developer\spcpkg.lis
				
		
		
				
						
						
				 
		
				
						    如果安装出现问题或者想要删除statspack,执行spdrop.sql脚本删除创建的所有对象。
				
		
		
				
						
						
				 
		
				
						
								    注:不要用PLSQL DEV进行执行脚本,因为有些指令无法编译通过。
						
				
		
		
				
						
						
				 
		
				
						
						
				 
		
				
						
								三、测试Statspack
						
				
		
		
				
						
						
				 
		
				
						    首先模拟执行n次的statspack.snap
				
		
		
				
						
						
				 
		
				
						    SQL> execute statspack.snap;
				
		
		
				
						    PL/SQL procedure successfully completed
				
		
		
				
						
						
				 
		
				
						    SQL> execute statspack.snap;
				
		
		
				
						    PL/SQL procedure successfully completed
				
		
		
				
						
						
				 
		
				
						    SQL> execute statspack.snap;
				
		
		
				
						    PL/SQL procedure successfully completed
				
		
		
				
						
						
				 
		
				
						    然后执行spreport.sql脚本
				
		
		
				
						
						
				 
		
				
						    SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spreport.sql;
				
		
		
				
						
						
				 
		
				
						    Enter value for begin_snap:1
				
		
		
				
						
								    Enter value for end_snap:3
						
				
		
		
				
						
								    Enter value for report_name:test
						
				
		
		
				
						
								
								
						
				 
		
				
						
								    注1:snap代码会在脚本执行的过程中展示出来
						
				
		
		
				
						
								    注2:会在当前目录下生成一个名为test.lst的文件保存信息