|
![]() |
#1 |
Moderator
|
Цитата:
Сообщение от trud
![]() 500 ты перегнул. мы же говорим о однопоточном выполнении. т.е. как был 10 лет назад пентиум 4, 2.5гц, так и сейчас ненамного ушли от этой частоты. т.е. в среднем сейчас процессор только в 2 раза быстрее чем был 10 лет назад.
https://www.cpubenchmark.net/singleThread.html Конечно компиляцию плана запроса не распараллелишь, но все равно реально сервер этим делом мне всерьез загрузить не удавалось А по поводу findSum() - попробуй проверить. Просто мне на моей практике неоднократно приходилось ставить в разные места forceliterals и ни разу это к ухудшению производительности не приводило (хотя таки да - такие популярные места, как этот метод, я не правил). Последний раз редактировалось fed; 06.12.2018 в 16:57. |
|
![]() |
#2 |
Участник
|
Цитата:
![]() подробно в статье https://denistrunin.netlify.com/forc...ePlaceholders/ |
|
|
За это сообщение автора поблагодарили: fed (10), belugin (15), sukhanchik (8), Logger (8), gl00mie (5), axotnik88 (1). |
![]() |
#3 |
Moderator
|
Цитата:
Сообщение от trud
![]() В общем проверил на новых версиях SQL и одном из топовых текущих процессоров - компиляция запроса это по прежнему "очень тяжело". В inventSum с inventDim forceliterals лучше не вставлять
![]() Вложение 12162 подробно в статье https://denistrunin.netlify.com/forc...ePlaceholders/ Просто если тебе удалось одно ядро до 100% забить - я ничуть не удивлюсь. Но вот в ситуации с 32 процессорами, компиляция плана запроса раскидывается на несколько ядер и таких катастрофических результатов не дает. Ну и да - если запрос относительно легкий, то особых проблем и без перекомпиляции не будет. Но вот у меня был один клиент, у которого было порядка 10-15 видов готовой продукции и по каждому виду продукции порядка десятков или сотен тысяч батчей. Кроме того было порядка нескольких сотен (может тысячи полторы) вспомогательной номенклатуры, по которой батчей не было и движений было не так уж много. Соответственно запрос при проверке списания ГП по складу суммировал несколько десятков/сотен тысяч записей в inventSum, а аналогичный запрос по вспомогательной номенклатуре - всего несколько записей. В первом случае - время запроса составляло 2-5 секунд, во втором - наверное 20-30 миллисекунд. И я не уверен что вот в такой конфигурации, выигрыш forceplaceholders был бы таким уж чрезвычайным. Если у тебя запрос исполняется 5 секунд, трата даже 200-300 миллисекунд на его компиляцию не так уж заметна |
|
![]() |
#4 |
Участник
|
Цитата:
Цитата:
Сообщение от fed
![]() В первом случае - время запроса составляло 2-5 секунд, во втором - наверное 20-30 миллисекунд. И я не уверен что вот в такой конфигурации, выигрыш forceplaceholders был бы таким уж чрезвычайным. Если у тебя запрос исполняется 5 секунд, трата даже 200-300 миллисекунд на его компиляцию не так уж заметна
В общем надо проверять ![]() ![]() |
|
![]() |
#5 |
Moderator
|
Цитата:
Вообще идеальным вариантом было бы, если бы Ax мог бы передавать какой-то тэг для SQL, а внутри SQL можно было бы этот тэг матчить с plan guide. Надо будет посмотреть что они в SQL Server 2017 с plan guide и query store сделали. Тогда в зависимости от типа номенклатуры в моем примере, можно было бы разные тэги передавать и в query store как-то их матчить планам запроса. Последний раз редактировалось fed; 13.12.2018 в 13:53. |
|
![]() |
#6 |
Участник
|
Цитата:
А пока мы можем включать литералы только для dataAreaId и Partition Дискриминация получается. Последний раз редактировалось Logger; 13.12.2018 в 14:53. |
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от fed
![]() Вообще идеальным вариантом было бы, если бы Ax мог бы передавать какой-то тэг для SQL, а внутри SQL можно было бы этот тэг матчить с plan guide. Надо будет посмотреть что они в SQL Server 2017 с plan guide и query store сделали. Тогда в зависимости от типа номенклатуры в моем примере, можно было бы разные тэги передавать и в query store как-то их матчить планам запроса.
https://www.brentozar.com/archive/20...memory-grants/ |
|
|
За это сообщение автора поблагодарили: fed (2). |
Теги |
index hint, производительность |
|
![]() |
||||
Тема | Ответов | |||
Где искать European Union Consumer Price Index? | 3 |
|