带有select语句的Oracle SQL View,其中

时间:2016-11-03 05:43:33

标签: sql oracle performance

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

我将此语句用作视图时间

where date=(select d from user_date_table)

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

当我执行以下操作时:

where date=to_date(

这速度要快得多,但这不会起作用,因为我必须给视图赋予这个值。

我还能做些什么吗?

现在我已经使用包含函数package_name.get_user_date的包来测试它,它给了我值。但这也很慢。

是否还有其他可能使此查询更快的内容?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

如果没有,那么您可以在查询中加入此表,而不是将其放入where子句中。

如果是,则可以将视图中的查询更改为 选择 ... 来自你的表 存在的地方 (   选择 *   来自user_date_table udt   其中udt.d = r.date )

另外,检查并查看user_date_table上的索引。也许在to_date(d)上有一个基于函数的索引,这就是为什么它的工作速度更快。