添加索引以提高此查询的性能?

时间:2013-04-09 14:03:08

标签: firebird indexing

使用:Firebird 2.52

为了执行以下查询的SELECT,我是否需要在表中的其他字段上使用索引:

所需查询:

select inventory_id, max(batch_no) from invty_batch
where inventory_id = :I
group by inventory_id

表格结构:

CREATE TABLE INVTY_BATCH (
  ROW_ID INTEGER NOT NULL,
  INVENTORY_ID INTEGER NOT NULL,
  BATCH_NO VARCHAR(8) NOT NULL,
  INVTYRCPT_ID INTEGER NOT NULL,
  UNITPRICE NUMERIC(12, 2) DEFAULT 0.0 NOT NULL);


ALTER TABLE INVTY_BATCH ADD PRIMARY KEY (ROW_ID);


CREATE UNIQUE INDEX IXINVTYIDBATCHNO ON INVTY_BATCH(INVENTORY_ID,BATCH_NO);

在inventory_id和batch_no列上创建索引是否会对给定查询的性能有所帮助?

1 个答案:

答案 0 :(得分:0)

尝试为字段“batch_no”创建索引,因为查询正在此字段中进行搜索。 PS:使用desc索引,因为搜索是最大值