|
Что быстрее должно работать | ☑ | ||||||
---|---|---|---|---|---|---|---|---|
0
Advan
27.05.13
✎
19:07
|
что быстрее и правильнее использовать по периодическому регистру сведений:
ПолучитьПоследнее() или тоже самое запросом к таблице СрезПоследних с такимиже условиями? Интересует именно 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 минут - что уже для разовой операции нормально(документ на пару тысяч строк). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |