Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
Serg0 чя321за запросы с %% яйца отстреливать надо. интересное заявление, а сравните-ка такое, например, для DB2 AS400 V5R2M0: f1 like '%pupkin' и substr(f1, LENGTH(f1)-6, 6)='pupkin' (и про RIGHT не вспоминайте - нету его. если не путаю, то только в V5R3M0 появился) я уже молчу, про очевидные случаи, когда без like просто не обойтись чя321 , надо полагать, имел в виду, что фамилию надо держать в отдельном поле и пользоваться f1 = 'pupkin' вместо приведённого выше. В данном конкретном случае и я так думаю, потому что это простой случай, но в общем... мы же живём в реальном мире и временами идём на компромиссы. У Кайта я видел занятный примерчик на тему компромиссов. Юзер вводит произвольную строку, и она ищется в некоем справочнике, и это может содержаться в названии фирмы, или имени, или фамилии, или номере телефона, или в чём-то ещё - различий не делается. Люди пользуются этим поиском очень активно. Самым лучшим, по словам Кайта, вариантом оказался самый тупой. Для справочника создали "индекс" - временную таблицу с двумя полями - в одном ссылка на строку справочника, в другом поле сконкатенировали поля той строки справочника. И поиск в этом при помощи like '%%'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 11:51 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa riman Author the new one я могу знать, что %пупкиных% в t1 для тех t2, у которых col='V1' как грязи и начинать надо с t2, а вот, скажем, %пипкиных% у меня, наоборот, с гулькин нос и начинать надо с t1. Этот пример первое, что пришло в голову; очень странно, что это само собой разумеющееся соображение столь упорно отрицалось. Кстати, от него еще более успешно отмахивается постгрес, что наводит на нехорошие мысли. А было такое, чтобы оптимизатор с соборанной статистикой, ошибался в селективности "пипкиных" и "V1"? Можете привести жизненный пример? Не, ну лучше было приводить пример типа Код: plaintext 1. 2. 3. 4. 5. Я, собственно, хотел привести подобный пример, но опасался неплодотворной дискуссии на тему "а вот сервер ведет статистику для каджой колонки", и для простоты взял случай, когда такой статистики заведомо нет. Промахнулся не хуже оптимизатора - в результате посыпались предложения "отстрелить яйца за like %%" и "не, ну бывает все-таки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 12:27 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
Author the new one Victor Metelitsa riman Author the new one я могу знать, что %пупкиных% в t1 для тех t2, у которых col='V1' как грязи и начинать надо с t2, а вот, скажем, %пипкиных% у меня, наоборот, с гулькин нос и начинать надо с t1. Этот пример первое, что пришло в голову; очень странно, что это само собой разумеющееся соображение столь упорно отрицалось. Кстати, от него еще более успешно отмахивается постгрес, что наводит на нехорошие мысли. А было такое, чтобы оптимизатор с соборанной статистикой, ошибался в селективности "пипкиных" и "V1"? Можете привести жизненный пример? Не, ну лучше было приводить пример типа Код: plaintext 1. 2. 3. 4. 5. Я, собственно, хотел привести подобный пример, но опасался неплодотворной дискуссии на тему "а вот сервер ведет статистику для каджой колонки", и для простоты взял случай, когда такой статистики заведомо нет. Промахнулся не хуже оптимизатора - в результате посыпались предложения "отстрелить яйца за like %%" и "не, ну бывает все-таки". А вопрос-то от riman остался... и сводится все к простой вещи - да, возможны ситуации, достаточно частные, когда оптимизатор сильно "гадит" и ручная оптимизация дала бы лучший результат. НО это частности, а в общем? Не возможно вести статистику вместо сервера в голове программера и надеяться, что он знает, что с ней делать - посмотрите на это с точки зрения IBM или админа сервера для которого пишут сотни программеров самой разной квалификации. Было бы здорово, уметь полностью отключать оптимизатор для отдельных запросов, но в качестве исключения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 13:22 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
Author the new oneЯ, собственно, хотел привести подобный пример, но опасался неплодотворной дискуссии на тему "а вот сервер ведет статистику для каджой колонки", и для простоты взял случай, когда такой статистики заведомо нет. Промахнулся не хуже оптимизатора - в результате посыпались предложения "отстрелить яйца за like %%" и "не, ну бывает все-таки". Ну, ведёт, но будущее предвидеть всё равно не может. Ну, можно строить план по первому набору значений параметров или по каждому набору, что тоже зло. С другой стороны, у меня запросцы-то обычно посложнее будут, и их много, и если я буду заниматься хинтованием... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 13:27 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaНе, ну лучше было приводить пример типа Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 13:36 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
О! Ну, это, конечно, должно быть покруче указания join order или index, но, когда я об этом вычитал, оно у меня почему-то не работало (якобы ошибка в синтаксисе; разумеется, я не забыл про db2set и фикспаки), поэтому я просто выкинул это из головы. Надо бы проверить на теперешней версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 13:47 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein Victor MetelitsaНе, ну лучше было приводить пример типа Код: plaintext 1. 2. 3. 4. 5. Прикольно. AS/400 как всегда обошли стороной, как я понял? :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 13:52 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
rimanПрикольно. AS/400 как всегда обошли стороной, как я понял? :).Оно там своей жизнью живет, иногда и весьма интересной. Тут почитайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 14:10 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
Victor Metelitsa[quot Author the new one]Ну, ведёт, но будущее предвидеть всё равно не может. Ну, можно строить план по первому набору значений параметров или по каждому набору, что тоже зло. С другой стороны, у меня запросцы-то обычно посложнее будут, и их много, и если я буду заниматься хинтованием... Ну никто и не говорит, что оптимизатор - это неизбывное зло, совсем наоборот. Но иногда он все делает как надо, но неправильно . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 16:02 |
|
||
|
Интилигентность оптимайзера, база без хинтов - реальность?
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinОно там своей жизнью живет, иногда и весьма интересной. Тут почитайте. Спасибо! Давно ждал индексы по функциям - сбылась мечта идиота! :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 18:38 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35463074&tid=1603768]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 384ms |

| 0 / 0 |
