Hi, On Wed, Jan 26, 2022 at 12:39:25PM +0100, Matthias Apitz wrote: > > > > sisis=# explain (analyze, buffers) select * from d01buch where d01ort like 'Z 9610%' ; > > > QUERY PLAN > > > ------------------------------------------------------------------------------------------------------------------------------- > > > Gather (cost=1000.00..680262.71 rows=510 width=952) (actual time=1324.096..1349.429 rows=1 loops=1) > > > Workers Planned: 4 > > > Workers Launched: 4 > > > Buffers: shared hit=102040 read=560674 > > > -> Parallel Seq Scan on d01buch (cost=0.00..679211.71 rows=128 width=952) (actual time=1117.663..1315.062 rows=0 loops=5) > > > Filter: (d01ort ~~ 'Z 9610%'::text) > > > Rows Removed by Filter: 1055853 > > > Buffers: shared hit=102040 read=560674 > > > Planning Time: 2.028 ms > > > Execution Time: 1349.593 ms > > > (10 Zeilen) > > > > > > Why is this (ignoring the Index) and what could be done? > [...] > create INDEX d01ort on d01buch(d01ort) ;/* D01ORT */ That index can't be used with a LIKE that has a trailing wildcard. You need to either create an index with text_pattern_ops operator class (see https://www.postgresql.org/docs/current/indexes-opclass.html), or a GIN index using pg_trgm (which will also work with non-trailing wildcards), see https://www.postgresql.org/docs/current/pgtrgm.html.