|
Сортировка ТЧ влияет на скорость | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
26.11.17
✎
12:59
|
СтрокиСКодом = Объект.Пациенты.НайтиСтроки(Новый Структура("КодПациента",КодПациента));
при этом "программная" сортировка без записи не помогает, Документ.РеестрЛицПодлежащихДиспансеризации.Форма.ФормаДокумента.Форма 903 СтрокиСКодом = Объект.Пациенты.НайтиСтроки(Новый Структура("КодПациента",КодПациента)); 20 13,011470 99,75 а вот после интерактивной сортировки и записи документа: Документ.РеестрЛицПодлежащихДиспансеризации.Форма.ФормаДокумента.Форма 903 СтрокиСКодом = Объект.Пациенты.НайтиСтроки(Новый Структура("КодПациента",КодПациента)); 3 137 1,854233 75,76 почему так? |
|||
1
RomaH
naïve
26.11.17
✎
13:08
|
сортировка не влияет
перед выполнения кода надо записать документ - тогда быстро если просто открыть и выполнить код - медленно открыть - записать и выполнить - быстро |
|||
2
H A D G E H O G s
26.11.17
✎
13:11
|
(1) Ну может при записи строки документа доползают до клиента.
|
|||
3
RomaH
naïve
26.11.17
✎
13:15
|
(2) ну может
хотя ТЧ выведена на форму, КодПациента - показывает просто реально попадалово получается на тесте отрабатывает за 2 секунды а на рабочей можно попасть на зависон в пару часов |
|||
4
Zhuravlik
26.11.17
✎
14:21
|
А если в индекс "КодПациента" добавить?
|
|||
5
RomaH
naïve
26.11.17
✎
14:46
|
(4) пробовал - не помогает
|
|||
6
Мимохожий Однако
26.11.17
✎
14:50
|
Замеры делал? На какой процедуре зависон.
|
|||
7
Zhuravlik
26.11.17
✎
14:56
|
(0) А сколько строк в документе? Висяки везде, или только на одном каком-то?
|
|||
8
NorthWind
26.11.17
✎
15:02
|
(0) Индексация таблицы немного помогает. На 30 000 строках при многократом выполнении НайтиСтроки некоторый выигрыш во времени замечал в случае, если ТЗ была индексирована по поисковой колонке. Насчет сортировки не знаю.
|
|||
9
Сияющий Асинхраль
26.11.17
✎
15:04
|
Если уж автор экспериментирует, то интересно, что будет, если заменить НайтиСтроки запросом, и какова будет скорость, если работу с табличной частью заменить работой с таблицей значений, выгрузив ее предварительно...
|
|||
10
NorthWind
26.11.17
✎
15:06
|
(9) Если запрос через построитель запросов, то точно дрянь будет. Проверял. НайтиСтроки гораздо лучше. Вот здесь мои эксперименты по данной тематике: http://catalog.mista.ru/public/617455/
|
|||
11
NorthWind
26.11.17
✎
15:12
|
Хотя тут речь про ТЧ, а не про ТЗ... тогда извиняюсь, там может быть все по-другому
|
|||
12
Сияющий Асинхраль
26.11.17
✎
15:19
|
(11) Я до сих пор считал, что ТЗ, передаваемая в запрос сначала сбрасывается на винт, что, по идее, само по себе затратная операция. Если же работа с табличной частью, то тут уже все на винте... Хотя может я не прав, но тоже раньше как-то экспериментировал, у меня получалось, что с записанными на винт данными запросы оперировали быстрее типовых функций типа найти строки и т.д.
|
|||
13
Сияющий в темноте
26.11.17
✎
15:37
|
скуль сбросит в память или на винт таблицу,но с ней ему гамного быстрее работать
|
|||
14
NorthWind
26.11.17
✎
15:38
|
(12) возможно, в моем случае дело было как раз в этом. Я там как раз разбирал 1Совский код, где, как выяснилось, из ТЗ посторителем запроса в цикле выдергивались строки. Код работал непотребно долго.
|
|||
15
RomaH
naïve
26.11.17
✎
23:32
|
вы хоть почитайте для начала нулевой пост, потом остальные
замеры все есть проблема не в том что "долго" а в том, что "долго" в определенной ситуации есть "нормальный" сценарий: создаю документ - из файла гружу строки в ТЧ, потом отдельной командой эти строки обрабатываю -по этому сценарию все быстро (отдаю в работу) что делает пользователь: создает документ, грузит в него строки из файла, записывает и закрывает документ - открывает и запускает команду на обработку строк - и получает зависон на 1500 сек звонит мне - и получает рекомендацию - перед исполнением команды "записать" документ завтра посмотрю - возможно это баг новой платформы 8.3.10 |
|||
16
RomaH
naïve
26.11.17
✎
23:35
|
(14) 3 137 1,854233
3137 запросов за 1,85 сек - куда быстрее? но зато стабильнее но вместо одной строки кода - 50 |
|||
17
Tateossian
27.11.17
✎
01:44
|
(16) А зачем там сортировка по коду?
И вот этот твой "НайтиСтроки"? "что делает пользователь: " --> Программист должен писать такие программы, чтобы учесть все действия пользователя. Если пользователь так делает, значит ваша программа допускает такое поведение. |
|||
18
RomaH
naïve
27.11.17
✎
08:03
|
(17) т.е. ты в курсе того, что без "записать" НайтиСтроки будет работать в 1000 раз дольше?
|
|||
19
RomaH
naïve
27.11.17
✎
08:12
|
на 8.3.9 аналогичное поведение
|
|||
20
RomaH
naïve
27.11.17
✎
08:12
|
а нет - путаю версии -
рабочая 8.3.10 тестовая 8.3.11 поведение на обоих одинаковое |
|||
21
Мимохожий Однако
27.11.17
✎
08:17
|
(20) Еще раз... Какая именно процедура даёт зависон? Альтернативу для неё искал? Есть в базе регламентные операции, которые обрабатывают документ после записи?
|
|||
22
RomaH
naïve
27.11.17
✎
08:20
|
(21) еще раз - прочитай ветку для начала
еще раз - проблема не в методе, а в том, что метод дает разные результаты в разных ситуациях - скорость меняется в 1000 раз хотя ситуации вроде бы не должны влиять |
|||
23
FIXXXL
27.11.17
✎
08:22
|
(18) где выполняется НайтиСтроки() ?
|
|||
24
Мимохожий Однако
27.11.17
✎
08:23
|
(22) не увиливай. Ответь еще раз.
|
|||
25
RomaH
naïve
27.11.17
✎
08:26
|
(23) клиент
|
|||
26
FIXXXL
27.11.17
✎
08:27
|
(25) этот метод неявно вызывает сервер
соответственно клиентский кэш, поезду туда-сюда и проч. клиент-серверные радости :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |