Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Теоритический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
SELECT f(somthing)\4 AS X FROM tbl ORDER BY f(somthing);
Сколько раз в указанном запросе вычисляется f(somthing)?
14 апр 07, 12:55    [4021363]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
эээ.... если вёрнутых значений N то и вычисляется N раз
а если СТОП срабатывает только один раз ... так это ... тут обсуждался этот эффект
14 апр 07, 13:22    [4021401]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
вопроос - самсинг - это поле таблицы или константа ?
14 апр 07, 13:23    [4021405]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
ILL HEAD
эээ.... если вёрнутых значений N то и вычисляется N раз
а если СТОП срабатывает только один раз ... так это ... тут обсуждался этот эффект

Так к какому выводу пришли в этом обсуждении?
14 апр 07, 13:24    [4021408]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
ILL HEAD
вопроос - самсинг - это поле таблицы или константа ?

Поле таблицы. А это имеет значение?
14 апр 07, 13:25    [4021410]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
чесно говоря не помню ... но ощущение осталось такое что jet (или vba - я не понял) типа кэшируют эту функцию
и к коду больше не обращаются
ИМХО
14 апр 07, 13:26    [4021416]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
Любопыт
ILL HEAD
вопроос - самсинг - это поле таблицы или константа ?

Поле таблицы. А это имеет значение?
ну если константа то надеясь на "интелект" jet-a можно предполложить что он понимает что достаточно вычислить один раз
14 апр 07, 13:27    [4021422]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
SELECT f(somthing)\4 AS X FROM tbl ORDER BY f(somthing)\4;
А в этом случае Jet, надеюсь, один раз вычислит f(somthing)\4?
14 апр 07, 13:31    [4021430]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
ну с чего ради ?
если запрос вернет не одну запись то и вычисления будут для каждой записи . а иначе как они появятся в результате?
14 апр 07, 13:35    [4021435]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
ы
Guest
Любопыт
SELECT f(somthing)\4 AS X FROM tbl ORDER BY f(somthing);
Сколько раз в указанном запросе вычисляется f(somthing)?

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

А вообще чем задавать такие вопросы, включите в функцию переменную-счетчик, и посмотрите, на сколько изменится ее значение после выполнения запроса
14 апр 07, 13:37    [4021439]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
ILL HEAD
ну с чего ради ?
если запрос вернет не одну запись то и вычисления будут для каждой записи . а иначе как они появятся в результате?

Нет, я имел в виду в одной записи. Понятно, что сколько записей столько и вычислений.
14 апр 07, 13:37    [4021444]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
Т.е. в одной записи будет ли вычисляться эта функция 2 раза : в теле SELECT и в ORDER BY?
14 апр 07, 13:39    [4021446]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
аа.. дошло ... не знаю :)
надеюсь что один раз :)
14 апр 07, 13:41    [4021448]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
ILL HEAD
аа.. дошло ... не знаю :)
надеюсь что один раз :)

Часто встает необходимость сортировать по вычисляемым полям, вот и думаешь как правильней писать в ORDER BY:
так:
SELECT f(somthing)\4 AS X FROM tbl ORDER BY f(somthing)\4;
или так:
SELECT f(somthing)\4 AS X FROM tbl ORDER BY f(somthing);
14 апр 07, 13:45    [4021456]     Ответить | Цитировать Сообщить модератору
 Re: Теоретический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
Любопыт

как правильней писать в ORDER BY:
так:
SELECT f(somthing)\4 AS X FROM tbl ORDER BY f(somthing)\4;
или так:
SELECT f(somthing)\4 AS X FROM tbl ORDER BY f(somthing);

Так как вы думаете в каком из этих вариантов будет повторно вычисляться f(somthing)?
Мне кажется, что в первом не должно быть повторного вычисления. Если повторное вычисление в любом случае происходит, то имеет смысл использовать второй вариант (все-же на одну операцию меньше).
14 апр 07, 16:52    [4021688]     Ответить | Цитировать Сообщить модератору
 Re: Теоретический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
А тема ветки не редактируется чтоли?
Модераторы, исправьте, пожалуйста, ошибку, а то как-то неудобно.
14 апр 07, 17:06    [4021706]     Ответить | Цитировать Сообщить модератору
 Re: Теоретический вопрос  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Любопыт
А тема ветки не редактируется чтоли?
Модераторы, исправьте, пожалуйста, ошибку, а то как-то неудобно.

Я исправил. Но вообще-то модерирование состоит в удалении ругани и разговоров на постороннюю тему, а не фактических ошибок по теме обсуждения.
14 апр 07, 18:39    [4021781]     Ответить | Цитировать Сообщить модератору
 Re: Теоритический вопрос  [new]
Любопыт
Member

Откуда:
Сообщений: 1599
Спасибо, Саныч. Буду знать.
14 апр 07, 18:45    [4021788]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить