【发布时间】:2016-06-14 14:02:22
【问题描述】:
我是 SQL 新手,我正在寻找一种更快的方法来执行一个非常简单的语句。表中有多个值应该匹配以返回行。有没有更快的方法通过?该表是一个视图,我没有进行任何更改的管理员权限。
select * from TABLE.View_xy
where location=1
and b=2
and c=3
and d=4
and e=5
and f=6
and manDate between (TIMESTAMP '2016-06-01 00:00:00') and (TIMESTAMP '2016-06-02 23:59:59')
and g=7
【问题讨论】:
-
这是最快的方法,只需在 = 谓词上创建索引,并以 between 结束。
-
@Gar 虽然他们可能没有权限并且它是一个视图而不是一个表格。
-
在等效的基础字段上放置索引会有所帮助,除非其中一些字段是衍生/计算值。
-
您是否遇到了该查询的问题?运行时间长吗?绞刑? ETC。 ?乍一看,它看起来很好,但它可能很大程度上取决于视图中实际 SQL 的样子。如果它没有及时返回,请提供有关数据大小/信息的更多信息以及解释。这将有助于发现任何潜在的瓶颈。
-
我正在尝试提高一个非常大的 VBA 宏的速度,该宏需要 1 小时才能执行。有很多数据用多个 sql 语句处理...这只是第一个:)