Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Оптимизатор хочет индекс / 8 сообщений из 8, страница 1 из 1
13.07.2005, 17:07
    #33164226
Elemo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизатор хочет индекс
Вопрос такой созрел, при использовании курсора по временной таблице, получаем такое вот сообщение:

The optimizer could not find a unique index which it could use to scan
table '#table_name' for cursor 'cursor_name'

Версия сервера:
Adaptive Server Enterprise/12.0.0.8/P/EBF 11541 IR/NT (IX86)/OS 4.0/2039/32bit/OPT/Fri Nov 21 00:09:29 2003

В принципе на sybase.com есть и статья соотвествующая
(http://search.sybase.com/kbx/solvedcases?id_number=11024217), но она только для... в общем не для нас. :)

Может кто сталкивался и знает рецепт решения проблемы?

С уважением, Elemo.
...
Рейтинг: 0 / 0
13.07.2005, 17:42
    #33164353
Компостеров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизатор хочет индекс
А у тебя точно все записи во временной таблице имеют уникальный ключ ?
Проверь на всякий случай с помощью CREATE UNIQ INDEX
...
Рейтинг: 0 / 0
13.07.2005, 17:46
    #33164372
Elemo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизатор хочет индекс
КомпостеровА у тебя точно все записи во временной таблице имеют уникальный ключ ?
Проверь на всякий случай с помощью CREATE UNIQ INDEX

Нет, его там нет да и по идее, не нужен он там.

Забыл добавить что под 11.9.2. (Adaptive Server Enterprise/11.9.2.4/1170/P/SWR 9453 ESD 2/NT (IX86)/OS 3.51,4.0/FBU/Tue Jan 16 03:52:44 2001) все работает в точно таком же виде, без каких-либо вопросов, что собственно и удивляет.
...
Рейтинг: 0 / 0
13.07.2005, 23:54
    #33164739
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизатор хочет индекс
КомпостеровА у тебя точно все записи во временной таблице имеют уникальный ключ ?

Это как это ? Индекс имеет таблица, и если он уникальный, то он уникальный и записей никаких неуникальных быть не может.
...
Рейтинг: 0 / 0
13.07.2005, 23:58
    #33164741
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизатор хочет индекс
Там в запросе нет "isolation 0" ?
Запрос давай лучше.
...
Рейтинг: 0 / 0
14.07.2005, 19:35
    #33167099
Elemo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизатор хочет индекс
ElemoВопрос такой созрел, при использовании курсора по временной таблице, получаем такое вот сообщение:

The optimizer could not find a unique index which it could use to scan
table '#table_name' for cursor 'cursor_name'

Версия сервера:
Adaptive Server Enterprise/12.0.0.8/P/EBF 11541 IR/NT (IX86)/OS 4.0/2039/32bit/OPT/Fri Nov 21 00:09:29 2003

В принципе на sybase.com есть и статья соотвествующая
(http://search.sybase.com/kbx/solvedcases?id_number=11024217), но она только для... в общем не для нас. :)

Может кто сталкивался и знает рецепт решения проблемы?

С уважением, Elemo.

Короче говоря, решение нашлось - удалось получить текст статьи с sybase.com, если кому интерсно привожу текст:
Case Description

Error upon running query with cursor: "The optimizer could not find a unique index which it could use to scan
table # TEMP_CURRENCY for cursor mtm_from_curr."


From the ASE 12.0 Performance & Tunning - Chapter 8 - Cursors and Performance Index Use and Requirements for
Cursors When a query is used in a cursor, it may require or choose different
indexes than the same query used outside of a cursor. Allpages-Locked Tables: * For read-only cursors, queries
at isolation level 0 (dirty reads) require a unique index. Read-only cursors at isolation level 1 or 3 should produce
the same query plan as the select statement outside of a cursor. The index requirements for updatable cursors mean
that updatable cursors may use different query plans than read-only cursors. Update cursors have these indexing
requirements: * If the cursor is not declared for update, a unique index is preferred over a table scan or a
nonunique index. But a unique index is not required. * If the cursor is declared for update without a for update
of list, a unique index is required on allpages-locked tables. An error is raised if no unique index exists. * If
the cursor is declared for update with a for update of list, then only a unique index without any columns from the
list can be chosen on an allpages-locked table. An error is raised if no unique index qualifies. * When cursors are
involved, an index that contains an IDENTITY column is considered unique, even if the index is not declared unique.
In some cases, IDENTITY columns must be added to indexes to make them unique, or the optimizer might be forced to
choose a suboptimal query plan for a cursor query.

Resolution

* If the cursor is declared for update without a for update of list, a unique index is required on allpages-locked
tables. An error is raised if no unique index exists. * If the cursor is declared for update with a for update of
list, then only a unique index without any columns from the list can be chosen on an allpages-locked table. An
error is raised if no unique index qualifies. Create a unique index on referenced table.
...
Рейтинг: 0 / 0
15.07.2005, 11:19
    #33167770
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизатор хочет индекс
Запрос-то дашь ? Так все это неинтересно читать.

А так - дофига способов это обойти.

не использовать UPDATE ... where current of, а изменять записи напряму.

Использовать DOL- таблицы, если у тебя временная , какая ей вообще разница ? А DOL всегда через OAM сканируется.
...
Рейтинг: 0 / 0
15.07.2005, 13:40
    #33168400
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизатор хочет индекс
Это обычно возникает при размещении курсора на сервере (в отличии от локального - на клиенте) - на клиент данные передаются порциями, каждая из которых идентифицируется первой записью и кол-вом. Если одинаковых записей более этого самого кол-во, то выборка забуксует - вот и требует уникальный ключ.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Оптимизатор хочет индекс / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]