Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 В каких СУБД есть хинты  [new]
гость форума
Guest
Добрый день, есть опыт работы с oracle. В данной СУБД есть так называемые хинты, кто не знает или если в др СУБД это на зазываться по другому то просто говоря это подсказки в запросе указывающие оптимизатору СУБД как выполнять запрос, например хотим использовать индекс добавляет /*+index(имя индекса таблица)*/ или например хотим чтобы использовался полный просмотр таблицы то /*+full(имя таблицы)*/ и СУБД будет делать именно так при выполнении запроса. Так вот суть вопроса в следующем в каких еще СУБД есть подобные функции.
Сразу говорю что в теме не хотелось бы рассматривать вопрос о том что хинты - это зло и СУБД в большинстве случаев сама знает что делать, а если делает не правильно то надо понять почему а не использовать подсказки. Интересует именно возможность использования подобного функционала в др СУБД. Также интересное если такая функция существует то есть ли возможность указать кардинальность (в oracle подсказка cardinality).

Заранее спасибо всем откликнувшимся.
30 окт 10, 11:31    [9704954]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Абсолют
Member

Откуда:
Сообщений: 2128
Блог
В DB2 тоже есть.
30 окт 10, 14:11    [9705312]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
mv
Member

Откуда:
Сообщений: 8876
гость форума, FireBird, офкоз.
30 окт 10, 17:34    [9705869]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54751

mv
FireBird, офкоз.

....не относится к числу СУБД, в которых доступны хинты.

Posted via ActualForum NNTP Server 1.4

30 окт 10, 17:36    [9705883]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Alexey Kuznetsov
Member

Откуда: Krasnoyarsk
Сообщений: 1141
Абсолют
В DB2 тоже есть.

По сравнению с ораклом можно сказать что их нету
30 окт 10, 18:55    [9706100]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32167
гость форума
Интересует именно возможность использования подобного функционала в др СУБД.
В MSSQL есть хинты, вплоть до сохранения конкретного плана.
30 окт 10, 19:56    [9706197]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Тот самый админ
Guest
В Informix есть
30 окт 10, 20:29    [9706259]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
Да практически везде есть. Раньше не было в db2, по причине как-бы не надобности оных и хорошего оптимизатора, но выше в топике подтверждают, что они уже есть.
Насчет pgsql и mysql сказать не могу, не работал с ними.
31 окт 10, 18:04    [9708117]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
насчет кардинальноти, есть такой хинт в sybase sa:
The following query provides an estimate that one percent of the ShipDate values are later than 2001/06/30:	SELECT  ShipDate
   FROM  SalesOrderItems
WHERE ( ShipDate > '2001/06/30', 1 )
ORDER BY ShipDate DESC;
31 окт 10, 18:23    [9708152]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
Ggg_old
насчет кардинальноти, есть такой хинт в sybase sa:
The following query provides an estimate that one percent of the ShipDate values are later than 2001/06/30:	SELECT  ShipDate
   FROM  SalesOrderItems
WHERE ( ShipDate > '2001/06/30', 1 )
ORDER BY ShipDate DESC;

не очень похожа на хинт, по своей сути
31 окт 10, 19:28    [9708294]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Rfr ns vju&
Guest
Dimitry Sibiryakov

mv
FireBird, офкоз.

....не относится к числу СУБД, в которых доступны хинты.

Как ты мог?
31 окт 10, 19:28    [9708296]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54751

Rfr ns vju&
Как ты мог?

Легко и просто. А в чём проблема? В Firebird действительно нет хинтов. Различные ухищрения
и прямое указание плана запроса хинтами считаться не могут.

Posted via ActualForum NNTP Server 1.4

31 окт 10, 20:01    [9708367]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
iscrafm
Member [заблокирован]

Откуда:
Сообщений: 35345
Dimitry Sibiryakov

прямое указание плана запроса хинтами считаться не могут.

именно они ими и считаются. Есть каие-то другие сведения?
31 окт 10, 20:08    [9708392]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54751

iscrafm
именно они ими и считаются. Есть каие-то другие сведения?

Угу. В Оракуле хинты можно указать только для отдельных таблиц, используемых в запросе, и
остаток оптимизатор достроит. В Firebird если план указан, он должен быть полным. Т.е. это
уже не "подсказка", а "прямое указание".

Posted via ActualForum NNTP Server 1.4

31 окт 10, 20:16    [9708410]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
iv_an_ru
Member

Откуда: Новосибирск
Сообщений: 20368
гость форума,

OpenLink Virtuloso, есть table option для отдельного алиаса, есть option для запроса в целом. Можно указывать оценки кардинальности в декларациях procedure views, но не в запросах. С другой стороны, оптимизатор при компиляции запроса может сам залезть в таблицу для получаения точной статистики для указанных в запросе константных ограничений на поля.

Вообще по нашему опыту указание кардинальностей в запросе запросто вредит. Часто запрос с "угадываемыми" кардинальностями выполняется хорошо, и запрос со всеми реальными кардинальностями тоже выполняется хорошо, а коктейль из половины угадываемых кардинальностей и половины реальных сносит оптимизатору крышу. Пиво + водка = ёрш.

Вообще у нас очень забавный оптимизатор. В отличие от большинства СУБД, которые получают запросы только от "доверенных" клиентов, Virtuoso часто выставляют голой задницей в Интернет. Например вы можете отправить любой SPARQL-запрос на SPARQL web service endpoint правительства США, и он должен или что-то раскопать в правительственных данных и вернуть, или предсказать таймаут, или хотя бы корректно дать отлуп в реальном времени. Понятное дело, юные и не очень хакеры долбятся туда как дятлы, редкий запрос _не_ является попыткой взлома. С учётом того, что исходники Virtuoso открыты, расслабляться нам эти дятлы не дают :) http://lod.openlinksw.com/sparql и http://dbpedia.org/sparql/ тоже атакуют, но не так настырно.
31 окт 10, 21:06    [9708528]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Ggg_old
Member

Откуда: Одесса
Сообщений: 1342
iscrafm, это хинт на кардинальность, а не на индекс. Но вообще я его привел лишь потому, что автор топика спрашивал за него. Сам сайбейз большим жирным шрифтом не рекомендует использовать хинты кардинальности - плохая практика. В SA очень неплохо сделано автоматическое управление статистикой, так что в хинтах кардинальности нет нужды. Да и вообще сколько читаю этот форум - это кажется первый вопрос на хинты статистики. Так что зачем топикстартеру это надо я не понимаю.
31 окт 10, 21:59    [9708699]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
ЮВ
Member

Откуда:
Сообщений: 508
В СУБД ЛИНТЕР.
1 ноя 10, 11:32    [9710384]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3787
Dimitry Sibiryakov

iscrafm
именно они ими и считаются. Есть каие-то другие сведения?

Угу. В Оракуле хинты можно указать только для отдельных таблиц, используемых в запросе, и
остаток оптимизатор достроит. В Firebird если план указан, он должен быть полным. Т.е. это
уже не "подсказка", а "прямое указание".

Это даже лучше. А то я в основном и пытаюсь хинтами привести оракла к конкретному плану!
1 ноя 10, 12:16    [9710796]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3148
Блог
гость форума,

В СУБД Caché есть.
1 ноя 10, 12:41    [9710979]     Ответить | Цитировать Сообщить модератору
 Re: В каких СУБД есть хинты  [new]
гость форума
Guest
всем откликнувшимся огромное спасибо )))
9 ноя 10, 17:24    [9749874]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить