Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
Написал небольшой запрос для поиска значения по базе, но столкнулся с тем, что запрос не стартует, как будто ждет разлочки како-то таблицы, как решить проблему?

declare @tn varchar(100);
declare @cn varchar(100);
declare @trg varchar(100);
declare @r int;
declare @cmd varchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE column_cursor CURSOR FOR 
select top 1 [table_name], [column_name] from INFORMATION_SCHEMA.COLUMNS 
where [data_type] = 'char'
and [table_name] like 'DH%' 
;

set @trg = '%';
SET @cmd = 'INSERT INTO TableNameValue (table_name) '
			+ ' SELECT count(*)'
			+ ' from @ptn'
			+ ' where @pcn like @ptrg';
SET @ParmDefinition = N'@ptn varchar(100), @pcn varchar(100), @ptrg varchar(100)';

OPEN column_cursor;

FETCH NEXT FROM column_cursor 
INTO @tn, @cn;

WHILE @@FETCH_STATUS = 0
BEGIN
		truncate table TableNameValue;
		
		SET @cmd = 'INSERT INTO TableNameValue (table_name) '
			+ ' SELECT count(*)'
			+ ' from '+@tn
			+ ' where '+@cn+' like '+@trg;
		EXECUTE sp_executesql @cmd;
		select @r = count(*) from TableNameValue;
		PRINT @r;
    FETCH NEXT FROM column_cursor 
    INTO @tn, @cn;
END
CLOSE column_cursor;
DEALLOCATE column_cursor;

12 окт 11, 11:09    [11425071]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
b099ard
но столкнулся с тем, что запрос не стартует, как будто ждет разлочки како-то таблицы

Откуда вы узнали, что "запрос не стартует" ?
Вы как то мониторили выполнение вашего скрипта ?
12 окт 11, 11:16    [11425152]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
qwerty112
Guest
b099ard
Написал небольшой запрос для поиска значения по базе, но столкнулся с тем, что запрос не стартует, как будто ждет разлочки како-то таблицы, как решить проблему?
set @trg = '%';
-- ...		
		SET @cmd = 'INSERT INTO TableNameValue (table_name) '
			+ ' SELECT count(*)'
			+ ' from '+@tn
			+ ' where '+@cn+' like '+@trg;

вот тут, к слову - точно хрень написана
12 окт 11, 11:25    [11425248]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
qwerty112,
Пофиксил :)
12 окт 11, 15:56    [11427884]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
Glory
b099ard
но столкнулся с тем, что запрос не стартует, как будто ждет разлочки како-то таблицы

Откуда вы узнали, что "запрос не стартует" ?
Вы как то мониторили выполнение вашего скрипта ?


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

Пробовал минипулировать доступом командой sp_dboption 'mydb','single user',false.

Скрипт выполнился.

Еще есть мнение что где-то висит незакрытая транзакция, как их все убить?
12 окт 11, 16:01    [11427949]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
iljy
Member

Откуда:
Сообщений: 8711
b099ard,

а вы не пробовали статус процесса посмотреть? Хотя бы блокировки? Или посидеть подождать интереснее?
12 окт 11, 16:03    [11427964]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
b099ard
Да я запустил профайлер, он тупо ждал данных для профилирования из чего я сделал вывод что скрипт не стартует

И какие же события вы поставили трассировать в профайлере ?
12 окт 11, 16:10    [11428035]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
iljy
b099ard,

а вы не пробовали статус процесса посмотреть? Хотя бы блокировки? Или посидеть подождать интереснее?


Пробовал подаждать :) Оставил скрипт на ночь, утром картина была той же, скрипт бодро рапортовал что он усердно что-то обрабатывает, каких либо изменений в профайлере небыло.

Где посмотреть блокировки?
Какой именно статус какого процесса надо смотреть - сервера?
12 окт 11, 16:40    [11428374]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
Glory, все.
12 окт 11, 16:41    [11428378]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
iljy
Member

Откуда:
Сообщений: 8711
b099ard,

sp_lock
sp_who2
12 окт 11, 16:45    [11428426]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
b099ard
Glory, все.

Хорошо, назовите из этих "все" те, которые относятся к выполнению команд TSQL в вашей трассе
12 окт 11, 16:46    [11428434]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
Glory
b099ard
Glory, все.

Хорошо, назовите из этих "все" те, которые относятся к выполнению команд TSQL в вашей трассе


Это топик по обсуждению тормозов динамическкого запроса, а не изучению профайлера. Если хотите я могу провести с вами отдельные занятия.
12 окт 11, 16:52    [11428508]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
b099ard
Это топик по обсуждению тормозов динамическкого запроса, а не изучению профайлера. Если хотите я могу провести с вами отдельные занятия.

Понятно.
Я трассирую все, а у меня в трассе ничего нет
Наверное глюк сервера. Он просто саботирует ваши действия
Просто интересно, а как вы смогли приконнектится к серверу то, если в профайлере нет соответствующего события ?
12 окт 11, 16:55    [11428536]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
Glory
b099ard
Это топик по обсуждению тормозов динамическкого запроса, а не изучению профайлера. Если хотите я могу провести с вами отдельные занятия.

Понятно.
Я трассирую все, а у меня в трассе ничего нет
Наверное глюк сервера. Он просто саботирует ваши действия
Просто интересно, а как вы смогли приконнектится к серверу то, если в профайлере нет соответствующего события ?


Мое соединение с сервером никак не связано с профайлером , потому что я сначала соеденился с сервером, а потом уже запустил профайлер соответсвтенно журнал был пуст.
12 окт 11, 17:01    [11428602]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
b099ard
Мое соединение с сервером никак не связано с профайлером , потому что я сначала соеденился с сервером, а потом уже запустил профайлер соответсвтенно журнал был пуст.

Так может вы и Профайлер запустили после запуска скрипта ?
Или фильтр поставили какой ? Или все же не трассируете нужные события ?
12 окт 11, 17:05    [11428644]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
Glory
b099ard
Мое соединение с сервером никак не связано с профайлером , потому что я сначала соеденился с сервером, а потом уже запустил профайлер соответсвтенно журнал был пуст.

Так может вы и Профайлер запустили после запуска скрипта ?
Или фильтр поставили какой ? Или все же не трассируете нужные события ?


А может вы со своей стороны прочитаете мои сообщения, скрипт не может выполнятся целую ночь, тем более я его уже выполнял за 15 минут и сейчас мне его надо выполнить повторно.
12 окт 11, 17:08    [11428679]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
b099ard
А может вы со своей стороны прочитаете мои сообщения, скрипт не может выполнятся целую ночь, тем более я его уже выполнял за 15 минут и сейчас мне его надо выполнить повторно.

Так значит он все таки выполняется ?
Сначала вы заявляли, что он даже не стартует
12 окт 11, 17:10    [11428692]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
У меня не раз случалось, что профайлер был приконнекчен к другому серверу!
12 окт 11, 17:11    [11428700]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
exec sp_who2 показало следующее:

51   	sleeping                      	sa	SQL2005	  .	master	AWAITING COMMAND	510	456	10/12 15:08:09	Microsoft SQL Server Management Studio                    	51   	0    
52   	sleeping                      	sa	SQL2005	  .	ips	AWAITING COMMAND	637805	448517	10/12 16:04:41	Microsoft SQL Server Management Studio - Query            	52   	0    
53   	RUNNABLE                      	sa	SQL2005	  .	master	SELECT INTO     	990	286	10/12 16:13:51	Microsoft SQL Server Management Studio - Query            	53   	0    
54   	SUSPENDED                     	sa	SQL2005	  .	master	SELECT          	10	26	10/12 16:12:42	SQL Server Profiler - c5d10346-5ced-4159-ba64-4fc38f5d8466	54   	0    
12 окт 11, 17:17    [11428749]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
Glory
b099ard
А может вы со своей стороны прочитаете мои сообщения, скрипт не может выполнятся целую ночь, тем более я его уже выполнял за 15 минут и сейчас мне его надо выполнить повторно.

Так значит он все таки выполняется ?
Сначала вы заявляли, что он даже не стартует

Ну я каким то образом заставил его отработать один раз, выше я описывал свои действия.
12 окт 11, 17:20    [11428772]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
iap
У меня не раз случалось, что профайлер был приконнекчен к другому серверу!

Сервер один на виртуальной машине, какие либо проблемы с сетью исключены.
12 окт 11, 17:21    [11428786]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
b099ard
exec sp_who2 показало следующее:

51   	sleeping                      	sa	SQL2005	  .	master	AWAITING COMMAND	510	456	10/12 15:08:09	Microsoft SQL Server Management Studio                    	51   	0    
52   	sleeping                      	sa	SQL2005	  .	ips	AWAITING COMMAND	637805	448517	10/12 16:04:41	Microsoft SQL Server Management Studio - Query            	52   	0    
53   	RUNNABLE                      	sa	SQL2005	  .	master	SELECT INTO     	990	286	10/12 16:13:51	Microsoft SQL Server Management Studio - Query            	53   	0    
54   	SUSPENDED                     	sa	SQL2005	  .	master	SELECT          	10	26	10/12 16:12:42	SQL Server Profiler - c5d10346-5ced-4159-ba64-4fc38f5d8466	54   	0    

И какой из этих коннектов с "неработающим" запросом ?
12 окт 11, 17:31    [11428896]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
b099ard
Ну я каким то образом заставил его отработать один раз, выше я описывал свои действия.

И при этом в Профайлере были какие то события ?
12 окт 11, 17:32    [11428901]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
b099ard
Member

Откуда: Москва
Сообщений: 44
Glory
b099ard
Ну я каким то образом заставил его отработать один раз, выше я описывал свои действия.

И при этом в Профайлере были какие то события ?

Я его отключил, поэтому невидел, помню только что убил какой-то зависший скрипт на соседней вкладке когда закрывал все вкладки, выставил режим single_user в true и мой скрипт заработал.
Теперь этот фокус не работает :(
12 окт 11, 18:01    [11429157]     Ответить | Цитировать Сообщить модератору
 Re: Долгий динамический запрос  [new]
iljy
Member

Откуда:
Сообщений: 8711
b099ard,

знаете, кк доказать, что у таракана уши на ногах
12 окт 11, 18:31    [11429318]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить