Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Собственно, сабж. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. При выполнении вышеприведенного SQL-скрипта с OLE процедурами, запускается новый экземпляр программы sqlcmd и после выполнения он остается запущенным. При добавлении EXIT после завершения закрывается программа. Но столкнулся с тем, что таких экземпляров можно открыть 111 штук (ну во всяком случае у меня на сервере). То есть если даже обернуть в EXIT(), но долго идет выполнение ХП, то таких параллельных сеансов можно вызвать всего лишь 111 штук. 112 сеанс просто не запускает программу sqlcmd. Что это за ограничение такое? И как его преодолеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 16:56 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Мсье, определенно, знает толк в извращениях. Вы вот этим все безобращием что пытаетесь сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:03 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичМсье, определенно, знает толк в извращениях. Вы вот этим все безобращием что пытаетесь сделать? Ассинхронную работу процедуры. Есть таблица с разными значениями в каждой строке, и мне нужно обработать всю таблицу, то есть взять значение и запустить процедуру с этим значением. Допустим, сложная процедура выводит отчет по определенным параметрам. В течении дня от пользователей собираются в таблицу эти параметры. В течении ночи таблица обрабатывается. Однако процедура сложная. и может занять некоторое время на обработку. По этому потребовалась ассинхронный запуск (параллельная работа) одной и тоже процедуры, но с разными параметрами. Соответственно, если вычисления идут параллельно и асинхронно, процесс занимает гораздо меньше времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:15 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Что мешает сделать ХП, которая в цикле переберет нужные ИД и запустит с ними сабжевую ХП ? Пусть даже с ДинамикСКЛ, но без идиотской командной строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:36 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
L_argoЧто мешает сделать ХП, которая в цикле переберет нужные ИД и запустит с ними сабжевую ХП ? Пусть даже с ДинамикСКЛ, но без идиотской командной строки. асинхронно? Не знаю что там нового, но асинхронность на уровне sql делали 1. 2..N джобов на потоки 2. server broker 3. создание/прибивание/запуск джобов из управляющей хп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:40 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Ёжик25, Читайте справку по sqlcmd о разнице между -q и -Q ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:47 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
TaPaKL_argoЧто мешает сделать ХП, которая в цикле переберет нужные ИД и запустит с ними сабжевую ХП ? Пусть даже с ДинамикСКЛ, но без идиотской командной строки. асинхронно? Не знаю что там нового, но асинхронность на уровне sql делали 1. 2..N джобов на потоки 2. server broker 3. создание/прибивание/запуск джобов из управляющей хп У меня динамическое количество таких записей. По моему, для каждой итеррации создавать, выполнять и затем убивать "временный" джоб - еще большее извращение)). А service broker, я так понимаю - это решение. Но оно усложнит и без того сложную логику работы базы и ее поддержки. Скажем так, если работу на уровне sqlcmd администратор знает (не DBA), и может потом что то сделать, как то разобраться и покилять зависшие процессы (ну или еще чего), то с service broker'ом он точно не справится. По этому пытаюсь решить пока без SB. И вот столкнулся с таким ограничением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 17:56 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Ёжик25, Существует такая вещь, как "прикладное программное обеспечение". То, что вы делаете - полное извращение, как справедливо заметили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:02 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
invmЁжик25, Читайте справку по sqlcmd о разнице между -q и -Q -Q = EXIT() Я выше писал, что мне не подходит такой метод (точнее подходит, конечно же, но без ограничений в количестве запускаемых экземпляров программы), так как я не знаю, как долго будет выполняться нужная процедура. Если поставить в test_proc строку Код: sql 1. то за 2 минуты вставилось как раз 222 записи. То есть запустилось 111 экземпляров sqlcmd, они подождали 59 секунд и выполнились. За эту минуту цикл while продолжает работать, но запуск новых экземпляров sqlcmd не происходит. После освобождения "пула" запущенных экземпляров while продолжился и опять запустил 111 экземпляров программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:06 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовЁжик25, Существует такая вещь, как "прикладное программное обеспечение". То, что вы делаете - полное извращение, как справедливо заметили. То есть что бы как то обойти это ограничение, нужно будет морочится с дополнительными сервисами, службами и прочими прикладными ПО? Задача просто запускать одну и ту же процедуру в разных сессиях автоматически, для ее параллельной работы. Больше ничего не требуется. Устанавливать сервисы, ПО и прочее, и прикручивать к скулю - такое же извращение, имхо. Зачем? Если средствами скуля все прекрасно работает, и полностью удовлетворяет поставленную задачу, но сейчас только для 111 итерраций почему то. Где откопать это ограничение на количество одновременно работающих экземпляров sqlcmd? Я так и не пойму, чье это ограничение, винды или скуля. ps кстати для osql таких одновременно работающих экземпляров может быть 114. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:14 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Что делают ежики, когда делать нечего? ЗЫ. PowerShell способен запустить "до хрена" витков. Ну... и выполнить в каждом вызов процедуры. ЗЗЫ. Хотя, если бы ежики всей страны бросили свои силы на банальную оптимизацию процедуры - да никому эти витки не нужны бы были. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:23 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Делайте очередь и разгребайте ее джобами. Все в пределах стандартных сервисов. Вариантов -- вагон, маленькая тележка и вдеро . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:24 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичДелайте очередь и разгребайте ее джобами. Все в пределах стандартных сервисов. Вариантов -- вагон, маленькая тележка и вдеро . Не. 100 джобов - это фиаско, братан. А 500 асинхронных соединений с сервером в .ps1 - это лехко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:31 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
aleks222Не. 100 джобов - это фиаско, братан.Аргументировано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:37 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичДелайте очередь и разгребайте ее джобами. Все в пределах стандартных сервисов. Вариантов -- вагон, маленькая тележка и вдеро . простите, а sqlcmd разве не стандартный сервис? Вот как раз по этой ссылке и нашел самое простое решение - OLE автоматизация и запуск sqlcmd. Сторонние сбоки ставить не позволяют требования безопасности. Стороннее ПО так же не подойдет по этим же причинам. Джобы тоже не подходят (не плодить же для каждой строки "временный" джоб). Service Broker тяжело поддерживать (к примеру) непосвященному человеку (в данному случае обычному сисадмину). Он не будет в дальнейшем разбираться в этой технологии. А вот метод, который я выбрал для него будет понятен и очевиден на мой взгляд. Ошибка винды при попытке запуска 112-го экземпляра sqlcmd: Faulting application name: SQLCMD.EXE, version: 2014.120.5000.0, time stamp: 0x5764ad7d Faulting module name: KERNELBASE.dll, version: 6.3.9600.18821, time stamp: 0x59ba86db Exception code: 0xc0000142 Fault offset: 0x00000000000ece70 Faulting process id: 0x7f90 Faulting application start time: 0x01d51baf58809552 Faulting application path: C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\SQLCMD.EXE Faulting module path: KERNELBASE.dll Report Id: 963175b3-87a2-11e9-80cc-0050568030e2 Faulting package full name: Faulting package-relative application ID: хм, значит ограничения dll библиотеки что ли некое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:39 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
aleks222Гавриленко Сергей АлексеевичДелайте очередь и разгребайте ее джобами. Все в пределах стандартных сервисов. Вариантов -- вагон, маленькая тележка и вдеро . Не. 100 джобов - это фиаско, братан. А 500 асинхронных соединений с сервером в .ps1 - это лехко. Простите за назойливость). Плохо очень с PS знаком, может быть есть ссылка на примерные решения? А то боюсь, что долго очень ковыряться буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:44 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Ёжик25aleks222пропущено... Не. 100 джобов - это фиаско, братан. А 500 асинхронных соединений с сервером в .ps1 - это лехко. Простите за назойливость). Плохо очень с PS знаком, может быть есть ссылка на примерные решения? А то боюсь, что долго очень ковыряться буду. 1. Цикл там называется for 2. создание подключение - сам освоишь. 3. ну и каждое подключение имеет метод асинхронного вызова процедуры. Можно также на C# или VBA/VBS. PS. Извини, я не ежик и ерундой не занимаюсь. Любая процедура, которая требует запуска более 2-х экземпляров из соображений "так быстрее" - подлежит уничтожению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 18:51 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
aleks222Ёжик25пропущено... Простите за назойливость). Плохо очень с PS знаком, может быть есть ссылка на примерные решения? А то боюсь, что долго очень ковыряться буду. 1. Цикл там называется for 2. создание подключение - сам освоишь. 3. ну и каждое подключение имеет метод асинхронного вызова процедуры. Можно также на C# или VBA/VBS. PS. Извини, я не ежик и ерундой не занимаюсь. Любая процедура, которая требует запуска более 2-х экземпляров из соображений "так быстрее" - подлежит уничтожению. А я вот занимаюсь, представь себе. Мне еще за это и деньги платят. Удивительно наверно, да?)) Ну не будем спорить, кто тут из нас ерундой занимается. В целом попробую на PS все это замутить. Благодарствую. На вопрос никто так и не ответил про ограничения. Так что тему пока не закрываю. Просто уже интересно стало, что это за ограничение такое в запуске ограниченного количества экземпляров slqcmd. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 19:06 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Еще раз, 500 экземпляров, исполняющейся параллельно, процедуры бесполезны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 19:15 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
aleks222Еще раз, 500 экземпляров, исполняющейся параллельно, процедуры бесполезны. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 19:18 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
Ёжик25Почему?Опишите, что делает эта процедура и вам объяснят почему. Или сочтут ваш подход приемлимым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 20:05 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
aleks222Еще раз, 500 экземпляров, исполняющейся параллельно, процедуры бесполезны. может у него стресс-тестирование, там и миллион запросов без проблем послать, да с разных машин под разными пользователями Ёжик25 вот PS образец запускающий множество $z параллельных job-ов (минус время на запуск и выделение ресурсов) просто генерирующий случайное int число с максимумом $mx , можно под соединения/sql скрипты переделать и пускать на каждый job свой сервер/connection string/пользователя и т.д. из какого-то массива (который тоже может прилететь из SQL) Код: powershell 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:04 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
а так-то да, всё по делу советуют - не для этого sql система, все приблуды не будут полноценными т.к. предназначены только как вспомогательные средства и платформа изначально заточена под несколько другие цели, так что нечего горевать что упирается в ограничения да не работает как мечталось и как выше намекнули .. на кактус .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:10 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
А я вот занимаюсь, представь себе. Мне еще за это и деньги платят. Удивительно наверно, да?))Не удивительно. В ИТ половина случайных людей. Даже с высокими зарплатами. Так везде, а не только в ИТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 08:45 |
|
||
|
Ограничение в запуске экземпляров sqlcmd через OLE автоматизацию
|
|||
|---|---|---|---|
|
#18+
vikkivaleks222Еще раз, 500 экземпляров, исполняющейся параллельно, процедуры бесполезны. может у него стресс-тестирование, там и миллион запросов без проблем послать, да с разных машин под разными пользователями Ёжик25 вот PS образец запускающий множество $z параллельных job-ов (минус время на запуск и выделение ресурсов) просто генерирующий случайное int число с максимумом $mx , можно под соединения/sql скрипты переделать и пускать на каждый job свой сервер/connection string/пользователя и т.д. из какого-то массива (который тоже может прилететь из SQL) Код: powershell 1. 2. 3. 4. 5. Премного благодарен. Но вопрос все равно остается открытый. Что за ограничение такое в запуске n-ого количества экземпляров sqlcmd? Это неизлечимо, или можно что нибудь придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 12:02 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39823034&tid=1687724]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 421ms |

| 0 / 0 |
