|
![]() |
#1 |
Участник
|
Цитата:
Вроде нет - Код: Balance Ending - OnDrillDown() DrillDownGLEntry(3); Код: DrillDownGLEntry(Show : 'StartBalance,Debit,Credit,EndBalance,NetChange') GLEntry.RESET; GLEntry.SETCURRENTKEY("Source Type","Source No.","G/L Account No.","Global Dimension 1 Code","Global Dimension 2 Code"); GLEntry.SETRANGE("Source Type",GLEntry."Source Type"::Customer); GLEntry.SETRANGE("Source No.","No."); GLEntry.SETFILTER("G/L Account No.",GETFILTER("G/L Account Filter")); GLEntry.SETFILTER("Global Dimension 1 Code",GETFILTER("Global Dimension 1 Filter")); GLEntry.SETFILTER("Global Dimension 2 Code",GETFILTER("Global Dimension 2 Filter")); GLEntry.SETFILTER("Posting Date",GETFILTER("Date Filter")); CASE Show OF Show::StartBalance: IF COPYSTR(GETFILTER("Date Filter"),1,2) <> '..' THEN BEGIN IF GETRANGEMIN("Date Filter") <> 0D THEN GLEntry.SETRANGE("Posting Date",0D,GETRANGEMIN("Date Filter") - 1); END ELSE EXIT; Show::Debit: GLEntry.SETFILTER("Debit Amount",'<>%1',0); Show::Credit: GLEntry.SETFILTER("Credit Amount",'<>%1',0); Show::EndBalance: IF GETRANGEMAX("Date Filter") <> 0D THEN // *** MBS ERROR >> // GLEntry.SETRANGE("Posting Date",0D,GETRANGEMAX("Date Filter") - 1) GLEntry.SETRANGE("Posting Date",0D,GETRANGEMAX("Date Filter")) // *** MBS ERROR << ELSE EXIT; Show::NetChange: GLEntry.SETFILTER(Amount,'<>%1',0); ELSE ERROR(''); END; FORM.RUN(0,GLEntry); |
|
![]() |
#2 |
Участник
|
Может включить Posting Date в используемый ключ?
|
|
![]() |
#3 |
Участник
|
На самом деле, в этом ключе есть поле Posting Date. Видимо, когда объявляли функцию сортировки, последняя часть ключа не влезла в одну строчку кода. Но ключ же будет правильно инициализирован?
Сам ключ - Source Type,Source No.,G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Business Unit Code,Posting Date |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от Ros
![]() На самом деле, в этом ключе есть поле Posting Date. Видимо, когда объявляли функцию сортировки, последняя часть ключа не влезла в одну строчку кода. Но ключ же будет правильно инициализирован?
Сам ключ - Source Type,Source No.,G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Business Unit Code,Posting Date P.S. То что не влезло в одну строчку кода - не резон, так как всегда можно перейти на вторую. |
|
![]() |
#5 |
Участник
|
Цитата:
![]() Обратите внимание - проблемы появились после коррекции себестоимости. Мои предположения - на основе статистики накопленной ДО коррекции себестоимости сервер выбирает неоптимальный индекс или сваливается в full scan таблицы. Проверить просто - забэкапить - развернуть - сравнить |
|
![]() |
#6 |
Участник
|
а вот тут возникла ошибка форума....
|
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от rmv
![]() Ну на самом деле SQL серверу все равно какой ключ прописан в коде, поля ключа подставляются в Order By запроса, а вот какой индекс выберит SQL сервер - зависит от статистики на наверно чуть от random'a
![]() Обратите внимание - проблемы появились после коррекции себестоимости. Мои предположения - на основе статистики накопленной ДО коррекции себестоимости сервер выбирает неоптимальный индекс или сваливается в full scan таблицы. Проверить просто - забэкапить - развернуть - сравнить Короче: Попадает ли в данном случае поле Postind Date в Order By? Если не попадает то при SETRANGE по этому полю, по идее, SQL будет тормозить? |
|
![]() |
#8 |
Участник
|
Цитата:
![]() |
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от rmv
![]() Ну на самом деле SQL серверу все равно какой ключ прописан в коде, поля ключа подставляются в Order By запроса, а вот какой индекс выберит SQL сервер - зависит от статистики на наверно чуть от random'a
![]() Обратите внимание - проблемы появились после коррекции себестоимости. Мои предположения - на основе статистики накопленной ДО коррекции себестоимости сервер выбирает неоптимальный индекс или сваливается в full scan таблицы. Проверить просто - забэкапить - развернуть - сравнить |
|