Oracle中sql语句如何执行日志查询

Oracle中的SQL语句执行日志查询可以通过以下步骤来完成:

1. 开启SQL Trace跟踪

在开启SQL Trace跟踪前需要确认以下事项:
- 需要有ALTER SESSION权限
- 需要对要跟踪的会话打开跟踪标识

具体步骤如下:
- 开启跟踪标识:ALTER SESSION SET SQL_TRACE=TRUE;
- 执行目标SQL语句
- 关闭跟踪标识:ALTER SESSION SET SQL_TRACE=FALSE;

2. 导出SQL执行日志信息

执行上述步骤后,我们即可生成SQL执行日志信息。但这些日志信息并不是易于被分析的纯文本信息,因此我们可以使用工具对这些日志文件进行解析和格式化,从而方便我们查看和分析。

Oracle自身提供有tkprof这个工具,可以将SQL Trace文件进行解析和格式化,具体用法如下:

tkprof trace_file_name output_file_name explain=用户名/密码 sys=no

其中trace_file_name为SQL Trace存储的文件名,output_file_name是解析后生成的目标日志文件名,explain是解析输出的文本是否需要加入SQL语句的执行计划,sys表示在解析过程中是否需要查询SYS表。

示例1

我们来举个例子,比如我们想要通过SQL Trace来跟踪一个查询进程,查询的SQL语句如下:

SELECT * FROM CUSTOMERS WHERE CITY = 'New York';

我们可以通过以下步骤来进行跟踪和导出执行日志信息:

-- 1. 开启SQL Trace跟踪
ALTER SESSION SET SQL_TRACE=TRUE;

-- 2. 执行目标SQL语句
SELECT * FROM CUSTOMERS WHERE CITY = 'New York';

-- 3. 关闭SQL Trace跟踪
ALTER SESSION SET SQL_TRACE=FALSE;

-- 4. 导出执行日志信息
tkprof trace_file_name output_file_name explain=用户名/密码 sys=no

示例2

我们再来举个例子,比如我们想要对一个PL/SQL过程进行跟踪,并查看执行的时间和I/O消耗情况。此时,我们可以通过以下步骤来跟踪和导出执行日志信息:

-- 1. 开启SQL Trace跟踪
ALTER SESSION SET SQL_TRACE=TRUE;

-- 2. 执行目标PL/SQL过程
DECLARE
  x NUMBER;
BEGIN
  FOR i IN 1..10000 LOOP
    x := x + i;
  END LOOP;
END;

-- 3. 关闭SQL Trace跟踪
ALTER SESSION SET SQL_TRACE=FALSE;

-- 4. 导出执行日志信息
tkprof trace_file_name output_file_name sys=no sort=exeela

这里我们指定了sort=exeela来对SQL语句执行时间进行排序,并把I/O消耗高的SQL语句排在前面,以便我们更快速地找到瓶颈。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle中sql语句如何执行日志查询 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 计算机二级如何一次性通过?给NCRE焦躁心情降温!

    计算机二级如何一次性通过?给NCRE焦躁心情降温! 前言 计算机二级考试是广大IT从业者的必备证书之一,具有一定的专业性和难度。很多同学在备考过程中会有焦虑、迷茫等情绪。但只要我们掌握正确的方法,坚持学习,就能够一次性通过计算机二级考试。 攻略 第一步:制定规划 制定一个合理的考试规划,将每个科目的知识点进行分类,有针对性地进行学习和复习,建议在每个科目中都…

    database 2023年5月19日
    00
  • 渗透测试信息收集之常用端口信息

    渗透测试信息收集之常用端口信息 在渗透测试的过程中,信息收集是至关重要的一步。其中,根据目标主机所开放的端口信息来推断其所运行的服务,是信息收集的一个重要环节。本文将讲述一些常见的端口信息收集攻略,以供参考。 常用端口信息查询 nmap 信息收集 nmap是一款常用的端口信息扫描工具。通过输入命令nmap -sS -sV -p- target_ip,nmap…

    database 2023年5月22日
    00
  • Ubuntu下载安装Redis

    相比于 Windows 系统而言,Redis 更适合于在 Linux 系统上使用,这是由 Redis 的底层机制决定的。 本节介绍如何在 Linux 发行版 Ubuntu 系统上安装 Redis 数据库。 下载Redis 在Redis官方网站上下载最新版的Redis压缩包。下载完成后,将压缩包解压到任意目录。 安装依赖文件 打开终端,执行以下命令: sudo…

    Redis 2023年3月17日
    10
  • Linux下安装Python3和django并配置mysql作为django默认服务器方法

    下面是详细的攻略。 安装Python3 安装依赖项 在安装 Python 之前,需要安装一些必要的依赖项。可以使用以下命令安装: sudo apt-get install build-essential checkinstall sudo apt-get install libreadline-gplv2-dev libncursesw5-dev sudo …

    database 2023年5月22日
    00
  • 傻瓜式用Eclipse连接MySQL数据库

    下面是傻瓜式用Eclipse连接MySQL数据库的攻略。 前置条件 已安装Eclipse,建议使用最新版本。 已安装MySQL数据库,建议使用最新版本。 已安装MySQL JDBC驱动。 步骤 1. 导入MySQL JDBC驱动 首先需要将MySQL JDBC驱动导入Eclipse。 在Eclipse中,选择“Window” -> “Preferenc…

    database 2023年5月18日
    00
  • docker容器如何优雅的终止详解

    下面是关于“docker容器如何优雅的终止”的详细讲解及示例说明。 什么是优雅的终止 在docker容器运行中,需要进行终止操作。但是,如果直接使用docker stop 命令终止容器,在终止时,容器会直接被强制关闭,可能会导致数据丢失或意外错误发生。为了优雅地终止容器,可以使用一种更加安全和有效的方式,也就是所谓的“优雅终止(Graceful Termin…

    database 2023年5月22日
    00
  • 《1—关于解决MySQL在控制台插入中文乱码问题》

    说明:以下所有操作都是基于我个人的电脑及示例,读者可以参考我这个解决过程,去解决自己的问题,如有其它疑问,欢迎留言交流。 首先来看看我遇到的问题: 【1】查看数据库: 【2】使用test数据库: 【3】查看test数据库中有哪些表: 【4】查看student_table2表中的字段内容: 【5】向student_table2表中插入一条记录: 可以看到插入失…

    MySQL 2023年4月13日
    00
  • SQL 返回非分组列

    SQL中的分组(Group by)用于将相同值的行组合成一个汇总行,通常会结合聚合函数(如COUNT, SUM, AVG等)来计算分组后的结果。分组操作需要指定一个或多个分组列,而所有非分组列则需要使用聚合函数进行处理。但有时候我们需要返回非分组列的原始值,该如何实现呢? 在SQL中,我们可以通过以下方法来返回非分组列的原始值: 1.使用子查询或视图 使用子…

    database 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部