2009-04-06 3 views
1

У меня есть длинная хранимая процедура, которая выполняет много запросов и создает отчет. После сводного отчета он вызывает много других процессов для получения данных. Мне интересно, если его можно выполнить одновременно SQL партий из с прока в сервере Sql ...параллельные запросы в T-SQL

большое спасибо

ответ

1

Нет, SQL Server не делает параллелизма в том смысле, который, я думаю, вы имеете в виду.

Как долго код используется? Это проблема?

Редактировать, исходя из комментария.

11-20 секунд для большого итогового отчета совсем неплохо.

Если вы отправляете вызовы параллельно с клиентом, это может занять то же самое или дольше: если каждый запрос достаточно интенсивный и ресурс тяжелый, то вы можете максимизировать сервер, объединив их и применив другие процессы. + тогда вам нужно собрать данные в окончательной форме на клиенте.

+0

код работает в любом месте от 11 до 20 секунд, хотя это звучит так, как будто я должен был бы предоставить решение, управляемое клиентами –

0

Я думаю, что вы должны сделать параллелизм в коде (многопоточные вызовы SQL) и конкатенации результат в конце.

1

Лучше всего сообщить об этом в другой базе данных. Либо на основе преобразований из вашей производственной базы данных в базу данных OLAP (которая заставит задержку по времени уйти), либо, по крайней мере, периодический (скажем, почти) статический снимок (который заставит задержку не иметь значения - вы можете отключить блокировку, ничего не будет меняться).

Боковое преимущество: Читатели с отчетами будут намного счастливее, если отчеты будут проходить через пять минут, что даст одинаковые ответы. Или 12 часов друг от друга.

Вы по достоинству оцените, что жизнь будет проще.

Смежные вопросы