快速业务通道

ORACLE学习笔记--性能优化

作者 凌众技术 来源 互联网 浏览 发布时间 2012-01-15
v$process p,
  v$session s,
  v$parameter p1,
  v$parameter p2
  WHERE p1.name = 'user_dump_dest'
  AND p2.name = 'db_name'
  AND p.addr = s.paddr
  AND s.audsid = USERENV ('SESSIONID')
  最后,可以通过Tkprof来解析跟踪文件,如
  Tkprof 原文件 目标文件 sys=n

4.怎么设置整个数据库系统跟踪
  其实文档上的alter system set sql_trace=true是不成功的,但是可以通过设置事件来完成这个工作,作用相等
  alter system set events
  '10046 trace name context forever,level 1';

  如果关闭跟踪,可以用如下语句
  alter system set events
  '10046 trace name context off';

其中的level 1与上面的8都是跟踪级别
  level 1:跟踪SQL语句,等于sql_trace=true
  level 4:包括变量的详细信息
  level 8:包括等待事件
  level 12:包括绑定变量与等待事件

5.怎么样根据OS进程快速获得DB进程信息与正在执行的语句
  有些时候,我们在OS上操作,象TOP之后我们得到的OS进程,怎么快速根据OS信息获得DB信息呢?
  我们可以编写如下脚本:
  $more whoit.sh
  #!/bin/sh
  sqlplus /nolog 100,cascade=> TRUE);
  dbms_stats.gather_table_stats(User,TableName,degree => 4,cascade => true);

 

这是对命令与工具包的一些总结
  <1>、对于分区表,建议使用DBMS_STATS,而不是使用Analyze语句。 
   a) 可以并行进行,对多个用户,多个Table 
   b) 可以得到整个分区表的数据和单个分区的数据。 
   c) 可以在不同级别上Compute Statistics:单个分区,子分区,全表,所有分区 
   d) 可以倒出统计信息 
   e) 可以用户自动收集统计信息 
  <2>、DBMS_STATS的缺点 
   a) 不能Validate Structure 
   b) 不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的信息,这两个仍旧需要使用Analyze语句。 
   c) DBMS_STATS 默认不对索引进行Analyze,因为默认Cascade是False,需要手工指定为True
  <3>、对于oracle 9里面的External Table,Analyze不能使用,只能使用DBMS_STATS来收集信息。

6.怎么样快速重整索引
  通过rebuild语句,可以快速重整或移动索引到别的表空间
  rebuild有重建整个索引数的功能,可以在不删除原始索引

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号