Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Запускаю из Query Analiser большой скрипт с несколькими курсорами.Через некоторое время все процессы засыпают (sleeping) и еще через некоторое время Query Analiser выдает: unknown token received from server. Выполнение прекращается. Просветите если могете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 08:30 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
А в Properties QA стоит галочка на Implicit transactions? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 09:39 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
И хорошо, что не стоит. Тогда осталось вылавливать взаимные блокировки и всякие прочие ошибки с помощью отладчика, Profiler и Current Activity EM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 10:40 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Нет никаких ошибок,блокировок и пр, база в однопользовательском режиме. Процесс просто засыпает намертво, причем не каждый запуск-один запуск проходит, а следующий засыпает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 11:15 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Покажите код скрипта в том месте где засыпает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 11:18 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
declare curs cursor for select pWaybillID from TradeOpt.dbo.pWaybills open curs fetch curs into @pRet while @@fetch_status=0 begin insert pWaybills () select ... from TradeOpt.dbo.pWaybills where pWaybillID=@pRet if @@error<>0 select 3 as Ex_er select 3 as M update pReturnDopt set pWaybillID=@@identity where pWaybillID=@pRet if @@error<>0 select 4 as Ex_er select 4 as M update pWaybillDopt set pWaybillID=@@identity where pWaybillID=@pRet if @@error<>0 select 5 as Ex_er select 5 as M fetch curs into @pRet end close curs deallocate curs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 12:18 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Я не до конца понимаю что нужно сделать. Перетащить данные из другой базы и переномеровать айдишки? Опишите словами, что делает эта часть скрипта. По моему это все как минимум можно сделать через временные таблицы, база то наверное большая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 12:51 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Попробуйте вот так: declare @Id int, @String varchar(200) select @Id = max(pWaybillID) from pWaybills set @string = 'Create table #pWaybills(NewID identity(' + @Id + ', 1), OldId int)' exec(@string) insert into #pWaybills(OlId) select pWaybillID from TradeOpt.dbo.pWaybills insert pWaybills () select tmp.NewID, ... from TradeOpt.dbo.pWaybills p inner join #pWaybills tmp on p pWaybillID = tmp.OldId update p set p.pWaybillID=temp.NewID from pReturnDopt p inner join #pWaybills tmp on p pWaybillID = tmp.OldId update p set p.pWaybillID=temp.NewID from pWaybillDopt p inner join #pWaybills tmp on p pWaybillID = tmp.OldId drop table #pWaybills Не понял правда ситуации с обработкой ошибок. Курсор, ксати дофига памяти жрет, если данных очень много, а сервер не навороченный, запросто его забить может. Если где в синтаксисе ошибся, думаю разберетесь. Идея я полагаю понятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 13:15 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Перед insert pWaybills () select tmp.NewID, ... from TradeOpt.dbo.pWaybills p inner join #pWaybills tmp on p pWaybillID = tmp.OldId SET IDENTITY_INSERT ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 13:26 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
2 Gennady Все совсем не так.IDENTITY_INSERT не нужен.Я заливаю данные в рабочую таблицу с уже имеющимися данными по одной записи, а потом апдейчу айдишники в дочерних таблицах новым айдишником (@@identity). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 13:44 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
2 DmtP Посмотрите внимательнее на код, новые айдишки вам выдаст временная таблица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 13:46 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Немаловажный вопрос, во время этой операции с таблицей работает кто-нибудь еще? Если да, тогда прийдется извращаться со счетчиком, либо придумывать другой вариант, кстати проверьте сколько ресурсов забирает курсор. Ну и не плохо было бы сказать какой объем данных таким образом заливается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 13:49 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Я же уже писал, что база в однопользовательском режиме, объем:pWaybills - 7000,pWaybillDopt - 80000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 13:55 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
>объем:pWaybills - 7000,pWaybillDopt - 80000 Да? А где? Может мне пора к окулисту Ну пропустил про однопользовательский режи, давайте меня теперь запинаем А мой вариант советую попробовать, даже если причина засыпания не в курсоре, он все равно быстрее работать должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 14:02 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Насколько я понял, имеет место просто синтаксическая ошибка. > set pWaybillID=@@identity where pWaybillID=@pRet такой конструкции в MSSQL не предусмотрено. set можно делать только для переменных и уж конечно никаких where там быть не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 08:08 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
Сорри, update проглядел в спешке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 08:15 |
|
||
|
Sleeping
|
|||
|---|---|---|---|
|
#18+
2 Глеб Уфимцев Нет, Вы неправильно поняли , потому что это не все выражение, вот все выражение: update pWaybillDopt set pWaybillID=@@identity where pWaybillID=@pRet Я тоже поначалу купился , а если бы была синтаксическая ошибка, то QA тут же сообщил бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2001, 08:16 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32006726&tid=1826612]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 292ms |

| 0 / 0 |
