|
|
|
Долгий Left Join ускорить или делать временную таблицу?
|
|||
|---|---|---|---|
|
#18+
Даны справочник товаров, свойства товаров и цены товаров, остаток утром, проданно: Код: plsql 1. 2. 3. Причем на один товар может быть несколько свойств, так и не одного: таблица TOVARY Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. "Вяжу" их: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. На тестовых табличках все летает со свистом! Но на реальной БД (TOVARY - более 17 тыс записей, TOVARY_sv -34 с гаком) - время выполнения запроса более минуты. И это я еще не подцепил цены и остатки :-( Вопрос: ковырять запрос для его оптимизации? если да - то в каком направлении или сделать в своем приложении кнопочку "обновить справочник" которую буду нажимать и будет создаваться табличка в которой вся инфа (кроме остатков) сведена в одну "плоскую" таблицу вида: Код: plaintext и вязать эту таблицу с таблицами остатков? З.Ы. Аналогичная по функционалу программа писана на фоксе, работает за доли секунды, но это после того как эту БД обработал "конвертер данных". Недостатки: дрневняя как .... мамонта, нет исходников, под линем работает с "бубном", да и надо добавить функционала. Проще переписать заново... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 17:58:18 |
|
||
|
Долгий Left Join ускорить или делать временную таблицу?
|
|||
|---|---|---|---|
|
#18+
AlexSSSS, получается у вас в одной таблице "TOVARY_sv" хранится информация по весу и цвету товара ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 20:29:27 |
|
||
|
Долгий Left Join ускорить или делать временную таблицу?
|
|||
|---|---|---|---|
|
#18+
Станислав Клевцов, Все верно. Причем по замыслу разработчика тут может храниться скольугодное число свойств товара. Но меня интересуют только два. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 21:37:47 |
|
||
|
Долгий Left Join ускорить или делать временную таблицу?
|
|||
|---|---|---|---|
|
#18+
AlexSSSSСтанислав Клевцов, Все верно. Причем по замыслу разработчика тут может храниться скольугодное число свойств товара. Но меня интересуют только два. Можно попробовать для "свойства" создать отдельный столбец '***' (числовой) в этой же таблице и его использовать для выборки нужных 2 свойств. Таким образом не будет использоваться в запросе "дорогая" операции like по тексту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 21:51:50 |
|
||
|
Долгий Left Join ускорить или делать временную таблицу?
|
|||
|---|---|---|---|
|
#18+
В том-то и дело что эти таблицы формируются программой от поставщика. По идее - к этой БД доступа вообще нет: для "общения" с внешними системами используются иные БД. Но бяда в том, что ВСЯ необходимая инфа в одном месте есть только тут... Но направление изысканий понятно: есть возможность заменть LIKE на равно: будет весьма "массивно", но должно сработать. Спасибо за наводку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 22:53:53 |
|
||
|
Долгий Left Join ускорить или делать временную таблицу?
|
|||
|---|---|---|---|
|
#18+
AlexSSSSВ том-то и дело что эти таблицы формируются программой от поставщика. По идее - к этой БД доступа вообще нет: для "общения" с внешними системами используются иные БД. Но бяда в том, что ВСЯ необходимая инфа в одном месте есть только тут... Но направление изысканий понятно: есть возможность заменть LIKE на равно: будет весьма "массивно", но должно сработать. Спасибо за наводку... Если нет доступа - это печально ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 23:51:00 |
|
||
|
Долгий Left Join ускорить или делать временную таблицу?
|
|||
|---|---|---|---|
|
#18+
Станислав Клевцовполучается у вас в одной таблице "TOVARY_sv" хранится информация по весу и цвету товара ?обычный еав, что тут такого? AlexSSSSНо направление изысканий понятно: есть возможность заменть LIKE на равно: будет весьма "массивно", но должно сработать.+1 лайк (такой, как тут) в принципе не даст вам воспользоваться индексами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2014, 05:01:08 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38797854&tid=1833973]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 312ms |

| 0 / 0 |
