Нет необходимости в подзапросе:
UPDATE
Customers
SET
FirstName = Mid(FullName, 1, InStr(FullName, " ") - 1),
LastName = Mid(FullName, InStr(FullName, " ") + 1),
FullName = Null
Из-за Вашего требования в течение быстрого времени запуска и частоты вызова, больше, чем 1 Гц, я рекомендовал бы любое пребывание с C и выяснение, как сделать это портативным (не всегда столь же легкий как несколько ifdefs) или исследование возможности превращения его в сервисного демона, который всегда работает. Конечно, это зависит от как
Python может иметь более низкие времена запуска, если Вы компилируете модуль и выполняете .pyc файл, но это все еще обычно считают медленным. Perl, по моему опыту, в самом быстром из языков сценариев, таким образом, Вам могло бы везти с демоном жемчуга.
Вы могли также посмотреть на кросс-платформенные платформы как gtk, wxWidgets и QT. В то время как они предназначены для графический интерфейсов пользователя, у них действительно есть низкий уровень кросс-платформенными типами данных и сетевыми библиотеками, которые могли сделать задание из использования базирующегося приложения быстрого C легче.
Помните, что при выборе Python можно также расширить его в C, если производительность не является большой. Heck, Вы могли, вероятно, даже использовать часть кода, который Вы имеете прямо сейчас. Просто перекомпилируйте его и перенесите его с помощью пирекса.
Можно также сделать это довольно легко в Ruby, и в Perl (хотя еще с некоторой трудностью). Не спрашивайте меня о способах сделать это все же.
У Вас может вместо этого быть он быть продолжительным процессом и ответить на http или запросы rpc?
Это удовлетворило бы требования задержки почти в любом сценарии, но я не знаю, повредило ли это Ваши ограничения объема потребляемой памяти.
Как другие предположили, daemonizing Ваш сценарий могла бы быть хорошая идея; это уменьшило бы время запуска для виртуального обнуления. Или имейте маленькую обертку C, которая соединяется с Вашим демоном и передает запрос назад и вперед, или сделайте, чтобы демон обработал запросы непосредственно.
Не ясно, предназначается ли это для обработки Запросов HTTP; если так, Perl имеет хороший модуль сервера HTTP, привязку к нескольким различным синтаксическим анализаторам XML на базе С и сверкающую быструю строковую поддержку. (Если Вы не хотите к daemonize, он имеет хороший, полнофункциональный модуль CGI; если Вы имеете полный контроль над сервером, он работает, Вы могли бы также использовать mod_perl для реализации сценария как обработчика Apache.) Строки Ruby немного медленнее, но существуют некоторые действительно хорошие инструменты фоновой обработки, доступные для него. Я не так знаком с Python, я боюсь, таким образом, я не могу действительно предоставить рекомендации об этом.
В целом, тем не менее, я не думаю, что Вы как startup-time-constrained, поскольку Вы думаете, что Вы. Если сценарий действительно назовут несколько раз в секунду, то любой достойный интерпретатор в любой достойной операционной системе будет кэшироваться в памяти, как будет исходный код Вашего сценария и его модулей. Результат: времена запуска не будут так плохи, как Вы могли бы думать.
Dagny:~ brent$ time perl -MCGI -e0
real 0m0.610s
user 0m0.036s
sys 0m0.022s
Dagny:~ brent$ time perl -MCGI -e0
real 0m0.026s
user 0m0.020s
sys 0m0.006s
(Параметры к интерпретатору Perl загружают довольно большой модуль CGI и затем выполняют строку кода '0';.)
Я соглашаюсь с другими, в которых необходимо, вероятно, попытаться сделать это более портативным приложением C вместо того, чтобы портировать его на что-то еще, так как любой язык сценариев собирается представить значительные издержки с точки зрения запуска, иметь намного больший объем потребляемой памяти, и вероятно будет намного медленнее.
По моему опыту, Python является самым эффективным из этих трех, сопровождаемых Perl и затем Ruby с различием между Perl и Ruby, являющимся особенно большим в определенных областях. Если бы Вы действительно хотите попытаться портировать это на язык сценариев, я соединил бы прототип на языке, которым Вы являетесь самыми довольными и видите, близко подходит ли он к Вашим требованиям. Если у Вас не будет предпочтения, запустите с Python, поскольку легко изучить и использовать и если это будет слишком медленно с Python, то Perl и Ruby, вероятно, не смогут сделать немного лучше.
Если Низкая память и низко запускается, время действительно важны, Вы могли бы хотеть полагать, что выполнение работы сохраняет код C кросс-платформенным, однако я нашел, что это редко необходимо.
Лично я использовал бы Ruby или Python для этого типа задания, они оба делают очень легким сделать четкий понятный код, который другие могут поддержать (или можно поддержать после не рассмотрения его в течение 6 месяцев). Если бы Вы имеете контроль, чтобы сделать так, я также предложил бы получить последнюю версию интерпретатора, поскольку и Ruby и Python сделали известные улучшения вокруг производительности недавно.
Это - что-то вроде персональной вещи. Программирование Ruby делает меня счастливым, C код не делает (ни сценарии удара ни для чего нетривиального).
При надлежащей записи C должен быть независимой платформой и только нуждался бы в том, чтобы перекомпилировать для тех различных платформ. Вам, возможно, придется перейти через некоторые #ifdef обручи для заголовков (не, все системы используют те же заголовки), но самый нормальный (non-win32 API), вызовы являются очень портативными. Для веб-доступа (который я предполагаю Вами, нуждаются, поскольку Вы упоминаете bash+curl), Вы могли смотреть на libcurl, это доступно для всех платформ, которые Вы упомянули и не должны быть что трудно работать с.
Со временем выполнения и стоимостью памяти в памяти, я сомневаюсь, что Вы могли пойти немного быстрее, чем правильно записанный C с любым языком сценариев, поскольку Вы потеряете по крайней мере некоторое время при интерпретации сценария...
Я соглашаюсь с Lua: это суперпортативно, это имеет библиотеки XML, или собственный компонент или путем привязки библиотек C как Эмигрант, это имеет хорошую библиотеку сокета (LuaSocket) плюс, для сложного материала, некоторой ВИХРЕВОЙ привязки, и известно за то, что было очень легко (часто встраиваемый в низкие запоминающие устройства), очень быстро (один из самых быстрых языков сценариев), и мощно. И очень легкий кодировать!
Это кодируется в чистом Ansi C, и партия людей утверждает, что это имеет один из лучших C выжидание API (звонящий C стандартные программы от Lua, называя код Lua от C...).
"названный где угодно с каждой минуты к много раз в секунду. Как следствие хранение, это - память и время запуска низко, важно".
Это не походит на сценарий мне вообще.
Это походит на сервер, обрабатывающий запросы, которые прибывают с каждой минуты до несколько раз секунды.
Если это - сервер, обрабатывая запросы, время запуска не означает столько же сколько скорость отклика. В этом случае Python мог бы удаться хорошо и все еще продолжить производительность.
Вместо перезапуска, Вы просто обрабатываете другой запрос. Вы добираетесь для хранения такого количества состояния, как необходимо оптимизировать производительность.
Lua является языком сценариев, который соответствует Вашим критериям. Это - конечно, самый быстрый и самый низкий доступный язык сценариев памяти.
Python хорош. Я также проверил бы Игровой веб-сайт Сравнительных тестов языков программирования:
http://shootout.alioth.debian.org/
Могло бы стоить провести немного времени, понимая сравнительные тесты (включая числа в течение времен запуска и использования памяти). Много языков сравнено, такие как Perl, Python, Lua и Ruby. Можно также сравнить эти языки со сравнительными тестами в C.
Портируйте свое приложение на Ruby. Если Ваше приложение является слишком медленным, представьте его и перепишите те части в C.
На первый взгляд это, походит по разработке, как показывает опыт, я предлагаю фиксировать только, когда вещи повреждаются.
У Вас есть уже рабочее приложение. По-видимому, Вы хотите хотеть еще назвать функцию обеспеченной от небольшого количества несколько источников. Это похоже на описание сервиса для меня (возможно, легче поддержать).
Наконец Вы также упомянули, что это - часть большего решения, затем можно хотеть снова использовать язык, средства больших решений. Из описания Вы дали (xml+http), это кажется вполне обычным приложением, которое может быть записано на каком-либо языке универсала (возможно, веб-контейнер в Java?).
Некоторые библиотеки могут помочь Вам сделать свой код портативным: Повышение, QT
больше деталей может инициировать больше идей :)