有个问题,请教各位高手。

CREATE TABLE OperationAllowed
  (
    groupId      int,
    metadataId   int,
    operationId  int,
    primary key(groupId,metadataId,operationId),
    foreign key(groupId) references Groups(id),
    foreign key(metadataId) references Metadata(id),
    foreign key(operationId) references Operations(id)
  );
 其中groupId, metadataId, operationId分别是Group, Metadata, Operation这三个表的primary key.
 其中Group有3条记录, Operation也是3条,Metadata大概有26万条记录。
 当前Operaionallowed表的数据量有225万条。
有如下语句:
"SELECT groupId, operationId FROM OperationAllowed WHERE metadataId = " + id + " ORDER BY operationId"
返回结果正常情况下只有9条记录。
可为什么这个select语句的执行时间却高达300ms呢?而在Metadata表里(26万条记录),做一个select语句不到1ms.
差距怎么这么大呢?
如何优化这个OperationAllowed表?数据库平台:PostgreSQL 8.3.