Questions tagged «explain»

4
在一系列时间戳上优化查询(两列)
我在Ubuntu 12.04上使用PostgreSQL 9.1。 我需要选择一段时间内的记录:我的表time_limits有两个timestamp字段和一个integer属性。我的实际表中还有其他列不涉及此查询。 create table ( start_date_time timestamp, end_date_time timestamp, id_phi integer, primary key(start_date_time, end_date_time,id_phi); 该表包含大约2M条记录。 进行以下查询需要花费大量时间: select * from time_limits as t where t.id_phi=0 and t.start_date_time <= timestamp'2010-08-08 00:00:00' and t.end_date_time >= timestamp'2010-08-08 00:05:00'; 所以我尝试添加另一个索引-PK的倒数: create index idx_inversed on time_limits(id_phi, start_date_time, end_date_time); 我感觉性能有所提高:访问表中间的记录的时间似乎更合理:介于40到90秒之间。 但是对于时间范围的中间值,仍然需要数十秒的时间。定位到表格末尾时(按时间顺序),则要多两倍。 我explain analyze第一次尝试获取此查询计划: Bitmap Heap …

4
为什么在解释查询中读取const表后会收到“不可能在哪里注意到”的信息?
当我运行带有解释的查询时,表中有一个独特的复合键,如fr(fromid,toid),得到以下结果: Impossible WHERE noticed after reading const tables` 我运行的查询: explain SELECT rid FROM relationship WHERE fromid=78 AND toid=60 有什么帮助吗? EDIT1: 当我使用以下查询时: explain SELECT rid FROM relationship WHERE fromid=60 and toid=78 AND is_approved='s' OR is_approved='f' OR is_approved='t' 我看到的USING WHERE不是上一条消息,而是当我使用以下查询时: explain SELECT rid FROM relationship WHERE fromid=60 and toid=78 AND (is_approved='s' OR …
27 mysql  explain 

1
EXPLAIN ANALYZE不显示plpgsql函数内部查询的详细信息
我在PostgreSQL 9.3中使用PL / pgSQL函数,内部有几个复杂的查询: create function f1() returns integer as $$ declare event tablename%ROWTYPE; .... .... begin FOR event IN SELECT * FROM tablename WHERE condition LOOP EXECUTE 'SELECT f2(event.columnname)' INTO dummy_return; END LOOP; ... INSERT INTO ... FROM a LEFT JOIN b ... LEFT JOIN c WHERE ... UPDATE …

3
为什么MySQL甚至对这个顺序强制也忽略索引?
我运行EXPLAIN: mysql> explain select last_name from employees order by last_name; +----+-------------+-----------+------+---------------+------+---------+------+-------+----------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-----------+------+---------------+------+---------+------+-------+----------------+ | 1 | SIMPLE | employees | ALL | NULL | NULL | NULL | NULL | …

2
了解EXPLAIN命令的时间格式-Postgres
当我在给定查询上运行EXPLAIN ANALYZE命令时,我很难解释输出的时间值。例如(实际时间= 8163.890..8163.893)。内部小数代​​表重复字符吗?抱歉,这可能是一个讨厌的问题,但是我想确保我正确地解释了结果。 -> GroupAggregate (cost=2928781.21..2929243.02 rows=1 width=27712) (actual time=8163.890..8163.893 rows=1 loops=1)

2
为什么在解释知道答案时count(*)慢?
这个查询:select count(*) from planner_event需要很长时间才能运行-这么长的时间,我放弃并杀死了它。但是,当我运行时explain select count(*) from planner_event,我可以在输出中看到一列带有行数(14m)的列。 为什么解释可以立即获得行数,但是count(*)需要很长时间才能运行?
14 mysql  count  explain 

1
为什么我创建的基于函数的索引会降低成本,但不会出现在解释计划明细表中?
抱歉,列/表的名称很糟糕,但是由于这是一个工作项目,因此我想确保可以问清楚。我只是希望至少了解为什么我没有看到我的功能索引被使用,所以我在生产环境中添加此索引感觉更好。 该查询使用的是我创建的视图,该视图具有许多不同的列,并带有执行以下操作的where子句: .... AND e.sysid = NVL(wi.ALPHAid, -999) AND NVL(wi.ALPHAid, -999) <> -999 AND NVL(wi.BRAVOid, -999) = -999 AND NVL(wi.CHARLIEid, -999) = -999 ... 据我了解,如果您通过函数传递列,而需要创建基于函数的索引,则Oracle无法使用索引。因此,在创建索引之前,我需要在解释计划中获得以下费用: 计划哈希值:1233409744 ------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | …
8 oracle  index  explain 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.