|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
Во всех СУБД хинты имеют строго директивный характер как например в MS SQL или есть СУБД в которых хинты являются лишь советами оптимизатору? Директивный - т.е. если я указал соединять Sort Merge Join, а оптимизатор считает что быстрее соединять Nested Loop Join, то все равно он соединит по SMJ предварительно отсортировав таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2012, 18:14 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
директивный характерхинты имеют строго директивный характер как например в MS SQL Далеко не всегда: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2012, 21:50 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
pkarklinдирективный характерхинты имеют строго директивный характер как например в MS SQL Далеко не всегда: Код: plaintext
Это происходит когда в принципе не возможно использовать индекс? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2012, 22:21 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
директивный характерЭто происходит когда в принципе не возможно использовать индекс? В данной ситауции - да. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2012, 22:29 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
А есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2012, 23:36 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
директивный характерА есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше? А можно это перевести на русский: "хинт сработал, но оптимизатор его не использует"?! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2012, 23:39 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
pkarklinА можно это перевести на русский: "хинт сработал, но оптимизатор его не использует"?! Перевожу: сервер говорит "ты, пользователь, дурак по определению, я - умнее, а потому поклал на твои хинты прибор". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2012, 00:44 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
pkarklinдирективный характерА есть такие СУБД в которых хинт в принципе может сработать , но оптимизатор его не использует, т.к. считает что без него лучше? А можно это перевести на русский: " хинт сработал , но оптимизатор его не использует"?! Всё таки "хинт в принципе может сработать" и "хинт сработал" это разные вещи :) Я про случай описанный в первом сообщении, если допустим через хинты сказали делать SMJ, а не смотря на это СУБД сделала NLJ/HJ, в каких СУБД такое возможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2012, 00:45 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
директивный характерА есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше? Буквально так. Имел несколько лет назад неприятные грабли с ASE 12.x.y (не помню версию к сожалению). Сервер давал по морде варнингами исключительно в некоторых случаях для одного и того же запроса (получение состава документа по его id). Для одних документов проблем не было. Для других получал warning и игнорирование хинта. Если очень надо - могу даже по истории доработок попробовать найти номер "ошибки", которая прилетала. В релиз не ушло по причине отказа от Abstract Plan в первоначальной форме. Было ли это косяком конкретного билда ASE - сказать не возьмусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2012, 00:13 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
On 06/26/2012 01:13 AM, Сергей Васкецов wrote: > А есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его > не использует, т.к. считает что без него лучше? > > > Буквально так. Имел несколько лет назад неприятные грабли с ASE 12.x.y (не помню > версию к сожалению). Это не так. В ASE и MSSQLServer хинт не срабатывает только тогда, когда он в принципе работать не может. Например, указан в хинте несуществующий индекс, или указан для ввода-вывода пул, которого не существует. В этом случае хинт игнорируется. Т.е. хинт не срабатывает только тогда, когда он в принципе срабатывать не может. > Сервер давал по морде варнингами исключительно в некоторых случаях для одного и > того же запроса (получение состава документа по его id). Для одних документов > проблем не было. Для других получал warning и игнорирование хинта. Если очень > надо - могу даже по истории доработок попробовать найти номер "ошибки", которая > прилетала. В релиз не ушло по причине отказа от Abstract Plan в первоначальной > форме. Было ли это косяком конкретного билда ASE - сказать не возьмусь. Ну правильно, но он не использовал хинт потому что НЕ МОГ. Это совсем не "СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше" ? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2012, 00:30 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
MasterZivНу правильно, но он не использовал хинт потому что НЕ МОГ условно: select * from v where id=1 - хинт работает select * from v where id=2 - хинт не работает во втором случае не работает, потому что НЕ МОЖЕТ? зы. похоже кто-то кого-то не понимает ))) или все всех не понимают ))) зы. dbcc checkdb и прочая сопутствующая лабуда тогда ошибок не показывали - 146%. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2012, 00:38 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
Сергей Васкецовдирективный характерА есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше? Буквально так. Имел несколько лет назад неприятные грабли с ASE 12.x.y (не помню версию к сожалению). Сервер давал по морде варнингами исключительно в некоторых случаях для одного и того же запроса (получение состава документа по его id). Для одних документов проблем не было. Для других получал warning и игнорирование хинта. Если очень надо - могу даже по истории доработок попробовать найти номер "ошибки", которая прилетала. В релиз не ушло по причине отказа от Abstract Plan в первоначальной форме. Было ли это косяком конкретного билда ASE - сказать не возьмусь. Да, если можно чуть поподробней, номер ошибки и какой хинт? Насколько я знаю MS SQL и Sybase из одного теста и в первой хинт всегда директивный, т.е. если в принципе может использоваться, то обязательно используется. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2012, 00:54 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
директивный характерДа, если можно чуть поподробней, номер ошибки и какой хинт? Ок. Поищу по VSS как доберусь. директивный характересли в принципе может использоваться, то обязательно используется. Хинт вида "(1)" в принципе может использоваться всегда. Тем не менее, каждый может сам потренироваться на своих табличках и вьюхах. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2012, 01:02 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
Итак поискал. Ошибка была 307. Index '%.*s' specified as optimizer hint in the FROM clause of table '%.*s' does not exist. Optimizer will choose another index instead. Тот факт, что при одном и том же запросе при одном и том же плане в plan clause (меняется только id поверх вьюхи) для разных документов либо есть эта ошибка, либо её нет, говорит о том, что сервер способен игнорировать это указание (если бы он его не игнорировал а упорно старался всё сделать как приказано - возвращалась бы ошибка). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2012, 13:56 |
|
В каких СУБД хинты носят чисто директивный характер?
|
|||
---|---|---|---|
#18+
Правда есть и другой пример. Вьюха на пару десятков таблиц. Запрос вида Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
работает, а если изменить условие where на закомментированное - не работает с ошибкой 325. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2012, 14:01 |
|
|
start [/forum/topic.php?fid=35&msg=37852588&tid=1552543]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 146ms |
0 / 0 |