powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В каких СУБД хинты носят чисто директивный характер?
15 сообщений из 15, страница 1 из 1
В каких СУБД хинты носят чисто директивный характер?
    #37852306
Во всех СУБД хинты имеют строго директивный характер как например в MS SQL или есть СУБД в которых хинты являются лишь советами оптимизатору?

Директивный - т.е. если я указал соединять Sort Merge Join, а оптимизатор считает что быстрее соединять Nested Loop Join, то все равно он соединит по SMJ предварительно отсортировав таблицы.
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37852486
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
директивный характерхинты имеют строго директивный характер как например в MS SQL

Далеко не всегда:

Код: plaintext
Warning: Index hints supplied for ... will be ignored 
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37852527
pkarklinдирективный характерхинты имеют строго директивный характер как например в MS SQL

Далеко не всегда:

Код: plaintext
Warning: Index hints supplied for ... will be ignored 

Это происходит когда в принципе не возможно использовать индекс?
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37852533
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
директивный характерЭто происходит когда в принципе не возможно использовать индекс?

В данной ситауции - да.
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37852581
А есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше?
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37852588
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
директивный характерА есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше?

А можно это перевести на русский: "хинт сработал, но оптимизатор его не использует"?!
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37852626
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinА можно это перевести на русский: "хинт сработал, но оптимизатор его не
использует"?!
Перевожу: сервер говорит "ты, пользователь, дурак по определению, я - умнее, а потому
поклал на твои хинты прибор".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37852629
pkarklinдирективный характерА есть такие СУБД в которых хинт в принципе может сработать , но оптимизатор его не использует, т.к. считает что без него лучше?

А можно это перевести на русский: " хинт сработал , но оптимизатор его не использует"?!
Всё таки "хинт в принципе может сработать" и "хинт сработал" это разные вещи :)

Я про случай описанный в первом сообщении, если допустим через хинты сказали делать SMJ, а не смотря на это СУБД сделала NLJ/HJ, в каких СУБД такое возможно?
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37854088
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
директивный характерА есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше?
Буквально так. Имел несколько лет назад неприятные грабли с ASE 12.x.y (не помню версию к сожалению).
Сервер давал по морде варнингами исключительно в некоторых случаях для одного и того же запроса (получение состава документа по его id). Для одних документов проблем не было. Для других получал warning и игнорирование хинта. Если очень надо - могу даже по истории доработок попробовать найти номер "ошибки", которая прилетала. В релиз не ушло по причине отказа от Abstract Plan в первоначальной форме. Было ли это косяком конкретного билда ASE - сказать не возьмусь.
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37854104
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37854112
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНу правильно, но он не использовал хинт потому что НЕ МОГ
условно:
select * from v where id=1 - хинт работает
select * from v where id=2 - хинт не работает
во втором случае не работает, потому что НЕ МОЖЕТ?
зы. похоже кто-то кого-то не понимает ))) или все всех не понимают )))
зы. dbcc checkdb и прочая сопутствующая лабуда тогда ошибок не показывали - 146%.
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37854123
Сергей Васкецовдирективный характерА есть такие СУБД в которых хинт в принципе может сработать, но оптимизатор его не использует, т.к. считает что без него лучше?
Буквально так. Имел несколько лет назад неприятные грабли с ASE 12.x.y (не помню версию к сожалению).
Сервер давал по морде варнингами исключительно в некоторых случаях для одного и того же запроса (получение состава документа по его id). Для одних документов проблем не было. Для других получал warning и игнорирование хинта. Если очень надо - могу даже по истории доработок попробовать найти номер "ошибки", которая прилетала. В релиз не ушло по причине отказа от Abstract Plan в первоначальной форме. Было ли это косяком конкретного билда ASE - сказать не возьмусь.
Да, если можно чуть поподробней, номер ошибки и какой хинт?

Насколько я знаю MS SQL и Sybase из одного теста и в первой хинт всегда директивный, т.е. если в принципе может использоваться, то обязательно используется.
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37854127
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
директивный характерДа, если можно чуть поподробней, номер ошибки и какой хинт?
Ок. Поищу по VSS как доберусь.

директивный характересли в принципе может использоваться, то обязательно используется.
Хинт вида "(1)" в принципе может использоваться всегда. Тем не менее, каждый может сам потренироваться на своих табличках и вьюхах.
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37856948
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак поискал. Ошибка была 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 поверх вьюхи) для разных документов либо есть эта ошибка, либо её нет, говорит о том, что сервер способен игнорировать это указание (если бы он его не игнорировал а упорно старался всё сделать как приказано - возвращалась бы ошибка).
...
Рейтинг: 0 / 0
В каких СУБД хинты носят чисто директивный характер?
    #37856961
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правда есть и другой пример. Вьюха на пару десятков таблиц.

Запрос вида
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
select v.* from v_alldocs v
where
  v.sclad = '1' and v.partner='1'
  --v.id_subsystem=1
plan " ( nl_g_join
( i_scan sclad_code ( table sclad ( in ( view  v ) ) ) )
( i_scan pk_sclad ( table sclad ( in ( view  v ) ) ) ) 
( i_scan partner_code ( table ( p partners ) ( in ( view  v ) ) ) ) 
( i_scan pk_partners ( table ( p partners ) ( in ( view  v ) ) ) ) 
( i_scan relation_3035_fk ( table ( d docs ) ( in ( view  v ) ) ) ) 
( i_scan relation_514_fk ( table ( d docs ) ( in ( view  v ) ) ) ) 
( i_scan docs_zmove_idx ( table ( d docs ) ( in ( view  v ) ) ) ) 
( i_scan marker2docs_fk ( table ( d docs ) ( in ( view  v ) ) ) ) 
( i_scan relation_545_fk ( table ( d docs ) ( in ( view  v ) ) ) ) 
( i_scan relation_583_fk ( table ( d docs ) ( in ( view  v ) ) ) ) 
( i_scan docs_uniq ( table ( d docs ) ( in ( view  v ) ) ) ) 
( i_scan pk_modul ( table modul ( in ( view  v ) ) ) ) 
( i_scan pk_marker ( table marker ( in ( view  v ) ) ) ) 
( i_scan pk_typedoc ( table ( td typedoc ) ( in ( view  v ) ) ) ) 
( i_scan pk_soper ( table ( so soper ) ( in ( view  v ) ) ) )
 ) " 
go


работает, а если изменить условие where на закомментированное - не работает с ошибкой 325.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В каких СУБД хинты носят чисто директивный характер?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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