
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.11.2003, 17:35
|
|||
|---|---|---|---|
|
|||
Как ускорить этот запрос??? |
|||
|
#18+
Для Access!!! SELECT Ucase(Trim(Trim(Abcinf.namd_r)+' '+Trim(Prod_s.sform))) AS FullName, Prod_s.codrecord FROM Abcinf INNER JOIN Prod_s ON Abcinf.codmd_r = Prod_s.codmd_r where Ucase(Trim(Trim(Abcinf.namd_r)+' '+Trim(Prod_s.sform))) = 'МЕДИКАМЕНТЫ' Abcinf - ~8 тыс. записей Prod_s - ~70 тыс. записей Работает очень медленно, требуется примерно 3-5 сек как мне его ускорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 17:48
|
|||
|---|---|---|---|
|
|||
Как ускорить этот запрос??? |
|||
|
#18+
1. Я бы проверил наличие индексов. 2. Внешний Trim - лишний. То, что передается ему как параметр, и так уже не имеет пробелов по концам. 3. Условие в WHERE явно можно упростить. Например: Ucase(Trim(Abcinf.namd_r)) = 'МЕДИКАМЕНТЫ' OR Ucase(Trim(Prod_s.sform)) = 'МЕДИКАМЕНТЫ' 4. Можно этот Ucase(Trim( от двух полей держать в отдельном поле и вычислять по мере занесения записей, а не в момент запуска отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 17:52
|
|||
|---|---|---|---|
Как ускорить этот запрос??? |
|||
|
#18+
А "Медикаменты" могут быть в любой из таблиц - я правильно понял?!?!? Если можно привести по нескольку удачных записей для примера - было бы здорово.... И плюс - насколько я помню и в Access тоже сравнение не case_sensitive, т.е. все равно Ucase или нет...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 17:55
|
|||
|---|---|---|---|
Как ускорить этот запрос??? |
|||
|
#18+
2 В.С. Второе предложение не совсем верно - там есть еще пробел в середине между двумя внутренними Trim'ами.... - может и вылезти, если один из них пустой.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 17:55
|
|||
|---|---|---|---|
|
|||
Как ускорить этот запрос??? |
|||
|
#18+
нет, там все намного хуже: приходит прайс от поставщика.... пробегаемся по наименованию, и ищем такую же строку в хранимом запросе(который это уже отработал, т.е. кабы сетка висит по которой ищут ID через наименование) если наименование есть, выдается id строки и тоже самое со следующей записью, если такой строки нет, она добавляется в таблицу (как новое, нераспознанное). Т.е. происходит сверка AbcInf.Name_r+' '+Prod_s.sform =? Наименование. Это не я придумал, но зато теперь мучают меня: "Медленно работает" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 17:56
|
|||
|---|---|---|---|
|
|||
Как ускорить этот запрос??? |
|||
|
#18+
> Второе предложение не совсем верно Действительно. Виноват. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 18:01
|
|||
|---|---|---|---|
Как ускорить этот запрос??? |
|||
|
#18+
2 Автор: Что-то несколько путанное разъяснение.... Может дадите запрос целиком?!? раз там еще и добавление??!? или это не запросом?!? и к чему там "? Наименование"?!? и еще красным выделенное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 18:07
|
|||
|---|---|---|---|
|
|||
Как ускорить этот запрос??? |
|||
|
#18+
Что-то у меня форум глючит :-( а он весь, все что после where это я уже здесь приписал для нагладнасти, а так оно(фильтр для отбора) определяется в клиенте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 18:11
|
|||
|---|---|---|---|
Как ускорить этот запрос??? |
|||
|
#18+
Если операция поиска происходит значительно чаще, чем получение прайса, то я бы посоветовал обратить внимание на совет ВС Можно этот Ucase(Trim( от двух полей держать в отдельном поле и вычислять по мере занесения записей, а не в момент запуска отчета. Т.е. получили данные, добавли расчетное поле, проиндексировали его, и ищи себе быстренько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 18:13
|
|||
|---|---|---|---|
Как ускорить этот запрос??? |
|||
|
#18+
автор писал:Т.е. происходит сверка AbcInf.Name_r+' '+Prod_s.sform =? Наименование Так зачем сравнивать выражение с пробелом с выражением без пробела, если можно воспользоваться Советом №3 от Владимир Саныча ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 18:16
|
|||
|---|---|---|---|
Как ускорить этот запрос??? |
|||
|
#18+
Нет, понятно, конечно, что ты уже как рыба в своих структурах и медикаментах..... Т.е. происходит сверка AbcInf.Name_r+' '+Prod_s.sform =? Наименование. Наименование - это из прайса?!?! AbcInf.Name_r - из каталога?!?!? +' '+Prod_s.sform - что за зверь?!?!?!? Я к тому, что может по логике его можно как-то упростить?!?!? или по сравнению.... - кто ж чего может подсказать просто по запросу.... Можно считать, что 3-5 секунд для обработки всего прайса не так уж и плохо - их же не тысячи приходят (наверное....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 18:24
|
|||
|---|---|---|---|
|
|||
Как ускорить этот запрос??? |
|||
|
#18+
ЦИСПЛАТИН_1МГ/МЛ ФЛ.10МЛ _ - пробел вот в таком виде приходят наименования, такйже вид получается после запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 18:31
|
|||
|---|---|---|---|
|
|||
Как ускорить этот запрос??? |
|||
|
#18+
Наименование - это из прайса?!?! - наименование в пл AbcInf.Name_r - из каталога?!?!? наименование медикаментов +' '+Prod_s.sform - что за зверь?!?!?!? - форма выпуска Я к тому, что может по логике его можно как-то упростить?!?!? или по сравнению.... - кто ж чего может подсказать просто по запросу.... MixaCh писал:Можно считать, что 3-5 секунд для обработки всего прайса не так уж и плохо - их же не тысячи приходят (наверное....) в том то и дело что только для одной строки 3-5 сек идет поиск. прайсов за день приходит от 30 до ЁЁЁЁЁ штук, и каждый по 1500 - 3000 строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.11.2003, 18:34
|
|||
|---|---|---|---|
Как ускорить этот запрос??? |
|||
|
#18+
Ну тогда или как советовали - создать поле с полным наименованием медикамента Или когда обрабатывается прайс - бить наименование в нем - до двух полей - и сравнивается уже напрямую.... Ну и индексы, конечно, как говорили уже выще гуру.... А прайс обрабатывается что - построчно?!? - может стоит его сгрузить во временную таблицу и работать с ней одним запросом - ну выростет время на 1 запись, зато в целом на документ думаю, что понизится хорошо..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=45&tablet=1&tid=1678351]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 452ms |

| 0 / 0 |
