Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть таблица DocLimits. Есть ASC индекс по полям LowLimit,HighLimit этой таблицы. Делаю запрос: Код: plaintext Делаю запросы: Код: plaintext Код: plaintext Делаю запрос: Код: plaintext Неужели в ASA 8.0 невозможно выбрать диапазон по индексу? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:19 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Может, это важно: Version 9.0.3 (5444) Platform: Windows2003 Connection type: TCPIP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:22 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock wrote: > select * from DocLimits L where L.LowLimit <= *1000* AND L.LowLimit >= *1000* > выбор идет полным перебором :( А теперь вдумайся в смысл этого запроса ;). > Неужели в ASA 8.0 невозможно выбрать диапазон по индексу? :( Можно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:30 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock wrote: > Version 9.0.3 (5444) Даже номер версии правильно переписать не смог . Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:33 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Dim2000 YuRock wrote: > Version 9.0.3 (5444) Даже номер версии правильно переписать не смог . Тормоз! Это номер версии PowerBuilder'а :) Хотя он здесь совершенно ни как не влияет. Сам запрос действительно должен выдать полную таблицу и индекс смысла не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:49 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
White Owl wrote: >>> Version 9.0.3 (5444) >> Даже номер версии правильно переписать не смог . > Тормоз! Это номер версии PowerBuilder'а :) У PB 9.0.3 не может быть такого номера билда (9.0.2 GA - это 7509). А вот ASA 8.0.3.5444 есть. > Сам запрос действительно должен выдать полную таблицу и > индекс смысла не имеет. Угумс. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:57 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
White Owl[quot Dim2000] YuRock wrote: > Version 9.0.3 (5444) Даже номер версии правильно переписать не смог . Версия, конечно же, 8.0.3 Тормоз! Это номер версии PowerBuilder'а :) Хотя он здесь совершенно ни как не влияет. Сам запрос действительно должен выдать полную таблицу и индекс смысла не имеет. Спасибо, что обозвали. Для умников. Запрос должен вернуть одну запись. Это я привел, как пример. Если Вам так будет понятнее: Код: plaintext Столько ответов и столько в них смысла :\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:08 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
чего на человека наехали ? что значит вернётся вся таблица ? запрос select * from DocLimits L where L.LowLimit <= 1000 AND L.LowLimit >= 1000 идентичен select * from DocLimits L where L.LowLimit = 1000 и индекс в первом варианте таки да подхватится врядли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:14 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock wrote: > select * from DocLimits L where L.LowLimit >= *1000* AND L.LowLimit <= *1002* Именно такой запрос будет выполняться с использованием индекса. > Столько ответов и столько в них смысла :\ Какой вопрос, такие и ответы . Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:16 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Rubberзапрос select * from DocLimits L where L.LowLimit <= 1000 AND L.LowLimit >= 1000 идентичен select * from DocLimits L where L.LowLimit = 1000 и индекс в первом варианте таки да подхватится врядли... Вот в том то и вопрос - почему и что делать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:16 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
что почему ? почему они идентичны ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:17 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Dim2000 YuRock wrote: > select * from DocLimits L where L.LowLimit >= *1000* AND L.LowLimit <= *1002* Именно такой запрос будет выполняться с использованием индекса. Нет, индекс не пользуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:17 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Rubberчто почему ? почему они идентичны ? Нет. Почему в 1-м варианте (с 2-мя условиями) индекс не пользуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:19 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
если тебя итересует разобраться - почему оптимизатор так отрабатывает - это одно, надо видеть сервер, а если интересует решение (например - медленно отрабатывает и надо поправить), то попробуй так: select * from DocLimits L where L.LowLimit >= 1000 union all select * from DocLimits L where L.LowLimit <= 1002 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:23 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock wrote: > Нет. Почему в 1-м варианте (с 2-мя условиями) индекс не пользуется. Проблема не воспроизводится. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:24 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Rubberесли тебя итересует разобраться - почему оптимизатор так отрабатывает - это одно, надо видеть сервер, а если интересует решение (например - медленно отрабатывает и надо поправить), то попробуй так: select * from DocLimits L where L.LowLimit >= 1000 union all select * from DocLimits L where L.LowLimit <= 1002 Спасибо. Вообще-то - вариант номер 2. К сожалению, Ваш вариант вернет, как раз-то, всю таблицу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:25 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
понятное дело - вместо твоих 1000 и 1002 могут быть твои параметры, главное чтоб соблюдался математический принцип (1000<1002) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:26 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
да, ошибся... select * from DocLimits L where L.LowLimit <= 1000 union all select * from DocLimits L where L.LowLimit >= 1002 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:27 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Dim2000 YuRock wrote: > Нет. Почему в 1-м варианте (с 2-мя условиями) индекс не пользуется. Проблема не воспроизводится. Плохо. У меня воспроизводится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:28 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Rubberда, ошибся... select * from DocLimits L where L.LowLimit <= 1000 union all select * from DocLimits L where L.LowLimit >= 1002 Да нет. Мне надо, как раз, записи с LowLimit 1000, 1001 и 1002, т.е. в данном примере - 3 записи. А в Вашем новом варианте - будут все записи, кроме нужных трех. IN не предлагать - там могут быть многомиллионные диапазоны (параметры заранее неизвестны). Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:31 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRock wrote: > Плохо. У меня воспроизводится. Я не смогу заглянуть в твою БД. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:32 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
YuRockв Вашем новом варианте - будут все записи, кроме нужных трех Кроме одной. Сорри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:33 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Dim2000Я не смогу заглянуть в твою БД. К сожалению, показать ее не смогу. Только постараюсь ответить на все вопросы о ней, если Вам интересно их задать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:36 |
|
||
|
Проблема с использованием индекса
|
|||
|---|---|---|---|
|
#18+
Ну что, больше идей нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 18:44 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34375568&tid=2012212]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
79ms |
get tp. blocked users: |
2ms |
| others: | 269ms |
| total: | 437ms |

| 0 / 0 |
