Здравствуйте, sergey 123, Вы писали:
S1>Всем привет!
S1>Есть таблица t1(a integer, b integer). Есть индексы(btree) на a и b и primary key(составной) из а и b. А таблице где-то около 1000 записей.
S1>Собственно как узнать почему seq scan, а не index scan. Думаю, что потому что мало записей в таблице, но как подтвердить или опровергнуть это гипотезу?
Для такой маленькой таблицы (грубо говоря, 8…16 килобайт в зависимости от битности integer) действительно быстрее всю её всосать в память и искать тупым сканированием.
Если записей будет существенно больше, скажем, миллиард, то и тогда я бы ожидал, что для поиска по полю a хватит составного PK по (a, b). Вообще, от индексов по (x1, … xN) мало толку при существующем индексе по (x1, …, xN, …, xM).