powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разная скорость выполнения запроса при похожем условии
35 сообщений из 35, показаны все 2 страниц
Разная скорость выполнения запроса при похожем условии
    #40117933
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся со странной ( для меня ) проблемой.
есть таблица, с ключевым счетчиком и числовым полем.
в таблице 500 000 записей - в числовом поле или есть цифра от одного до десяти или ее нет.
на всякий случай сделал индекс и в счетчике и в числовом поле
код число
1 1
2 1
3 2
4
5 1


запросы делал в конструкторе.

Код: sql
1.
SELECT [число]=1 AS z FROM Таблица WHERE ((([число]=1)=-1));


делает пару секунд
но если сделать так
Код: sql
1.
SELECT [число]=1 AS z FROM Таблица WHERE ((([число]=1)=Yes));


делает мгновенно

почему так происходит?

если так выбирать - тоже мгновенно ищет
Код: sql
1.
SELECT Таблица.[число] AS z FROM Таблица WHERE (((Таблица.[число])=1));




просто запрос на выборку должен быть с более сложным условием, но даже такой простой выполняется долго.
от сюда возникает второй вопрос.
такая выборка тоже происходит долго - несколько секунд. както можно ее оптимизировать чтобы ускорить?
Код: sql
1.
SELECT IIf(1=1,[число]=1,[число]=2) AS Выражение1 FROM Таблица WHERE (((IIf(1=1,[число]=1,[число]=2))=Yes));



Спасибо!
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40117966
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
почему так происходит?


что происходит?
какой результат запроса ? (или всем нужно сделать табличку, ввести туда данные, сделать запрос, увидеть результат)...
расшифруй обычными словами условие в WHERE (что ты там пытаешься фильтровать)
Вот честно - впадлу собирать тренажер...
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118008
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
...
такая выборка тоже происходит долго - несколько секунд. както можно ее оптимизировать чтобы ускорить?
Код: sql
1.
SELECT IIf(1=1,[число]=1,[число]=2) AS Выражение1 FROM Таблица WHERE (((IIf(1=1,[число]=1,[число]=2))=Yes));



Спасибо!

Не знаю насчет "оптимизировать", но вижу, что эта конструкция сводится к такому выражению:
Код: sql
1.
SELECT True AS Выражение1 FROM Таблица WHERE [число]=1

Что бы это ни значило.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118038
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
такая выборка тоже происходит долго - несколько секунд. както можно ее оптимизировать чтобы ускорить?

Функция во WHERE - это фуллскан. У Access, видимо, недостаточно мозгов, чтобы расплести эту заумь и избавиться от константного IIF.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118102
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

разная скорость выполнения одного и того же запроса если фильтровать по -1 или по yes


SELECT [число]=1 AS z FROM Таблица WHERE ((([число]=1)= -1 ));
делает пару секунд

но если сделать так
SELECT [число]=1 AS z FROM Таблица WHERE ((([число]=1)= Yes ));
выполняется мгновенно

я запрос упростил то одного столбца с цифрами, по которому фильтруется и при котором появляется такой разброс во времени обработки.
не знаю как еще его упростить чтобы тут на форуме поняли.

результатом запроса буде ( относительно таблицы из поста)

1
1
1
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118118
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
Yes
нет такого в sql
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118128
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

я вроде писал что делал запросы в конструкторе. и там он упешно писал ес
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118219
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
результатом запроса буде ( относительно таблицы из поста)

1
1
1


а зачем эти -1 и yes ?
просто ([число]=1) не гламурно ?
"Событие" же само по себе уже и так равно и Yes и -1 и True в случае если [число]=1 ибо это истина...
Вам нужно типа этого:
Код: vbnet
1.
If i = 0 Then i*0  'контрольный выстрел в голову ?
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118255
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar

SELECT [число]=1 AS z ...

результатом запроса буде ( относительно таблицы из поста)

1
1
1

Не будет. Будет -1 (минус единица).

В этом запросе выводится результат логической операции сравнения - а это либо 0 (False), либо -1 (True).
Так что же даст сравнение в данном конкретном случае?
Конечно, только True, то есть, -1.
Почему?
А вот почему - в силу условия WHERE, которое требует, чтобы отбирались только те записи, где [число]=1.

Вы, вероятно, немножко перемудрили с "упрощением" своего запроса.
Лучше словами напишите, что в запросе должно выводиться, и при каких условиях.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118296
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,

да - правильно -1. я потом уже заметил, не успел исправить.
тут не важно что в итоге выводится, просто заметил что разная скорость если в условии -1 или true, при одном и том же запросе.
и поэтому обрезал запрос по максимуму чтобы можно было легко отследить это разное время.

основной вопрос - почему так получается.
это чисто спортивный интерес, для общего развития.
чтобы понять - это бак аксесса или чтото большее ))
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118298
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Nezar
результатом запроса буде ( относительно таблицы из поста)

1
1
1


а зачем эти -1 и yes ?
просто ([число]=1) не гламурно ?
"Событие" же само по себе уже и так равно и Yes и -1 и True в случае если [число]=1 ибо это истина...
Вам нужно типа этого:
Код: vbnet
1.
If i = 0 Then i*0  'контрольный выстрел в голову ?



[число]=1 - гламурно, но как я уже написал - это чисто спортивный интерес.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118305
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
- это чисто спортивный интерес.


так иди дальше на рекорд, исследуй ситуацию, пиши рекламации...
SELECT [число]=1 AS z FROM Таблица WHERE ((((((([число]=1)=Yes)=Yes)=Yes)=Yes)=Yes));
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118357
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

это такой вариант ответа - когда нет ответа?
может тогда не стоит?
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118384
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Вы почитайте справку про SELECT и "вкурите" что там должно быть только ИМЯ поля(если надо с алиасом,но никак не условие: число=1) а уж отбор в WHERE (и абсолютно фиолетово будет там TRUE или -1)
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118386
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar,

SELECT IIf(1=1,[число]=1,[число]=2)
Улыбнуло
IIF(<условие>, <выражение, если условие истинно>, <выражение, если условие не истинно>)
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118388
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,
Меня тоже
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118392
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

а вы перечитайте вопрос внимательно и "вкурите" что "число" - это название поля.
и как оказалось не фиолетово TRUE или -1

я привел реальные запросы из реальной таблицы с реально разной скоростью выполнения запроса.

по моему чем проще пишеш запрос и чем подробнее описываешь проблему - тем сложнее она для понимания местных "гуру"
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118394
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,

и что же вас тут позабавило?
не возможность выполнения такого условия?

приведите лучше пример как сделать выборку с условием без такой конструкции.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118395
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
vmag,

это такой вариант ответа - когда нет ответа?
может тогда не стоит?

А что, вам, не понравилось в ответе?
Каой вопрос с примером, такой и ответ с примером
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118397
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видео процесса
YouTube Video
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118398
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
а вы перечитайте вопрос внимательно и "вкурите" что "число" - это название поля.

да ну????
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118399
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,

к сожалению я вижу только вашу не способность, в очередной раз, понять простой вопрос, и как следствие ваши посты как всегда ни о чем.
троль?
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118400
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI
Nezar
а вы перечитайте вопрос внимательно и "вкурите" что "число" - это название поля.

да ну????

И откуда SQL знает что число 1 это название поля.
Пытается вас понять(вот и думает долго)
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118413
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar
...
приведите лучше пример как сделать выборку с условием без такой конструкции.
Вам ведь важно именно разные варианты условия в WHERE рассмотреть?
Тогда, может, как-то так:
Код: sql
1.
2.
3.
4.
SELECT 1 FROM Tabl WHERE True
SELECT 1 FROM Tabl WHERE -1
SELECT 1 FROM Tabl WHERE -1=True
.....


На всякий случай (а то уже напридумывали): тут 1 - просто единица, никакое не название поля.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118524
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar,
[число]-это поле,а [число]=1 это условие.Больше слов нет....
знак "=" это оператор сравнения
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118541
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS:Это из HELPа который надо читать чтоб не задавать такие вопросы и пытаться втолковать отвечающему что он даун:
-операторм сравнения является один из следующих операторов: <, >, =, <=, >=, <>, Between…And, Like, In.
-арифметические операторы ( +, -, *, / )
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40118630
Nezar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

Рад что вы знаете такие вещи.
но какое это отношение имеет к теме вопроса?
или вы тупо посты набиваете?
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40119138
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nezar,
А я очень сожалею что "бараны" глупыми высказываниями которых забит весь интернет добрались и до этого форума.
Составить абсолютно неправильно инструкцию SQL (сравнение в SELECTе) и спрашивать почему запрос "не так" работает (удивительно что он вообще работает)-это сильно. А людям которые Вам пытаются что-то объяснить и помочь присваивать "высокое" звание троля или "тупо набивающего посты"-это еще сильнее.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40119146
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
...Составить абсолютно неправильно инструкцию SQL (сравнение в SELECTе) ...
А почему сравнение в SELECT'е - это неправильно?
Иногда и это требуется.
Нормальная конструкция.

sdku
...и спрашивать почему запрос "не так" работает...
Да вроде, вопрос не про "не так", а про "с разной скоростью".
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40119171
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle,
Код: vbnet
1.
2.
3.
SELECT IIF(ctl=2;ctl;ctl+ctl1) as мyName ....FROM 'сравнение внутри IIF
SELECT ctl=2.....FROM 'сравнение в SELECT и как выполнять такую инструкцию: SELECT
true\false FROM

Из HELP: минимальный синтаксис инструкции SELECT:
SELECT поля
FROM таблица
(в последних версиях кажись еще короче-без слова "SELECT"-точно не помню)
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40119175
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle
...
....Нормальная конструкция....
....Только работает медленно. А в более сложном запросе будет работать или нет-неизвестно....
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40119182
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом запросе будет работать.
Ничего там страшного нет.
Сплошь и рядом так делают.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40119283
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle
В любом запросе будет работать.
Ничего там страшного нет.
Сплошь и рядом так делают.
Лишь бы на здоровье...Правда это не документировано....
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40119290
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
__Michelle
В любом запросе будет работать.
Ничего там страшного нет.
Сплошь и рядом так делают.
Лишь бы на здоровье...Правда это не документировано....

Как же не документировано?

https://support.microsoft.com/ru-ru/office/access-sql-предложение-select-12d169e7-0348-407d-9c67-180ff32540ac#bm4 Access SQL. Предложение SELECT
.......
В качестве поля можно использовать любое допустимое выражение,
если, принимая одно значение, оно возвращает также одно значение.
...
Рейтинг: 0 / 0
Разная скорость выполнения запроса при похожем условии
    #40119332
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle

В качестве поля можно использовать любое допустимое выражение,
если, принимая одно значение, оно возвращает также одно значение.
А что подразумевается под "допустимым выражением"-покажите пример(уж не будут ли это имена полей с арифметическими операторами)
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разная скорость выполнения запроса при похожем условии
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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