Oracle - 使用 v$sql 优化查询

标签 oracle

在 Oracle 中,使用 Java 的 JDBC,我正在尝试优化特定查询:

select sql_fulltext from v$sql where last_active_time > ?

(?=最近的某个日期)

查询运行时间在 1.8 秒内,即使没有结果。 我想知道如何改进它。

最好的事情是如果我在 last_active_time 上有一个 INDEX,但它是一个 View 。

我的问题是: 如何提高查询的运行时间? 我可以发送任何可能的提示吗? 是否可以在此 View 上创建物化 View ,并以某种方式对其进行索引?

如有任何建议,我们将不胜感激。

谢谢

最佳答案

V$SQL 已知速度有些慢。它在很大程度上是您在那里查询的内存结构。如果您担心性能(以及对系统的影响),您应该使用 V$SQLSTATS

报价from the manual

The column definitions for columns in V$SQLSTATS are identical to those in the V$SQL and V$SQLAREA views. However, the V$SQLSTATS view differs from V$SQL and V$SQLAREA in that it is faster, more scalable, and has a greater data retention

(强调我的)

但是有一个缺点:V$SQLSTATS 不包含 V$SQL 中的所有列,但它包含 SQL_FULLTEXT 列,所以它应该适合您的用例

关于Oracle - 使用 v$sql 优化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22828386/

相关文章:

java - spring boot 2.3.0.RELEASE : UnsatisfiedDependencyException for Oracle 12. 2.0.1 jdbcdriver中的新错误,但不是mysql jdbcdriver

java - 无法使用 12c jar 创建到 Oracle 12c 的 Eclipse 数据源。但是 11g 有效

database - 我如何更新 pl/sql 中嵌套表的列?

oracle - 无法在 macOS Big Sur 上安装 DBD::Oracle => 未找到依赖的 dylib '@rpath/libclntsh.dylib.19.1'

sql oracle in() 子句

java - Jdbc驱动程序错误

mysql - SQL - 比较 1 亿张表上的文本(组合)

java - 从 Java 到 Oracle 的连接不可靠

sql - COUNT() 上的 Oracle 性能问题

oracle - 空包 <包名称> 定义(无公共(public)成员)