Код: Выделить всё
create TABLE Docs (
Id INTEGER not NULL PRIMARY KEY,
Doc_Kind SMALLINT not NULL REFERENCES Doc_Kinds(Id),
Client_Id INTEGER not NULL REFERENCES Clients(Id),
Doc_Year SMALLINT not NULL,
Doc_No INTEGER not NULL,
...
Код: Выделить всё
select * from Docs
where (Doc_Kind = :Doc_Kind) and (Client_Id = :Client_Id)
order by Doc_Year desc, Doc_No desc
PLAN SORT ((DOCS INDEX (RDB$FOREIGN79, RDB$FOREIGN78)))
После создания индекса:
Код: Выделить всё
create desc index Idx_Docs_No on Docs(Doc_Year, Doc_No)
Код: Выделить всё
PLAN (DOCS ORDER IDX_DOCS_NO INDEX (RDB$FOREIGN79, RDB$FOREIGN78))
Насколько я понимаю, использование одного составного индекса лучше, чем трех одиночек.
Что скажите?