Показать сообщение отдельно
Старый 13.12.2018, 10:46   #16  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,890 / 5647 (194) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от 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 миллисекунд на его компиляцию не так уж заметна