powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Оптимизатор хочет индекс
8 сообщений из 8, страница 1 из 1
Оптимизатор хочет индекс
    #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
Оптимизатор хочет индекс
    #33164353
Компостеров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у тебя точно все записи во временной таблице имеют уникальный ключ ?
Проверь на всякий случай с помощью CREATE UNIQ INDEX
...
Рейтинг: 0 / 0
Оптимизатор хочет индекс
    #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
Оптимизатор хочет индекс
    #33164739
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КомпостеровА у тебя точно все записи во временной таблице имеют уникальный ключ ?

Это как это ? Индекс имеет таблица, и если он уникальный, то он уникальный и записей никаких неуникальных быть не может.
...
Рейтинг: 0 / 0
Оптимизатор хочет индекс
    #33164741
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там в запросе нет "isolation 0" ?
Запрос давай лучше.
...
Рейтинг: 0 / 0
Оптимизатор хочет индекс
    #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
Оптимизатор хочет индекс
    #33167770
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос-то дашь ? Так все это неинтересно читать.

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

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

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


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