sql - 带有 select 语句的 Oracle SQL View

标签 sql oracle performance

你好,我的一个观点有问题。

我用这条语句查看了几次

where date=(select d from user_date_table)

这对结果来说效果很好,但性能非常慢。

当我执行以下操作时:

where date=to_date(

这要快得多,但这在这里不起作用,因为我必须给 View 这个值。

还有什么我可以做的吗?

现在我已经用一个包对它进行了测试,这个包有一个函数 package_name.get_user_date 可以给我值。但这也很慢。

还有什么其他的东西可以使这个查询更快吗?

谢谢!

最佳答案

有 2 种可能的方法可以尝试解决此问题。 user_date_table 中是否有重复的日期?

如果不是,那么您可以在查询中连接到该表,而不是将其放入 where 子句中。

如果是,那么您可以将 View 中的查询更改为 选择 ... 来自你的平板电脑 哪里存在 ( 选择 * 来自 user_date_table udt 其中 udt.d = r.date )

此外,检查并查看 user_date_table 上有哪些索引。也许在 to_date(d) 上有一个基于函数的索引,这就是它工作得更快的原因。

关于sql - 带有 select 语句的 Oracle SQL View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40394587/

相关文章:

php - MySQL:时间轴脚本,添加用户帖子和我自己的帖子

java - PLS-00357 : Table, 在此上下文中不允许查看或序列引用 'CHEM_PHYSICAL_PROPERTIES'

performance - WinDbg 加载符号需要很长时间;正在搜索大型网络 UNC 符号存储中的每个目录

oracle - 如何禁用 oracle 窗体中的 F8

sql - 如何使用 out sys_refcursor 参数执行 oracle 过程?

javascript - 查询性能不佳

performance - BProlog 8.1 中的表格性能不均衡

如果行不存在,Mysql 不更新

java - 比较两个时间戳日期

sql - 为什么 postgres 表中的 xmax 系统列对于未删除的行不为零?