oracle trace参数设置,使用Oracle sql_trace 工具

使用Oracle sql_trace 工具

前言:

sql_trace 是我在工作中经常要用到的调优工具,相比较statspack 我更愿意用这个工具。

因为数据库慢原因的85%以上是由于sql问题造成的,statspack没有sql的执行计划。显示没有它直观,方便,对想要针对性不强,

1,介绍数据库调优需要经常会用到的工具,可以很精确地跟抓取相关session正在运行的sql。再通过tkprof分析出来sql的执行计划等相关信息,从而判断那些sql语句存在问题。

统计如下信息(摘字官方文档):

Parse, execute, and fetch counts

CPU and elapsed times

Physical reads and logical reads

Number of rows processed

Misses on the library cache

Username under which each parse occurred

Each commit and rollback

2,使用

使用前需要注意的地方

1,初始化参数timed_statistics=true   允许sql trace 和其他的一些动态性能视图收集与时间(cpu,elapsed)有关的参数。一定要打开,不然相关信息不会被收集。这是一个动态的参数,也可以在session级别设置。

SQL>alter session set titimed_statistics=true

2,MAX_DUMP_FILE_SIZE跟踪文件的大小的限制,如果跟踪信息较多可以设置成unlimited。可以是KB,MB单位,9I开始默认为unlimited这是一个动态的参数,也可以在session级别设置。

SQL>alter system set max_dump_file_size=300

SQL>alter system set max_dump_file_size=unlimited

3,USER_DUMP_DEST指定跟踪文件的路径,默认路径实在$ORACLE_BASE/admin/ORA_SID/udump这是一个动态的参数,也可以在session级别设置。

SQL>alter system set user_dump_dest=/oracle/trace

数据库级别

设置slq_trace参数为true会对整个实例进行跟踪,包括所有进程:用户进程和后台进程,会造成比较严重的性能问题,生产环境一定要慎用。

SQL>alter system set sql_trace=true;

Session级别:

相关文档:

系统环境:Windows 7

软件环境:Visual C++ 2008 SP1 +SQL Server 2005

本次目的:编写一个航空管理系统

这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

一、基础

1、说明:创建数据库

CREATE DATABASE database-name

2、说明:删除数据库

drop database dbname

3、说明:备份sql server

--- 创建 备份数据的 device

USE master

EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'

--- 开始 备份

BACKUP DATABASE pubs TO testBack

4、说 ......

比如在Northwind数据库中

有一个查询为

SELECT   c.CustomerId,   CompanyName

from   Customers   c

WHERE   EXISTS(

SELECT   OrderID   from   ......

一、深入浅出理解索引结构

实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:

其实,我们的汉语字典� ......

改善SQL语句

很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如:

select * from table1 where name=''zhangsan'' and tID > 10000

和执行:

select * from table1 where tID > 10000 and name=''zhangsan''

一些人不知道以上两条语句的执行效率是否一 ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值