Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите / 10 сообщений из 10, страница 1 из 1
21.11.2002, 10:00
    #32070565
Denis Tch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
Пожалуйста, помогите..
Проблема: запрос
select .. --++ORDERED ...
Кто знает что такое ORDERED? Почему без него работает, а с ним нет.. Уже пробовал ряд средств. Если кто знает, скажите правильно или нет. И что еще можно попробовать, чтобы заработало ...
1) alter index .. rebuild
2) analyze index .. delete statistics
3) analyze index .. compute statistics
4) analyze table .. delete(compute) statictics
5) analyze table .. validate ref update
...
Рейтинг: 0 / 0
21.11.2002, 10:15
    #32070579
Славик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
ORDERED
The ORDERED hint causes Oracle to join tables in the order in which they appear in the FROM clause.

The syntax of this hint is:

/*+ ORDERED */

For example, this statement joins table TAB1 to table TAB2 and then joins the result to table TAB3:
Код: plaintext
1.
2.
3.
   SELECT  /*+ ORDERED */  TAB1.COL1, TAB2.COL2, TAB3.COL3
     FROM TAB1, TAB2, TAB3
    WHERE TAB1.COL1 = TAB2.COL1
         AND TAB2.COL1 = TAB3.COL1;



If you omit the ORDERED hint from a SQL statement performing a join, the optimizer chooses the order in which to join the tables. You may want to use the ORDERED hint to specify a join order if you know something about the number of rows selected from each table that the optimizer does not. Such information would allow you to choose an inner and outer table better than the optimizer could.
...
Рейтинг: 0 / 0
21.11.2002, 10:23
    #32070586
Славик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
Вероятно у тебя опечатка:
select --+ ORDERED
tab1.col1, tab2.col2
from ...
+ - должен быть один
если использовать --+ ORDERED, то после --+ ORDERED в строке не должно быть ничего
...
Рейтинг: 0 / 0
21.11.2002, 11:16
    #32070622
Denis Tch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
Спасибо. По поводу симантики ORDERED совершенно верно. Но что можно сделать чтобы работало?.. Заранее благодарен.
...
Рейтинг: 0 / 0
21.11.2002, 13:14
    #32070708
Славик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
В каком смысле?
Что запрос не выполняеться?
Вообще ORDERED не должен влиять на работоспособность запроса. Это подсказка стоимостному оптимизатору, и если она глючная, то Oracle ее игнорирует.
Можно погядеть на сам запрос целиком и на ошибку?
...
Рейтинг: 0 / 0
21.11.2002, 22:34
    #32071087
vskv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
2Славик: ORDERED -- это не подсказка для CBO. Оно было ещё до +RULE. И так же как --+RULE напрочь отбивает у Оракла интелект.

Хотя суть одна и та же -- это хинт, заставляющий использовать набор строго заданных правил.

2Denis Tch: Ты скорее всего окончания работы запроса не дождался (или получил что-то невразумительное типа snapshot too old). Совет: если можешь изменить запрос -- убери этот хинт на#$%! Если ничего не делал с OPTIMIZER_MODE, то должен отработать CBO и воспользоваться твоей статистикой...
...
Рейтинг: 0 / 0
21.11.2002, 22:41
    #32071088
Denis Tch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
Славик, к сожалению сам запрос страницы 2-3 формата А4 , зато ошибка очень прикольная.... В запросе без ORDERED все нормально. А вот с ORDERED вместо текста выдается псевдографика, причем почти каждый раз РАЗНАЯ...
...
Рейтинг: 0 / 0
21.11.2002, 22:47
    #32071089
Denis Tch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
vskv, а что можно сделать с OPTIMIZER_MODE?
Может ошибка в выдаче данных быть связана с моей статистикой? И если да, то как ее (статистику) перестроить или исправить?
...
Рейтинг: 0 / 0
21.11.2002, 23:49
    #32071095
vskv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
Версию сервера/клиента в студию! Опционально также NLS_LANG и все английские буквы/цифры из той псевдографики, что выдаются.

Что касается OPTIMIZER_MODE, то врядли ты правил init.ora или делал alter session set OPTIMIZER_MODE= ...
Т.о. без хинтов должен работать CBO, который судя по всему у тебя и включается. Да и статистика у тебя, судя по всему актуальная (иначе был бы вопрос, почему оно так долго делается).

А вообще, я думал, что достаточно внятно объяснил, что ни ORDERED, ни RULE статистику не используют.

Кстати, если не секрет, что это за приложение в котором запрос на два листа А4? Кто ж его такой сгенерил?
А если это творение исключительно рук человеческих и у него есть автор, то что он говорит про объём запроса и использование морально устаревшего хинта???
...
Рейтинг: 0 / 0
22.11.2002, 10:20
    #32071170
Славик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите
2vskv: Виноват, исправлюсь! :-)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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