On 11/28/25 14:57, Andrus wrote:
> Hi!
>
> Table has index on name column:
>
> CREATE TABLE firma2.klient
> (
> kood character(12) primary key,
> nimi character(100),
> ...
> );
>
> CREATE INDEX IF NOT EXISTS klient_nimi_idx
> ON firma2.klient USING btree
> (nimi COLLATE pg_catalog."default" ASC NULLS LAST)
> TABLESPACE pg_default;
>
> Database settings have default values:
>
> enable_indexonlyscan on
> enable_indexscan on
> enable_indexonlyscan on
> enable_indexscan on
>
> Query
>
> SELECT * FROM firma2.klient WHERE nimi='John';
>
> Runs slowly.
>
> analyze firma2.klient;
> explain analyze select * from firma2.klient where nimi='John'
>
> Shows that index is not used:
>
> "Seq Scan on klient (cost=0.00..2287976.20 rows=1 width=4002)
> (actual time=12769.987..12769.988 rows=0 loops=1)"
> " Filter: (nimi = 'John'::bpchar)"
> " Rows Removed by Filter: 849971"
> "Planning Time: 4.751 ms"
> "Execution Time: 12770.029 ms"
>
> How to force Postgres to use index? It probably worked long time but
> suddenly stopped working today.
> Re-started whole windows server but problem persists.
>
> Using
>
> PostgreSQL 17.5 on x86_64-windows, compiled by msvc-19.43.34808, 64-bit
>
> in Windows Server 2022 vers 21H2
>
> Andrus.
>
>
> Posted also in
>
> https://stackoverflow.com/questions/79832965/how-to-use-index-in-simple-
> select
>
>
Seems to be already answered:
"It looks like reindex table firma2.klient restored index scan. create
index concurrently was used when lot of transactions using this table
where running"
--
Adrian Klaver
adrian.klaver@aklaver.com