|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
Интересует можно ли указать SQL-оптимизатору какой индекс нужно использовать для выборки? Сейчас используем %IGNOREINDEX но уже заколебались при добавлении индекса на таблицу лазать по всем запросам и добавлять его в %IGNOREINDEX ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 03:28 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
Чтобы не колебаться, нужно использовать СУБД. Если такой возможности у Вас нет, то нужно: 1) Удалить все указания оптимизатору во всех запросах. 2) IS удалить возможность указаний и обеспечить эффективную работу оптимизатора без указаний. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 08:57 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
Хорошая, кстати, тема для большого-большого гранта)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 08:59 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
БредятинаХорошая, кстати, тема для большого-большого гранта)) Который реализуют талантливые студенты. Т.е. технология объезженая... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 09:41 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
krvsaБредятинаХорошая, кстати, тема для большого-большого гранта)) Который реализуют талантливые студенты. Т.е. технология объезженая... То есть, указания оптимизатору уже не нужны)) Вот как всё хорошо разрешилось)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 10:32 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
sigmovИнтересует можно ли указать SQL-оптимизатору какой индекс нужно использовать для выборки?Оптимизатор сам решает на основе selectivity, extentsize и blockcount использовать или не использовать те или иные индексы, поэтому и нет соответствующих хинтов кроме %ALLINDEX . Гораздо интереснее взглянуть на Ваши запросы, почему оптимизатор всё-таки игнорирует индексы. Возможно дело в разных Collation ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 11:53 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
servit, Возможно он игнорирует индексы потому что селективность никто и не подсчитывал никогда, и для оптимизатора все индексы "равны" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:13 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
sigmovно уже заколебались при добавлении индекса на таблицу Бездумное добавление индексов к таблице никогда до добра не доводит. Нужно проанализировать характер данных, определить наиболее часто используемые выборки и в уже под них добавлять индексы, желательно не сильно пересекая их по списку полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:16 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
PtnВозможно он игнорирует индексы потому что селективность никто и не подсчитывал никогда, и для оптимизатора все индексы "равны"Возможно. Но я в таких случаях всегда предполагаю, что ТС до этого делал TuneTable() ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:20 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
PtnБездумное добавление индексов к таблице никогда до добра не доводит.Я бы не торопился с выводами. Дождёмся ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:21 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
sigmovИнтересует можно ли указать SQL-оптимизатору какой индекс нужно использовать для выборки? Сейчас используем %IGNOREINDEX но уже заколебались при добавлении индекса на таблицу лазать по всем запросам и добавлять его в %IGNOREINDEXИнтересно, а зачем же тогда вы добавляете индекс который по идее вроде как должны помогать запросам. Для чего же вы его добавляете в класс, если не используете его для SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:28 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
БредятинаТо есть, указания оптимизатору уже не нужны)) Вот как всё хорошо разрешилось)) Х/з как там это реализуют талантливые студенты... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 14:52 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
krvsaБредятинаТо есть, указания оптимизатору уже не нужны)) Вот как всё хорошо разрешилось)) Х/з как там это реализуют талантливые студенты... Как правило по грантам InterSystems процесс разработки "талантливых студентов" направляют опытные разработчики. krvsa, похоже, Вам все-таки не дает покоя возможность поучаствовать в этом процессе? ;) У Вас под боком есть институт-участник InterSystems Campus, более того - есть и талантливые студенты/аспиранты тоже в прямой досягаемости. Подавайте заявку на грант и руководите талантливыми студентами, чтобы делали все правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 15:24 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
Шваров Евгенийпохоже, Вам все-таки не дает покоя возможность поучаствовать в этом процессе? ;) Я забесплатно не работаю. Шваров ЕвгенийУ Вас под боком есть институт-участник InterSystems Campus, более того - есть и талантливые студенты/аспиранты тоже в прямой досягаемости. Подавайте заявку на грант и руководите талантливыми студентами, чтобы делали все правильно. Я не верю в "талантливых студентов"... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 15:26 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
krvsaЯ не верю в "талантливых студентов"... А я верю - нужно просто уметь заглянуть им в глаза! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 15:29 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
krvsaШваров Евгенийпохоже, Вам все-таки не дает покоя возможность поучаствовать в этом процессе? ;) Я забесплатно не работаю. Гранты оплачиваются от 50 до 150 т.р. за штуку. В этом году уже реализовано 4 шт. и еще 6 в процессе. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 15:34 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
Шваров ЕвгенийГранты оплачиваются от 50 до 150 т.р. за штуку. В этом году уже реализовано 4 шт. и еще 6 в процессе. Да просто афигеть! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 15:43 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
AlexKBА я верю - нужно просто уметь заглянуть им в глаза! Дело твое... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 15:44 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
DAiMorsigmovИнтересует можно ли указать SQL-оптимизатору какой индекс нужно использовать для выборки? Сейчас используем %IGNOREINDEX но уже заколебались при добавлении индекса на таблицу лазать по всем запросам и добавлять его в %IGNOREINDEXИнтересно, а зачем же тогда вы добавляете индекс который по идее вроде как должны помогать запросам. Для чего же вы его добавляете в класс, если не используете его для SQL. Если используется СУБД, то индексы используются непосредственно в интерактивном интерфейсе, а не только в запросах/отчетах. А если СХОД - то, конечно, только в запросах, но вероятно, речь идет о том, что в конкретных запросах нужно использовать конкретные индексы, то есть, речь идет о хинтах. Которых, конечно, не должно быть для оптимизатора (иначе это уже не оптимизатор). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 15:50 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
DAiMorИнтересно, а зачем же тогда вы добавляете индекс который по идее вроде как должны помогать запросам. Для чего же вы его добавляете в класс, если не используете его для SQL.Запросы бывают разные. Одним запросам индекс помогает, а другим мешает. У нас было такое, в результате не смогли побороть и удалили индекс. Лучше Рекомендации перестроить селективности - это, конечно да. Но есть случаи, когда правильно посчитанная селективность приведет к ошибочному плану запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 20:21 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
...Лучше один запрос будет медленнее в в три раза, чем другой в 100. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 20:22 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
Блок А.Н.Одним запросам индекс помогает, а другим мешает.Для случаев, когда индекс мешает, предусмотрен хинт %IGNOREINDEX name , но у ТС другой случай. Блок А.Н.Но есть случаи, когда правильно посчитанная селективность приведет к ошибочному плану запросов.Всё зависит от конкретной версии СУБД. В последних версиях очень многое делается для оптимизации плана запросов. Например, в 2013.1 в Портал добавлен инструмент по сбору статистики и анализу различных планов запросов и индексов, а в версии 2013.2 ещё больше улучшений. Блок А.Н.У нас было такое, в результате не смогли побороть и удалили индекс.Индекс можно и не удалять, а достаточно выключить, чтобы оптимизатор его просто не видел, а значит и не использовал. Как это сделать описано в одной из статей . ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 09:20 |
|
Явно указать используемый индекс?
|
|||
---|---|---|---|
#18+
Спасибо всему сообществу за щирокий отклик. Как я понял указать используемый индекс все же никак нельзя - жаль ((( DAiMorИнтересно, а зачем же тогда вы добавляете индекс который по идее вроде как должны помогать запросам. Для чего же вы его добавляете в класс, если не используете его для SQL. Новый индекс конечно же используется для SQL запросов. Но при этом сбивает "правильный" индекс в некоторых уже существующих. авторДля случаев, когда индекс мешает, предусмотрен хинт %IGNOREINDEX name, но у ТС другой случай. Прикол в том, что оптимизатор начисто игнорит самый лучший индекс, предпочитая ему практически любой другой ))) Вот и приходится все прочие добавлять в игнор ))) По правде говоря таких запросов у нас не так уж и много (всего 3шт), но все равно напрягает. Про селективити спасибо - попробую поиграться ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2013, 07:21 |
|
|
start [/forum/topic.php?fid=39&fpage=26&tid=1557117]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
78ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 195ms |
0 / 0 |