Oracle下查询数据库SQL ID

news/2025/10/21 16:37:17/文章来源:https://www.cnblogs.com/small-wei/p/19155786

以下是常用查询SQLID的方法:

1. 通过 V$SQL 视图查询(常用)

-- 根据SQL文本模糊查询SQLID
SELECT sql_id, sql_text, executions, elapsed_time/1000000/executions as avg_elapsed_sec
FROM v$sql
WHERE sql_text LIKE '%你的SQL关键词%'
AND executions > 0
ORDER BY elapsed_time DESC;-- 查询特定用户的SQL
SELECT sql_id, sql_text, executions, first_load_time
FROM v$sql
WHERE parsing_schema_name = '用户名'
AND sql_text NOT LIKE '%BEGIN%'
ORDER BY first_load_time DESC;

2. 通过 V$SESSION 查询当前会话的SQLID

-- 查看当前所有会话正在执行的SQL
SELECT s.sid, s.serial#, s.username, s.sql_id, s.event, s.seconds_in_wait,sq.sql_text
FROM v$session s
LEFT JOIN v$sql sq ON s.sql_id = sq.sql_id
WHERE s.status = 'ACTIVE'
AND s.username IS NOT NULL
ORDER BY s.seconds_in_wait DESC;-- 查看特定会话的SQLID
SELECT sid, serial#, sql_id, sql_child_number, event
FROM v$session
WHERE sid = 123;  -- 替换为实际的SID

3. 通过 AWR 报告查询历史SQLID

-- 查询TOP SQL(需要安装AWR)
SELECT sql_id, executions,elapsed_time/1000000 as elapsed_sec,cpu_time/1000000 as cpu_sec,buffer_gets,disk_reads
FROM (SELECT sql_id, executions, elapsed_time, cpu_time, buffer_gets, disk_readsFROM dba_hist_sqlstatWHERE snap_id = (SELECT MAX(snap_id) FROM dba_hist_snapshot)ORDER BY elapsed_time DESC
)
WHERE rownum <= 20;

4. 通过 ASH 查询正在执行的SQLID

-- 查询当前ASH中的慢SQL
SELECT sql_id, COUNT(*) as sample_count,MAX(sample_time) as last_seen
FROM v$active_session_history
WHERE sample_time > SYSDATE - 1/24  -- 最近1小时
AND sql_id IS NOT NULL
GROUP BY sql_id
ORDER BY sample_count DESC;

5. 通过 V$SQLSTATS 查询统计信息

-- 查询性能最差的SQL
SELECT sql_id, sql_text,executions,elapsed_time/1000000/executions as avg_elapsed,cpu_time/1000000/executions as avg_cpu
FROM v$sqlstats
WHERE executions > 100
ORDER BY elapsed_time DESC;

6. 查询执行计划缓存中的SQLID

-- 通过SQL文本精确查询
SELECT sql_id, sql_text, executions, last_active_time
FROM v$sql
WHERE sql_text = '你的完整SQL语句'
AND sql_text IS NOT NULL;

7. 通过 DBA_HIST_SQLTEXT 查询历史SQL

-- 查询历史SQL文本对应的SQLID
SELECT sql_id, sql_text
FROM dba_hist_sqltext
WHERE sql_text LIKE '%你的SQL关键词%'
AND rownum <= 10;

8. 快速定位慢SQL的完整脚本

-- 查找当前最慢的SQL
SELECT s.sql_id,s.sql_text,s.executions,ROUND(s.elapsed_time/1000000, 2) as total_elapsed_sec,ROUND(s.elapsed_time/1000000/NULLIF(s.executions, 0), 2) as avg_elapsed_sec,s.cpu_time/1000000/NULLIF(s.executions, 0) as avg_cpu_sec,s.buffer_gets/NULLIF(s.executions, 0) as avg_buffer_gets,s.last_active_time
FROM v$sql s
WHERE s.executions > 0
AND s.last_active_time > SYSDATE - 1/24
ORDER BY s.elapsed_time DESC
FETCH FIRST 20 ROWS ONLY;

9. 查询特定会话的SQLID和详细信息

-- 获取完整诊断信息
SELECT s.sid,s.serial#,s.username,s.program,s.machine,s.sql_id,s.sql_child_number,s.event,s.wait_class,s.seconds_in_wait,sq.sql_text,sq.executions,sq.elapsed_time/1000000 as elapsed_sec
FROM v$session s
LEFT JOIN v$sql sq ON s.sql_id = sq.sql_id
WHERE s.status = 'ACTIVE'
AND s.sql_id IS NOT NULL
ORDER BY s.seconds_in_wait DESC;

10. 查询SQLID后查看执行计划

-- 方法1:通过DBMS_XPLAN
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('你的SQLID', 0, 'ALLSTATS LAST'));-- 方法2:通过V$SQL_PLAN
SELECT * FROM v$sql_plan WHERE sql_id = '你的SQLID' ORDER BY id;-- 方法3:查看执行计划的历史
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_AWR('你的SQLID'));

实用查询示例

-- 场景1:查找执行超过1秒的SQL
SELECT sql_id, ROUND(elapsed_time/1000000, 2) as elapsed_sec,executions,sql_text
FROM v$sql
WHERE elapsed_time/1000000 > 1
AND executions > 0
ORDER BY elapsed_time DESC;-- 场景2:查找绑定变量窥探问题的SQL
SELECT sql_id, executions, sql_text
FROM v$sql
WHERE executions > 1000
AND sql_text LIKE '%WHERE%'
ORDER BY executions DESC;-- 场景3:查找消耗Buffer最多的SQL
SELECT sql_id, sql_text,buffer_gets,ROUND(buffer_gets/NULLIF(executions, 0), 0) as avg_gets
FROM v$sql
WHERE buffer_gets > 100000
ORDER BY buffer_gets DESC;

获取SQLID后的下一步

-- 1. 查看执行计划
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('SQLID', child_number));-- 2. 查看绑定变量
SELECT name, value_string, datatype_string
FROM v$sql_bind_capture
WHERE sql_id = 'SQLID';-- 3. 固定执行计划
EXEC DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE(sql_id => 'SQLID');-- 4. 查看执行历史
SELECT snap_id, begin_interval_time, elapsed_time_total, executions_total
FROM dba_hist_sqlstat
WHERE sql_id = 'SQLID'
ORDER BY snap_id DESC;

总结:

  • 快速定位:用 v$session 查看正在执行的SQL
  • 性能分析:用 v$sql 按耗时/执行次数排序
  • 历史分析:用 dba_hist_sqlstat 看AWR数据
  • 实时监控:用 v$active_session_history 看当前活动

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/942410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析:【数据结构】顺序表0基础知识讲解 + 实战演练

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年流量控制阀厂家推荐排行榜,液压流量控制阀,气动流量控制阀,高压流量控制阀,精密流量控制阀批发公司推荐

2025年流量控制阀厂家推荐排行榜:液压、气动与高压精密控制技术深度解析 在工业自动化与过程控制领域,流量控制阀作为关键执行元件,其性能直接影响整个系统的稳定性与效率。随着工业4.0和智能制造的深入推进,流量控…

楼里网站开发完成,产品进入交代期

在产品一期的过程中手忙脚乱,到产品二期已经从从容容游刃有余,要做的事情还有不少,走一步算一步。👏 哈喽大家好,在安静了一段时间之后,楼里产品系列二期,于2025年10月21日正式收尾。 ✅ 开发的时间周期不到一…

比特币挖矿盈利能力9月下降超7%

根据某投资机构报告,9月份比特币挖矿盈利能力下降超过7%,主要原因是网络算力上升和比特币价格下跌。北美上市矿企产量降至3401枚比特币,每EH/s收入从8月的5.6万美元降至5.2万美元。比特币挖矿盈利能力9月下降超7% 核…

LobeHub UI Kit

LobeHub UI Kit 漫思

实用指南:Chromium 138 编译指南 - Android 篇:配置depot_tools(四)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Nimm Game

模型介绍 Nim Game 是博弈论中最著名且最重要的模型之一,规则如下:有 \(n\) 堆物品,每堆分别有 \(a_1,a_2,\cdots,a_n\) 个; 两名玩家轮流操作; 每次只能从某一堆中取任意数量的物品(至少 \(1\) 个,至多取完该堆…

2025年陶瓷过滤机厂家权威推荐榜:真空/盘式/矿用/全自动/真空带式陶瓷过滤机,固液分离设备,尾矿处理设备,圆盘过滤机专业选购指南

2025年陶瓷过滤机厂家权威推荐榜:真空/盘式/矿用/全自动/真空带式陶瓷过滤机,固液分离设备,尾矿处理设备,圆盘过滤机专业选购指南 行业背景与发展趋势 固液分离技术作为现代工业生产中不可或缺的关键环节,在矿山、…

基于C++的远程键盘监控器设计与实现 - 教程

基于C++的远程键盘监控器设计与实现 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

2025年医药冷链运输厂家权威推荐榜:药品/临床样本/CAR-T/蛋白/诊断试剂/生物制品/血液/细胞/芯片全程温控,冷藏车/冷藏箱/保温箱/干冰/液氮及国际冷链进出口专业服务

2025年医药冷链运输厂家权威推荐榜:药品/临床样本/CAR-T/蛋白/诊断试剂/生物制品/血液/细胞/芯片全程温控,冷藏车/冷藏箱/保温箱/干冰/液氮及国际冷链进出口专业服务 随着生物医药产业的快速发展,医药冷链运输行业正…

2025 装修公司推荐排行榜单:江苏/浙江/制药厂/厂房/实验室/办公室/店面/净化室装修公司推荐,实测老客复购率与专业能力

引言 工装装修涉及厂房、实验室、净化车间等多场景,不同领域对施工标准、技术规范的要求差异显著,食品、制药、半导体等行业更有严苛的合规性要求。当前市场中,部分企业存在技术能力不足、施工质量参差、售后保障缺…

零代码改造 + 全链路追踪!Spring AI 最新可观测性详细解读

本文部分总结于 8 月的 LoongSuite 系列公开课及 AI 原生应用实战营 meetup 分享内容。作者:张铭辉(希铭) 本文部分总结于 8 月的 LoongSuite 系列公开课及 AI 原生应用实战营 meetup 分享内容。如需查看原视频欢迎…

xupt 3g移动开发实验室二面

2 B4026 [语言月赛 202409] 灵感 这天,迅风在欣赏某地的美景时,灵感大作,在上午及下午分别写下了两篇文章,而且迅风很喜欢数文章的字数。 具体地,如果迅风在下午写下的文章的字数之和严格大于他在上午写下的文章的…

2025年连铸机设备厂家权威推荐榜:扇形段/大包回转台/钢包中间罐/结晶器总成/拉矫机/输送辊道等核心部件专业解析

2025年连铸机设备厂家权威推荐榜:扇形段/大包回转台/钢包中间罐/结晶器总成/拉矫机/输送辊道等核心部件专业解析 连铸机作为现代钢铁生产中的关键设备,其性能直接影响着钢铁企业的生产效率和产品质量。随着钢铁行业向…

React使用useLocation监听url地址变化,工具URLSearchParams获取参数

React使用useLocation监听url地址变化,工具URLSearchParams获取参数React使用useLocation监听url地址变化,工具URLSearchParams获取参数import * as React from react import { Link, useLocation } from react-router…

碰一碰,秒更新!游戏近场快传助力多人联机无缝组队

在多人联机游戏场景中,玩家组队对战时因游戏版本不一致导致的体验中断问题长期存在。当游戏更新资源包体积庞大时,未及时更新的玩家需依赖网络下载,不仅消耗流量,还因等待时间过长引发用户流失。 HarmonyOS SDK 游…

Moka AI 驱动 HR系统转型实践案例:从技术探索到组织价值落地的全链路解析

Moka AI 驱动 HR系统转型实践案例:从技术探索到组织价值落地的全链路解析作为业内首个 AI 原生 HR SaaS 解决方案提供商,Moka 从 2018 年启动 AI 技术研发至今,已形成 “招聘 - 绩效 - 人才盘点 - 组织发展” 全场景…

2025年服饰厂家权威推荐榜:棒球帽,卫衣,羽绒服源头厂家精选,潮流设计与舒适品质口碑之选

2025年服饰厂家权威推荐榜:棒球帽,卫衣,羽绒服源头厂家精选,潮流设计与舒适品质口碑之选 在当今快节奏的时尚产业中,棒球帽、卫衣和羽绒服已成为不可或缺的日常穿搭单品。随着消费者对品质和设计要求的不断提升,…

字节跨平台框架 Lynx 开源:一个 Web 开发者的原生体验

字节跨平台框架 Lynx 开源:一个 Web 开发者的原生体验字节跨平台框架 Lynx 开源:一个 Web 开发者的原生体验恋猫Flutter & Dart GDE​关注他收录于 移动跨平台开发之家61 人赞同了该文章最近各大厂都在开源自己…

2025年10月北京昌平回龙观酒店推荐:对比评测榜助您锁定高性价比会议与度假之选

一、引言 在京津冀一体化与中关村北部研发服务带双重带动下,昌平回龙观区域已成为科技企业、高校研学、会展活动及周末微度假的高频目的地。对于会议组织者、研学机构、婚宴新人以及希望兼顾通勤便利与配套完善的差旅…