Имя: Пароль:
1C
1С v8
Что быстрее должно работать
,
0 Advan
 
27.05.13
19:07
1. ПолучитьПоследнее() 50% (1)
2. Запрос 50% (1)
Всего мнений: 2

что быстрее и правильнее использовать по периодическому регистру сведений:
ПолучитьПоследнее()  или тоже самое запросом к таблице СрезПоследних с такимиже условиями?
Интересует именно MSSQL вариант.
А то у меня запросом получаеться в разы быстрее - вот и думаю что с базой или так и должно быть.
1 Fragster
 
гуру
27.05.13
19:09
вот посмотрел бы профайлером, какой запрос при ПолучитьПоследнее к скулю уходит, нам бы рассказал - было бы интересно.
2 SherifSP
 
27.05.13
19:12
Как то приходилось проверять, скорость на порядок выше.

ПолучитьПоследнее()
3 Advan
 
27.05.13
19:12
Пока посмотреть не могу - нет отсюда доступа к серверу. потом конечно посмотрю - просто ситуация напрягла - разница значительна.
4 Advan
 
27.05.13
19:14
(2)Вот у меня также думал - но почемуто на этой базе наоборот - скорость на порядок выше у запроса
5 Hmster
 
27.05.13
19:52
все зависит от того где конструкцию применять, в зависимости от применения результат будет разный
давно замерял получение цены.
Если скопом получать то запрос быстрее. Если построчно то быстрее ПолучитьПоследнее()
6 Advan
 
27.05.13
20:01
(5)Конкретный пример - обработка(не моя) перебирает строки документа и расчитывает цен(ну там не только это) дак вот ПолучитьПоследнее() 90% времени, запрос 4% времени обработки.
был немного в шоке от результата.
Да регистр сведений конечно заполнен - но разница огромна.
7 GANR
 
27.05.13
20:04
(0)(2) А профайлер и план запроса в MS SQL что показывает?
8 Advan
 
27.05.13
20:05
(7)Пока ничего - не имею отсюда доступ к серверу.
9 MadHead
 
27.05.13
20:14
Если запрос и будет медленнее, то только из за неудачного плана запроса. Если склепать срез последних вручную через временную таблицу, что уже быстрее просто быть не может
10 MadHead
 
27.05.13
20:14
собственно

Запрос
11 Hmster
 
27.05.13
20:15
может там в обработке что-то криво написано?
запрос тоже построчно идет?
А вообще можешь сделай функцию получения цены.
Перепиши обработку на использование этой функции
далее меняя код функции ПолучитьПоследнее - запрос посомтри на замер
12 viktor_vv
 
27.05.13
20:51
(6) А запрос тоже по каждой строке выполняется или скопом по всей номенклатуре ?
13 Advan
 
28.05.13
12:04
(11)Там и так вызываеться отдельная общая функция с получепнием цены в цикле.
(12)По обработке именно так и получаеться - заполняеться табличая часть и в цикле общитываеться, в том числе и получает цену - у меня она долго работает - решил отладчиком посмотреть время - офигел когда на одной строчке 90% времени выполняеться, заменил в общей функции на запрос - залетало. Хотя получаеться всеравно запрос в цикле - но это уже не важно - документ формируеться не час, а 5 минут - что уже для разовой операции нормально(документ на пару тысяч строк).