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

Откуда:
Сообщений: 33
Есть несложный запрос который выбирает данные с таблицы. В таблице один стобец строковый фиксированной длины, но содержит числовые значения. При выборки и передачи условия как строки запрос выполняется очень-очень долго, но если передать как число, то мгновенно. Пример
where val='974' --очень долго хотя столбец имеет тип строковой
where val=974-- мгоновенно
Поясните пожалуйста причину такого ускорения..
26 июн 09, 11:06    [7346661]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация, строки и числа  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
ceregin
where val='974' --очень долго хотя столбец имеет тип строковой
where val=974-- мгоновенно
Поясните пожалуйста причину такого ускорения..
Ставлю на то, что причина в том, что Вы все-таки ошиблись в выделенном :) Либо в замерах времени, либо меняется что-то ещё :)
26 июн 09, 11:14    [7346721]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация, строки и числа  [new]
Lecter
Member

Откуда: Киев
Сообщений: 2032
Jannny
Ставлю на то, что причина в том, что Вы все-таки ошиблись в выделенном :) Либо в замерах времени, либо меняется что-то ещё :)

А я ставлю на то что поднят индекс по функции TO_NUMBER Либо что то подобное :)
26 июн 09, 11:16    [7346738]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация, строки и числа  [new]
ceregin
Member

Откуда:
Сообщений: 33
Jannny, все верно я написал
26 июн 09, 11:17    [7346743]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация, строки и числа  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
ceregin
Jannny, все верно я написал
Ваш вопрос не имеет ответа при таких данных :) Как минимум предоставьте два плана.
26 июн 09, 14:32    [7348236]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация, строки и числа  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10039
Jannny
Ставлю на то, что причина в том, что Вы все-таки ошиблись в выделенном :) Либо в замерах времени, либо меняется что-то ещё :)


Well, it can be something like:

WHERE clause has more conditions, e.g.:

WHERE val='974' AND some_column = 5

Both val and some_column are indexed. Stats are not collected or stale. Table is large and there is large number of rows with val='974' and small number of rows with some_column = 5. In any case, completely agree with:

Jannny

Ваш вопрос не имеет ответа при таких данных :) Как минимум предоставьте два плана.


SY.

Сообщение было отредактировано: 26 июн 09, 17:39
26 июн 09, 17:27    [7349667]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить