2016-01-07 7 views
0

можно вызвать хранимые процедуры параллельно, чтобы увеличить скорость выполнения. для, например: У меня есть три хранимые процедуры для извлечения данных из трех основных таблиц и загрузки/вставить его в одном источнике table.Currently я имею три процедуры:Mysql хранимая процедура параллельной обработки

CALL sp_1(); 
CALL sp_2(); 
CALL sp_3(); 

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

+0

Можете ли вы не просто назвать их отдельно? От разных клиентских процессов? –

+0

Спасибо за ответ @JustinMcAleer – kishorre

+0

Но мой вопрос в том, как назвать их разными клиентами @ JustinMcAleer – kishorre

ответ

1

Вопрос: можно вызвать хранимые процедуры параллельно, чтобы увеличить скорость выполнения.

A: Короткий ответ: нет. Нет встроенного механизма (в MySQL), который заставит хранимую процедуру работать «параллельно». Чтобы добиться параллельной обработки, приложение должно быть спроектировано таким образом, используя множественные подключения к MySQL, разделяя обработку на куски, которые могут выполняться параллельно, и координируя эти процессы.

Что касается «увеличения скорости выполнения», вам действительно нужно сначала определить, что вызывает медленность.

Если проблема связана с хранением данных, то параллелизация процесса, скорее всего, не приведет к увеличению скорости выполнения.

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

Также возможно, что в процедуре выполняются операторы SQL, которые написаны так, что MySQL не позволяет эффективно использовать доступные индексы. Или соответствующие индексы могут быть недоступны.

Прежде чем начать путь параллельного процесса, важно понять, каково фактическое узкое место. Выполнение процесса «параллельно» не обязательно увеличивает скорость выполнения.

+0

Большое спасибо за подробное объяснение @ spencer7593 – kishorre

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