Re: Help on query plan.
От | William N. Zanatta |
---|---|
Тема | Re: Help on query plan. |
Дата | |
Msg-id | 3E2D766D.4000809@veritel.com.br обсуждение исходный текст |
Ответ на | Help on query plan. (was: select like and indexes) ("William N. Zanatta" <william@veritel.com.br>) |
Ответы |
Re: Help on query plan.
|
Список | pgsql-general |
Somebody called 'Tom Lane' tried to say something! Take a look: >>>access=# explain analyze select * from tbl_access where ((ip >= >>>'12'::character varying) AND (ip <> '13'::character varying)) >>>access-# ; >>>QUERY PLAN >>>----------------------------------------------------------------- >>>Seq Scan on tbl_access (cost=0.00..45504.81 rows=1193347 width=133) >>>(actual time=59.03..84286.81 rows=1193987 loops=1) >>>Filter: ((ip >= '12'::character varying) AND (ip <> '13'::character >>>varying)) >>>Total runtime: 86862.12 msec >>>(3 rows) > > >>Hm, so *all* of the rows in your table have ip values starting with '12'? > > > Oh, wait wait wait. There's a typo in that explain command. It should > be > > explain analyze select * from tbl_access where ((ip >= > '12'::character varying) AND (ip < '13'::character varying)) > > regards, tom lane > > Hmm ok, running it again... explain analyze select * from tbl_access where((ip >='12'::character va rying) AND (ip < '13'::character varying)); QUERY PLAN -------------------------------------------------------------------------------- Seq Scan on tbl_access (cost=0.00..45504.81 rows=16968 width=133) (actual time=78.64..29174.63 rows=20318 loops=1) Filter: ((ip >= '12'::character varying) AND (ip < '13'::character varying)) Total runtime: 29222.49 msec ==================== / ******* \ ================ And now, the same query with enable_seqscan set to OFF. explain analyze select * from tbl_access where((ip >='12'::character varying) AND (ip < '13'::character varying)); QUERY PLAN ---------------------------------------------------------------------------------------------------------------------------------- Index Scan using teste1 on tbl_access (cost=0.00..63182.79 rows=16968 width=133) (actual time=0.91..1813.32 rows=20318 loops=1) Index Cond: ((ip >= '12'::character varying) AND (ip < '13'::character varying)) Total runtime: 1863.33 msec (3 rows) Any other suggestions? thanks, william -- Perl combines all of the worst aspects of BASIC, C and line noise. -- Keith Packard
В списке pgsql-general по дате отправления: