Interbase 7.5.1. Проблема с restore.

YpL
Дата: 22.10.2005 14:17:15
Возникла проблема с восстановлением
базы при переходе с версии сервера 7.1 SP2 на
7.5.1.
Восстановление проходит, но в самом конце
выдает ошибку:

gbak: creating indexes
IBE: index cannot be used in the specified plan
.
index RLH_DATE cannot be used in the specified plan.
IBE: Restore completed. Current time: 12:52:08. Elapsed time: 00:00:40

После восстановления подсоединяюсь к базе с
помощью IBExpert и не вижу триггеры и процедуры.
При этом в логе восстановления они записаны как восстановленные.

Пробовал на разных базах. Меняется только название индекса
в сообщении об ошибке.
ЧТО БЫ ЭТО ЗНАЧИЛО?
hvlad
Дата: 22.10.2005 14:23:17
Кривой план явно прописан в процедуре\триггере
YpL
Дата: 22.10.2005 14:24:47
Почему под 7.1 все восстанавливает
без проблем?
Гаджимурадов Рустам
Дата: 22.10.2005 16:52:15
Приведи планы - тебе ответят почему.
dimitr
Дата: 22.10.2005 17:12:22
YpL
Почему под 7.1 все восстанавливает
без проблем?


оптимизатор поменялся
YpL
Дата: 22.10.2005 17:21:33
Здравствуй, Рустам.
Даже не знаю, что привести.
В БД много процедур и триггеров.

Ну вот пример:
  FOR SELECT 0,
  RLI_ITEMS.RLI_QTY_RLI,
  GOODS.GDS_ID,
  GOODS.GDS_CODE,
  GOODS.GDS_NOTE,
  BRAND.BRD_NAME,
  EIZM.EIZ_NAME,
  GOODS_CATEGORY1.GDC_NAME,
  GOODS_CATEGORY2.GDC_NAME
  FROM RLI_HEAD
     INNER JOIN RLI_ITEMS ON (RLI_HEAD.RLH_ID = RLI_ITEMS.RLI_RLH_ID)
     INNER JOIN GOODS ON (RLI_ITEMS.RLI_GDS_ID = GOODS.GDS_ID)
     INNER JOIN EIZM ON (GOODS.GDS_EIZ_ID = EIZM.EIZ_ID)
     INNER JOIN BRAND ON (GOODS.GDS_BRD_ID = BRAND.BRD_ID)
     INNER JOIN GOODS_CATEGORY GOODS_CATEGORY1 ON (GOODS.GDS_GDC_ID1 = GOODS_CATEGORY1.GDC_ID)
     INNER JOIN GOODS_CATEGORY GOODS_CATEGORY2 ON (GOODS.GDS_GDC_ID2 = GOODS_CATEGORY2.GDC_ID)
  WHERE 
     (
        (RLI_HEAD.RLH_DATE >= :I_DATE1)
     AND 
        (RLI_HEAD.RLH_DATE <= :I_DATE2)
     )
  PLAN JOIN (RLI_HEAD INDEX (RLH_DATE),
  RLI_ITEMS INDEX (RDB$FOREIGN29),
  GOODS INDEX (RDB$PRIMARY5),
  GOODS_CATEGORY2 INDEX (RDB$PRIMARY3),
  EIZM INDEX (RDB$PRIMARY1),
  BRAND INDEX (RDB$PRIMARY4),
  GOODS_CATEGORY1 INDEX (RDB$PRIMARY3))
  INTO :O_QTY_DLV1, :O_QTY_RLI1, :O_GDS_ID1, :O_GDS_CODE1, :O_GDS_NOTE1, :O_BRD_NAME1,
  :O_EIZ_NAME1, :O_GDC_NAME11, :O_GDC_NAME21
YpL
Дата: 22.10.2005 17:27:16
Вот еще пример:
  FOR SELECT SUM(RLI_ITEMS.RLI_VIRTUAL_REST),
  MIN(CAST((RLI_ITEMS.RLI_PRICE*ORD_HEAD.ORD_BVU_RATE) AS NUMERIC(18,3))),
  MAX(CAST((RLI_ITEMS.RLI_PRICE*ORD_HEAD.ORD_BVU_RATE) AS NUMERIC(18,3))),
  GOODS.GDS_CODE,
  GOODS.GDS_NOTE,
  BRAND.BRD_NAME,
  EIZM.EIZ_NAME,
  GOODS.GDS_ID
  FROM RLI_HEAD
     INNER JOIN RLI_ITEMS ON (RLI_HEAD.RLH_ID = RLI_ITEMS.RLI_RLH_ID)
     INNER JOIN GOODS ON (RLI_ITEMS.RLI_GDS_ID = GOODS.GDS_ID)
     INNER JOIN BRAND ON (GOODS.GDS_BRD_ID = BRAND.BRD_ID)
     INNER JOIN EIZM ON (GOODS.GDS_EIZ_ID = EIZM.EIZ_ID)
     INNER JOIN ORD_HEAD ON (RLI_HEAD.RLH_ORD_ID = ORD_HEAD.ORD_ID)
  WHERE 
     (
        (RLI_HEAD.RLH_DATE >= :I_DATE1)
     and 
        (RLI_HEAD.RLH_DATE <= :I_DATE2)
     and
        (RLI_ITEMS.RLI_VIRTUAL_REST > 0)
     and 
        (ORD_HEAD.ORD_TOP_ID = -1)
     )
  GROUP BY GOODS.GDS_CODE, GOODS.GDS_NOTE, BRAND.BRD_NAME, EIZM.EIZ_NAME,GOODS.GDS_ID
  PLAN SORT (JOIN (RLI_HEAD INDEX (RLH_DATE),
  ORD_HEAD INDEX (RDB$PRIMARY2,RDB$FOREIGN8),
  RLI_ITEMS INDEX (RDB$FOREIGN29),
  GOODS INDEX (RDB$PRIMARY5),
  EIZM INDEX (RDB$PRIMARY1),
  BRAND INDEX (RDB$PRIMARY4)))
  INTO
fynda
Дата: 22.10.2005 17:29:50
YpL
Здравствуй, Рустам.
Даже не знаю, что привести.
В БД много процедур и триггеров.
Ну вот пример:
(скип)


Я, конечно, не Рустам, но ИМХО это мало похоже на план...
fynda
Дата: 22.10.2005 17:31:38
fynda

Я, конечно, не Рустам, но ИМХО это мало похоже на план...


А, упс, сорри, в конец не поглядел, думал по отдельности лежать будет - отдельно запрос отдельно план... Посыпаю голову пеплом... :(
Гаджимурадов Рустам
Дата: 22.10.2005 17:31:50
YpL
Даже не знаю, что привести.
В БД много процедур и триггеров.
Все не надо. Глянь в Лог (если бэкапил без лога, то включи его) и посмотри на чем обламывается.
Потом уже приведи код этой ХП и ДДЛ объектов используемых в ней.