怎么查询oracle中响应时间最长的sql语句,并列出平均响应时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么查询oracle中响应时间最长的sql语句,并列出平均响应时间相关的知识,希望对你有一定的参考价值。

我用select * from v$sqlarea order by ELAPSED_TIME desc查看,
ELAPSED_TIME最大的几条是63786108879这个级别的,但实际查询起来非常快,不是我想要的响应时间最长的sql语句的结果

可以看一下执行计划,里边很详细。在plsql里按住F5即是执行计划。
如果在sql命令窗口:
Explain plan
explain plan for
select * from table_name;
查看结果:
select * from table(dbms_xplan.display());
参考技术A 这个sql的响应时长跟执行计划有一定的关系,但网络的影响有时候也会非常大的。 参考技术B select * from v$sql 字段elapsed_time

如何使用 SQL 在查询语句中查找最长匹配?

【中文标题】如何使用 SQL 在查询语句中查找最长匹配?【英文标题】:How to find longest match in a query sentence using SQL? 【发布时间】:2017-09-29 20:51:08 【问题描述】:

假设我有一张这样的桌子:

----------------------------------
|id |phrase
----------------------------------
|1  |real
|2  |testing
|3  |real message
|4  |testing message
|5  |special testing message

目标是找到查询语句中最长匹配的id。例如,查询语句This is a testing message 应该返回4

我用的是PHP和MySQL,所以如果单独用SQL做太复杂,部分操作可以切换到PHP。目前我正在把整个表格拿出来并在 PHP 上一一做正则表达式,但如果表格变大,效率会很低。有没有办法将一些工作负载切换到 SQL,这样我就不需要将整个表存储到内存中?

【问题讨论】:

试试 LEN() 函数。 link @JoãoPaulodeLima LEN() 如何解决这个问题? 对不起,cytsunny。其实我以为你想得到最长的短语。但现在我看到它需要匹配你的句子。 【参考方案1】:

使用CONCATLENGTHLIMIT

SELECT id FROM table
WHERE ('.$search_term.' LIKE CONCAT("%",phrase,"%"))
ORDER BY LENGTH(phrase) DESC LIMIT 1

【讨论】:

以上是关于怎么查询oracle中响应时间最长的sql语句,并列出平均响应时间的主要内容,如果未能解决你的问题,请参考以下文章

查询数据库中某个字段的sql语句怎么写

oracle 视图sql语句怎么写

oracle 视图sql语句怎么写

oracle 的问题 执行SQL查询语句 出现:部分多字节字符

oracle 中怎样查看以前执行过的SQL语句?

在oracle数据库中的分页SQL语句怎么写?