你好,我的一个观点有问题。
我用这条语句查看了几次
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/