Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
06.12.2021, 22:07
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Столкнулся со странной ( для меня ) проблемой. есть таблица, с ключевым счетчиком и числовым полем. в таблице 500 000 записей - в числовом поле или есть цифра от одного до десяти или ее нет. на всякий случай сделал индекс и в счетчике и в числовом поле код число 1 1 2 1 3 2 4 5 1 запросы делал в конструкторе. Код: sql 1.
делает пару секунд но если сделать так Код: sql 1.
делает мгновенно почему так происходит? если так выбирать - тоже мгновенно ищет Код: sql 1.
просто запрос на выборку должен быть с более сложным условием, но даже такой простой выполняется долго. от сюда возникает второй вопрос. такая выборка тоже происходит долго - несколько секунд. както можно ее оптимизировать чтобы ускорить? Код: sql 1.
Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 04:50
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar почему так происходит? что происходит? какой результат запроса ? (или всем нужно сделать табличку, ввести туда данные, сделать запрос, увидеть результат)... расшифруй обычными словами условие в WHERE (что ты там пытаешься фильтровать) Вот честно - впадлу собирать тренажер... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 10:35
|
|||
---|---|---|---|
|
|||
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar ... такая выборка тоже происходит долго - несколько секунд. както можно ее оптимизировать чтобы ускорить? Код: sql 1.
Спасибо! Не знаю насчет "оптимизировать", но вижу, что эта конструкция сводится к такому выражению: Код: sql 1.
Что бы это ни значило. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 11:40
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar такая выборка тоже происходит долго - несколько секунд. както можно ее оптимизировать чтобы ускорить? Функция во WHERE - это фуллскан. У Access, видимо, недостаточно мозгов, чтобы расплести эту заумь и избавиться от константного IIF. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 13:57
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
vmag, разная скорость выполнения одного и того же запроса если фильтровать по -1 или по yes SELECT [число]=1 AS z FROM Таблица WHERE ((([число]=1)= -1 )); делает пару секунд но если сделать так SELECT [число]=1 AS z FROM Таблица WHERE ((([число]=1)= Yes )); выполняется мгновенно я запрос упростил то одного столбца с цифрами, по которому фильтруется и при котором появляется такой разброс во времени обработки. не знаю как еще его упростить чтобы тут на форуме поняли. результатом запроса буде ( относительно таблицы из поста) 1 1 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 14:32
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar Yes ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 14:56
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Панург, я вроде писал что делал запросы в конструкторе. и там он упешно писал ес ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 18:03
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar результатом запроса буде ( относительно таблицы из поста) 1 1 1 а зачем эти -1 и yes ? просто ([число]=1) не гламурно ? "Событие" же само по себе уже и так равно и Yes и -1 и True в случае если [число]=1 ибо это истина... Вам нужно типа этого: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 19:33
|
|||
---|---|---|---|
|
|||
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar SELECT [число]=1 AS z ... результатом запроса буде ( относительно таблицы из поста) 1 1 1 Не будет. Будет -1 (минус единица). В этом запросе выводится результат логической операции сравнения - а это либо 0 (False), либо -1 (True). Так что же даст сравнение в данном конкретном случае? Конечно, только True, то есть, -1. Почему? А вот почему - в силу условия WHERE, которое требует, чтобы отбирались только те записи, где [число]=1. Вы, вероятно, немножко перемудрили с "упрощением" своего запроса. Лучше словами напишите, что в запросе должно выводиться, и при каких условиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 23:20
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
__Michelle, да - правильно -1. я потом уже заметил, не успел исправить. тут не важно что в итоге выводится, просто заметил что разная скорость если в условии -1 или true, при одном и том же запросе. и поэтому обрезал запрос по максимуму чтобы можно было легко отследить это разное время. основной вопрос - почему так получается. это чисто спортивный интерес, для общего развития. чтобы понять - это бак аксесса или чтото большее )) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.12.2021, 23:24
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
vmag Nezar результатом запроса буде ( относительно таблицы из поста) 1 1 1 а зачем эти -1 и yes ? просто ([число]=1) не гламурно ? "Событие" же само по себе уже и так равно и Yes и -1 и True в случае если [число]=1 ибо это истина... Вам нужно типа этого: Код: vbnet 1.
[число]=1 - гламурно, но как я уже написал - это чисто спортивный интерес. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 00:56
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar - это чисто спортивный интерес. так иди дальше на рекорд, исследуй ситуацию, пиши рекламации... SELECT [число]=1 AS z FROM Таблица WHERE ((((((([число]=1)=Yes)=Yes)=Yes)=Yes)=Yes)); ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 11:57
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
vmag, это такой вариант ответа - когда нет ответа? может тогда не стоит? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:18
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
А Вы почитайте справку про SELECT и "вкурите" что там должно быть только ИМЯ поля(если надо с алиасом,но никак не условие: число=1) а уж отбор в WHERE (и абсолютно фиолетово будет там TRUE или -1) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:29
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar, SELECT IIf(1=1,[число]=1,[число]=2) Улыбнуло IIF(<условие>, <выражение, если условие истинно>, <выражение, если условие не истинно>) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:32
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
ROI, Меня тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:40
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
sdku, а вы перечитайте вопрос внимательно и "вкурите" что "число" - это название поля. и как оказалось не фиолетово TRUE или -1 я привел реальные запросы из реальной таблицы с реально разной скоростью выполнения запроса. по моему чем проще пишеш запрос и чем подробнее описываешь проблему - тем сложнее она для понимания местных "гуру" ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:42
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
ROI, и что же вас тут позабавило? не возможность выполнения такого условия? приведите лучше пример как сделать выборку с условием без такой конструкции. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:43
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar vmag, это такой вариант ответа - когда нет ответа? может тогда не стоит? А что, вам, не понравилось в ответе? Каой вопрос с примером, такой и ответ с примером ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:44
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
видео процесса ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:45
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar а вы перечитайте вопрос внимательно и "вкурите" что "число" - это название поля. да ну???? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:47
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
ROI, к сожалению я вижу только вашу не способность, в очередной раз, понять простой вопрос, и как следствие ваши посты как всегда ни о чем. троль? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 13:49
|
|||
---|---|---|---|
Разная скорость выполнения запроса при похожем условии |
|||
#18+
ROI Nezar а вы перечитайте вопрос внимательно и "вкурите" что "число" - это название поля. да ну???? И откуда SQL знает что число 1 это название поля. Пытается вас понять(вот и думает долго) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.12.2021, 14:27
|
|||
---|---|---|---|
|
|||
Разная скорость выполнения запроса при похожем условии |
|||
#18+
Nezar ... приведите лучше пример как сделать выборку с условием без такой конструкции. Тогда, может, как-то так: Код: sql 1. 2. 3. 4.
На всякий случай (а то уже напридумывали): тут 1 - просто единица, никакое не название поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1609527]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 257ms |
total: | 534ms |
0 / 0 |