0

使用: 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 列にインデックスを作成すると、特定のクエリのパフォーマンスが向上しますか?

4

1 に答える 1

0

クエリがこのフィールドで検索を行っているため、フィールド「batch_no」のインデックスを作成してみてください。PS : 検索は最大値のためであるため、desc インデックスを使用します。

于 2013-04-10T11:59:20.517 に答える