#sql #sql-server #reporting-services #ssrs-2008
#sql #sql-сервер #службы отчетов #ssrs-2008
Вопрос:
Я использую этот код для репликации подписок, управляемых данными, в MSSQL 2008.
Как часть системы массового обслуживания он использует
WAITFOR DELAY '00:00:30';
Я планирую использовать это для более чем 200 отчетов.
Должен ли я запланировать их запуск в разное время или все это будет успешно выполняться в очереди отчетов и каково снижение производительности?
Спасибо
Ответ №1:
Во-первых, по сути, нет сбоя в работе (для других запросов, использующих) waitfor — это то, для чего он, помимо прочего, предназначен, т.Е. освобождает процессор для выполнения других задач. Вопрос в том, что еще запланировано на то время — резервное копирование и т.д.? Я был бы склонен проверить время, затраченное на каждый отчет, и записать в таблицу (для вашего 201-го отчета). Это действительно зависит от того, насколько интенсивны ваши отчеты — и тот факт, что вы планируете их на некоторое время, предполагает, что ваши ресурсы не безграничны. Я был бы склонен планировать отчеты на разное время — даже если с интервалом всего в 5 секунд — особенно если предшествующий отчет занимает от 1 до 4 секунд. Тогда пакет sql будет немного сложнее, но работать более плавно. Также запрос, который сообщает вам, когда отчеты перекрываются, может помочь вашему планированию. Если у вас отключен parallelismn и у вас 4 процессора, вы можете запускать 4 отчета одновременно, но также проверяйте свою очередь на диске.
Комментарии:
1. Этот сервер не делает ничего другого, кроме запуска отчетов, и эти конкретные отчеты будут запланированы на ранние часы. Запуск большинства отчетов занимает около 2 секунд, а для нескольких отчетов требуется максимум 25 секунд.