![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пронумеровать строки в ДБГриде, причем когда я делаю сортировку.. [D6]
Relaxxx © (2003-09-03 14:48:00)
Пронумеровать строки в ДБГриде, причем когда я делаю сортировку по какому то полю это поле не сортируется как все остальные. Да и RowNum не подходит у веня версия оракла старовата и он неправельно работает когда используеш ордер бай
Sergey13 (2003-09-04 14:16:00) [21]
Vlad © (04.09.03 14:03) [29]
> Одна беда - open source нет !
Тебе open именно или просто source? 8-)
Глянь на http://oraclebones.narod.ru/
Vlad (2003-09-04 14:03:00) [22]
>DenK_vrtz © (04.09.03 13:49) [25]
Чесно сказать, я не был уверен что в восьмерке это запашет.
Но в девятке сортирует именно в порядке индекса. А план должен показать - подцепил он этот индекс или нет.
А насчет DOA, спец. литературы никакой нет, все осваивал по хелпу. Тут вобщем достаточно подробно все описано. Одна беда - open source нет !
Но если найду чего - пришлю.
Sergey13 © (04.09.03 13:49) [26]
>Чесно говоря с оптимизатором не оч. знаком. Поэтому не могу сказать точно.
DenK_vrtz (2003-09-04 14:03:00) [23]
Sergey13 ©, спасибо огромное!!!
Sergey13 (2003-09-04 13:58:00) [24]
2DenK_vrtz © (04.09.03 13:49) [25]
Я тебе выслал доку по v3.4. Придет попозже - почта у меня так работает. 8-(
А вот еще интересно, а в случае с одинаковым значением индексного поля порядок чем будет задаваться? И будет ли он постоянным?
А вообще мой вопрос к автору остается в силе - НА ФИГА?
ЗЫ: А Relaxxx наверное расслабляется. 8-)
Sergey13 (2003-09-04 13:49:00) [25]
2Vlad © (04.09.03 12:04) [23]
А вот интересно - если по умолчанию стоит RULE, то хинты вообще работать будут? Ини же вроде только для стоимостного предназначены. Или я ошибаюсь?
DenK_vrtz (2003-09-04 13:49:00) [26]
Vlad ©, продолжаем разговор :-)
Так вот. Я вот одного не могу понять почему на девятке это пашет?
Спросил у администратора базы и вместе с ним литературу глянули.
Конструкция или хинт /*+index(tablename index)*/, говорит о том, чтобы просматривать таблицу с помощью установленного индекса, но не упорядочивать данные в зависимости от него!
Может в девятке, что-то поменялось?!
План ничего дельного не показывает, типа выбрал все и все!
Да, еще. У тебя случайно нет литературы в электронном виде (желательно на русском) с примерами по работе с DOA?
Если есть, скинь на мыло, пожалуйста, очень надо!
Vlad (2003-09-04 12:06:00) [27]
Самое интересное что у меня на девятке такая конструкция пашет :)
Vlad (2003-09-04 12:04:00) [28]
Гы :) Думаю что-то в настройках оптимизатора...
А если просто попробовать:
select /*+index(mon By_Date_CHET)*/ Date_chet FROM mon
Тоже не будет сортировать ?
План запроса что говорит ?
DenK_vrtz (2003-09-04 11:59:00) [29]
Индекс есть, НО, записи в запросе сортируются по значению primary key
Vlad (2003-09-04 11:56:00) [30]
>DenK_vrtz © (04.09.03 11:51) [20]
Думаю что нет индекса с именем By_Date_Chet
DenK_vrtz (2003-09-04 11:51:00) [31]
Vlad ©,
Sergey13 ©,
попробовал я конструкцию вида
select rownum, a.* from (select /*+index(mon By_Date_CHET)*/ Date_chet
FROM mon) a, в 8.0.5 работает, но
записи почему то не сортирует
Почему?
Vlad (2003-09-04 11:45:00) [32]
>Sergey13 © (04.09.03 11:43) [17]
Хинты в оракле, конечно скользкая штука....
Но если есть гарантия что никто не удалит индекс, то должно работать корректно.
Vlad (2003-09-04 11:43:00) [33]
Sergey13 © (04.09.03 11:34) [16]
Ну да, нехорошо конечно давать такие алиасы. Я бы так не делал.
Но тем не менее, Оракл проглатывает.
Вобщем, Relaxxx ©, уважаемый, сдается мне что тебе нужно создать индекс по полю Date_chet (если такового нет) и использовать конструкцию, приведенную мной в [15]. Должно работать.
Sergey13 (2003-09-04 11:43:00) [34]
2Vlad © (04.09.03 11:26) [15]
>Как думаешь, сработает ?
ИМХО, может помочь, но гарантии никто не даст. Помню обсуждение (не здесь) о сортировках внутри веток в дереве. Тогда сошлись на этом.
Остается вопрос - зачем все это надо, причем с такими извратами.
Sergey13 (2003-09-04 11:34:00) [35]
Vlad © (04.09.03 11:15) [14]
>А то что он совпадает с именем поля - так это ничего страшного.
Совпадающий с именем поля? Странный алиас, ИМХО.
Хотя.... щас попробовал - на 8.1.6 отработало. Странно. 8-( Может на эту "странность" 8.0.5 и ругается? Проверить не начем.
Блин, DenK_vrtz © (04.09.03 11:07) [12] уже попробовал. 8-)
Vlad (2003-09-04 11:26:00) [36]
>DenK_vrtz © (04.09.03 11:07) [12]
А если попробовать индекс вместо ORDER BY использовать ? (если он есть конечно)
select rownum, a.* from (select /*+index(mon By_Date_CHET)*/ Date_chet
FROM mon) a
Как думаешь, сработает ?
Vlad (2003-09-04 11:15:00) [37]
Sergey13 © (04.09.03 11:09) [13]
Зачем ? Это простой алиас таблицы, что тут такого ?
А то что он совпадает с именем поля - так это ничего страшного.
Sergey13 (2003-09-04 11:09:00) [38]
2Vlad © (04.09.03 10:44) [9]
>что-то не понятно, что конкретно ему нужно исправить ?
Удалить из запроса выделенное мной Date_chet. Или пояснить мне что это такое. 8-)
DenK_vrtz (2003-09-04 11:07:00) [39]
Vlad ©, все дело похоже в order by
Написал запросы вида:
(все в 8.0.5)
select rownum, поле from (select поле from таблица) - работает,
select поле from (select поле from таблица) - работает,
select rownum, поле from (select поле from таблица order by поле) - не работает
select поле from (select поле from таблица order by поле) - не работает
Vlad (2003-09-04 10:56:00) [40]
DenK_vrtz © (04.09.03 10:51) [10]
К сож. нет под рукой 8.0.5.
A ты не мог бы проверить тоже, но без RowNum, будет работать ? Т.е. хотелось бы понять, в чем ошибка - в самой конструкции или в использовании RowNum ?