|
19.06.2009, 16:29 | #1 |
Ищущий знания...
|
Цитата:
Сообщение от dim123
запрос
select t.itemname,s.itemid,sum(s.availphysical) as cnt from inventsum s, inventdim d, inventtable as t where s.availphysical<>0 and t.itemid=s.itemid and d.inventlocationid='616' and d.inventdimid = s.inventdimid and s.dataareaid='hc' and s.itemid like '7%' and d.dataareaid='hc' and t.dataareaid='hc' group by s.itemid,t.itemname order by s.itemid висит
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
19.06.2009, 16:42 | #2 |
MCITP
|
Цитата:
Like Lik-у рознь.
__________________
Zhirenkov Vitaly |
|
19.06.2009, 16:52 | #3 |
Участник
|
|
|
19.06.2009, 17:47 | #4 |
Участник
|
В данном случае сравниваемое значение (строка после like) начинается с "константы", значит индексы могут использоваться. А вот если бы начиналось с %, то да- индексы для этого поля уже не смогли бы использоваться.
|
|
|
За это сообщение автора поблагодарили: lev (1). |
20.06.2009, 15:33 | #5 |
Модератор
|
Вы уж не обижайтесь, но непонятно пока что ничего
- Начали ветку с добавления накладных расходов на накладную от поставщика, потом переключились на производство и инвентаризацию - То у Вас disk time 90%, то Lock waits на порядок больше Buffer IO waits (см. первый скриншот) - Ссылаетесь на использование партий, но в приведенном запросе партии не участвуют, зато присутствуют серийные номера (см. первый скриншот, last expensive queries) - Чем занимается приложение, ходящее через COM, кем и как написано - непонятно Начните с простых вещей - 2 часа на формирование журнала инвентаризации при Ваших объемах - это ненормально. Попробуйте для начала выровнять эту операцию. Например, постройте покрывающий индекс на InventDim по используемым аналитикам (InventDimId, InventLocationId, InventBatchId (?), InventSerialId(?)) - При возникновении блокировки - идентифицируйте оба процесса (блокируемый и блокирующий), по возможности - идентифицируйте выполняющий их функционал Если этого не сделаете Вы - форумчане за Вас этого не сделают и подавно P.S. READ_COMMITTED_SNAPSHOT ON включите - что-то изменится ?
__________________
-ТСЯ или -ТЬСЯ ? |
|
20.06.2009, 21:42 | #6 |
Участник
|
Цитата:
Сообщение от Vadik
Вы уж не обижайтесь, но непонятно пока что ничего
- Начали ветку с добавления накладных расходов на накладную от поставщика, потом переключились на производство и инвентаризацию - То у Вас disk time 90%, то Lock waits на порядок больше Buffer IO waits (см. первый скриншот) - Ссылаетесь на использование партий, но в приведенном запросе партии не участвуют, зато присутствуют серийные номера (см. первый скриншот, last expensive queries) - Чем занимается приложение, ходящее через COM, кем и как написано - непонятно Начните с простых вещей - 2 часа на формирование журнала инвентаризации при Ваших объемах - это ненормально. Попробуйте для начала выровнять эту операцию. Например, постройте покрывающий индекс на InventDim по используемым аналитикам (InventDimId, InventLocationId, InventBatchId (?), InventSerialId(?)) - При возникновении блокировки - идентифицируйте оба процесса (блокируемый и блокирующий), по возможности - идентифицируйте выполняющий их функционал Если этого не сделаете Вы - форумчане за Вас этого не сделают и подавно P.S. READ_COMMITTED_SNAPSHOT ON включите - что-то изменится ? попытаюсь 1) ахапта 3.0 2) "2 часа на формирование журнала инвентаризации при Ваших объемах - это ненормально" стандартная логика : у нас 570 000 инвентсум и 2000 инвенттабле . журнала инвентаризации делает 570 000 запросов 3) проблема как я уже написал в 3 таблицах . переписывать стандарт не имеем желания 4) COM - продукция на склад ( Продтабле ) ,движение продуктов ( инвентёурнал ) . вывод АХАПТА 3.0 стандарт не может внедрятца с исползованием партий ( у нас под партий подразумеваетса гововая продукция EURO поддон с продукцией) . Консултанты не смогли этого предвидеть или не хотели . РАИД и отказ от партий в ахапте и вынос отделно патрийного учета. READ_COMMITTED_SNAPSHOT если инвентсум и транс блокировка na insert form update , manage indeksov . смогу получать даные |
|
22.06.2009, 10:17 | #7 |
Участник
|
Цитата:
У нас невозможно выполнять операции с номенклатурой если она входит в созданный журнал инвентаризации. Приходится извращаться.
__________________
Александр |
|
19.06.2009, 16:53 | #8 |
----------------
|
топорный метод
from inventsum s (nolock), inventdim d (nolock), inventtable (nolock) as t |
|
16.08.2009, 10:54 | #9 |
Участник
|
нашел проблему все окозалос доволно тривиально , inventtrans запрос обробатывалса 5 минут и все висло .
а именно запрос с индексом StatusItemIdx клинил просто клинил . сделал новый индекс и использовал его . И все запахало . |
|