Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7 8 9   вперед  Ctrl      все
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Sgt.Pepper
Константин, а нельзя ли мне тулзу по мылу переслать, а то проблемы с доступом на narod (((
очень любопытно посмотреть



Задача 'kknyazev@mail.ru - отправка' сообщила об ошибке (0x800CCC69) : ' Отклик сервера: 550 Message was not accepted -- invalid mailbox. Local mailbox sgt.pepper.spb@mail.ru is unavailable: account is disabled'
1 авг 07, 16:46    [4465188]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Sgt.Pepper
Member

Откуда: spb
Сообщений: 1166
sorry, давно не пользовался...
повторите плз на s.bulatov@mrg.spb.ru - этот работает точно
1 авг 07, 16:58    [4465303]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Sgt.Pepper
sorry, давно не пользовался...
повторите плз на s.bulatov@mrg.spb.ru - этот работает точно

ушло...
1 авг 07, 17:31    [4465616]     Ответить | Цитировать Сообщить модератору
 Bug('s :)) report 2007-08-01  [new]
BugsBunny
Member

Откуда: GMT+5=EST
Сообщений: 2414
v.1.5.11.50
1. What is the principle for logging snapshots? Expected "every warning" does seem to be an answer.
I have over 30-minute blocking and nothing's happening (on second registered instance).
To reproduce:
--1st session
create table ##t(id int primary key)
begin tran
    select * from ##t with(holdlock, updlock)
--commit tran
--drop table ##t
--2nd session
insert ##t select 1
--3rd session
begin tran
select * from ##t with(holdlock, updlock)
2. SQL statement for top-level session in blocking chain is not fetched (and logged in snapshot)
see file attached
3. "Clear Errors" in "Blocking History" seems not working and I'd recommend to add "refresh" context menu
4. Program might get into the state when it's impossible to exit it though it stays fully(?) operational.
it happened twice though I don't know how to reproduce it.

К сообщению приложен файл (2007-08-01 14-26-31 MY_SQL_INSTANCE 476.xml - 1Kb) cкачать
1 авг 07, 23:36    [4466929]     Ответить | Цитировать Сообщить модератору
 Re: Bug('s :)) report 2007-08-01  [new]
BugsBunny
Member

Откуда: GMT+5=EST
Сообщений: 2414
BugsBunny
v.1.5.11.50
1. What is the principle for logging snapshots? Expected "every warning" does seem to be an answer.
I have over 30-minute blocking and nothing's happening (on second registered instance).
...

Got it (snapshot) after all - see attached

К сообщению приложен файл (2007-08-01 15-34-25 MY_INSTANCE 134.xml - 1Kb) cкачать
2 авг 07, 00:18    [4467019]     Ответить | Цитировать Сообщить модератору
 Re: Bug('s :)) report 2007-08-01  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
BugsBunny
1 Снепшот сохраняется только когда блокировка прошла, исчезла с Current Activity
2 Спасибо, нашел ошибку исправлю.
3 Меню туда закралось по ошибке, уберу. на счет рефреш не уверен, пока не понял как с этим работать, само же удаляется...
4 Да, сам замечал пару раз, но понять что с ней пока не смог. Ощущение, что из-за асинхронности АДО, буду разбираться....

Еще нашел ошибку - не показывались и не сохранялись процессы с взаимной блокировкой, исправлю.

С уважением, Константин Князев.
2 авг 07, 10:33    [4467929]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Обновиление
Версия 1.5.12.52 (02.08.2007)
  • Исправлена ошибка определения SQL запроса для верхнего блокирующего процесса
  • Исправлена ошибка отображения и сохранения взаимно блокирующих процессов
  • Добавлена кнопка открытия папки снепшотов.

    С уважением, Князев Константин
  • 2 авг 07, 12:28    [4469095]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Александр Гладченко
    Member

    Откуда:
    Сообщений: 10730
    Блог
    У меня что-то не хочет програмка закрываться... только подвисает в ответ на крестик или quit...
    3 авг 07, 16:54    [4477629]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Zelius
    Member

    Откуда: Россия, Москва
    Сообщений: 1434
    Александр Гладченко
    У меня что-то не хочет програмка закрываться... только подвисает в ответ на крестик или quit...

    У меня тоже такое пару раз было, но пока не отловил... Есть ощущение что это из-за асинхронности работы с АДО. Буду разбираться... Нет ли каких то намеков после чего это могло получиться?
    6 авг 07, 01:07    [4481649]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Александр Гладченко
    Member

    Откуда:
    Сообщений: 10730
    Блог
    Zelius

    У меня тоже такое пару раз было, но пока не отловил... Есть ощущение что это из-за асинхронности работы с АДО. Буду разбираться... Нет ли каких то намеков после чего это могло получиться?


    Мне показалось, что из-за одновременного запуска SQL Server Management Studio...
    6 авг 07, 10:23    [4482230]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    gang
    Member

    Откуда:
    Сообщений: 1394
    Обнаружилась неприятная трабла. После установки последней версии при обращении с сиквелам под 7-кой вылазит ошибка Incorrect syntax near the keyword 'table' ( EOleException at 0x00536B96).
    В профайлере отлавливается только select IS_SRVROLEMEMBER('sysadmin'), а затем сразу Ексепшн.
    На предыдущей версии такого не было. Пробовал перезаводить сервак в SQLBlocks.exe - не помогает. От вида аутентификации тоже ничего не зависит. Коннектился под админскими логинами (и NT и SQL). Хелп. Кстати, а код-то будет?
    16 авг 07, 10:21    [4532846]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Zelius
    Member

    Откуда: Россия, Москва
    Сообщений: 1434
    Александр Гладченко
    Zelius

    У меня тоже такое пару раз было, но пока не отловил... Есть ощущение что это из-за асинхронности работы с АДО. Буду разбираться... Нет ли каких то намеков после чего это могло получиться?


    Мне показалось, что из-за одновременного запуска SQL Server Management Studio...


    Нет, не оно, пока не смог отловить... Но единственное что приходит в голову, это окно открытое ADO для асинхронных целей, которое не правильно отрабатывает сообщение о закрытии.... Пока единственное что приходит в голову - это отказаться от асинхронности и перенести все в потоки...
    16 авг 07, 12:25    [4533955]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Zelius
    Member

    Откуда: Россия, Москва
    Сообщений: 1434
    gang
    Обнаружилась неприятная трабла. После установки последней версии при обращении с сиквелам под 7-кой вылазит ошибка Incorrect syntax near the keyword 'table' ( EOleException at 0x00536B96).
    В профайлере отлавливается только select IS_SRVROLEMEMBER('sysadmin'), а затем сразу Ексепшн.
    На предыдущей версии такого не было. Пробовал перезаводить сервак в SQLBlocks.exe - не помогает. От вида аутентификации тоже ничего не зависит. Коннектился под админскими логинами (и NT и SQL). Хелп. Кстати, а код-то будет?

    А какой SQL сервер? Он понимает табличные переменные?
    16 авг 07, 12:27    [4533970]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    iap
    Member

    Откуда: Москва
    Сообщений: 47001
    Zelius
    gang
    Обнаружилась неприятная трабла. После установки последней версии при обращении с сиквелам под 7-кой вылазит ошибка Incorrect syntax near the keyword 'table' ( EOleException at 0x00536B96).
    В профайлере отлавливается только select IS_SRVROLEMEMBER('sysadmin'), а затем сразу Ексепшн.
    На предыдущей версии такого не было. Пробовал перезаводить сервак в SQLBlocks.exe - не помогает. От вида аутентификации тоже ничего не зависит. Коннектился под админскими логинами (и NT и SQL). Хелп. Кстати, а код-то будет?

    А какой SQL сервер? Он понимает табличные переменные?
    Табличные переменные появились только в SQL2000, а не SQL7, как у gang
    16 авг 07, 12:31    [4534014]     Ответить | Цитировать Сообщить модератору
     got errors  [new]
    BugsBunny
    Member

    Откуда: GMT+5=EST
    Сообщений: 2414


    К сообщению приложен файл. Размер - 0Kb
    16 авг 07, 21:54    [4537659]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Zelius
    Member

    Откуда: Россия, Москва
    Сообщений: 1434
    iap
    абличные переменные появились только в SQL2000, а не SQL7, как у gang

    Хмм... И что делать, убирать для SQL7, переписывать на временные? Для всех серверов перевести на временные или только для 7ого?
    17 авг 07, 14:03    [4539923]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    talex79
    Member

    Откуда:
    Сообщений: 27
    gang
    Обнаружилась неприятная трабла. После установки последней версии при обращении с сиквелам под 7-кой вылазит ошибка Incorrect syntax near the keyword 'table' ( EOleException at 0x00536B96).

    +1

    SQL 7 тоже

    Фиксы будут?
    19 авг 07, 04:00    [4544099]     Ответить | Цитировать Сообщить модератору
     Re: got errors  [new]
    Zelius
    Member

    Откуда: Россия, Москва
    Сообщений: 1434
    BugsBunny

    Часто такое получается? Есть закономерность?

    talex79

    будут, подправлю в будни...
    19 авг 07, 12:35    [4544240]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Zelius
    Member

    Откуда: Россия, Москва
    Сообщений: 1434
    Вопрос к знатокам, просто поменять запрос на временные таблицы (для совместимости с MSSQL7) или сделать в зависимости от версии сервера? Судя по профайлеру, без запроса SQL текста с временными таблицами даже быстрее отрабатывает!
    Кстати, проверьте запрос на семерке, работает ли? А то его уже лет дцать не видел...

    SET NOCOUNT ON
    SET XACT_ABORT ON
    
    if exists (select * from tempdb.dbo.sysobjects where id = object_id('tempdb.dbo.#processes'))
    	truncate table #processes
    else
    	create table #processes ( 
    		[spid] [smallint] NULL, 
    		[blocked] [smallint] NULL, 
    		[name] [nvarchar] (128) NULL,
    		[waittime] [bigint] NULL ,
    		[lastwaittype] [nchar] (32) NULL ,
    		[waitresource] [nchar] (256) NULL ,
    		[open_tran] [smallint] NULL ,
    		[status] [nchar] (30) NULL ,
    		[hostname] [nchar] (128) NULL ,
    		[program_name] [nchar] (128) NULL ,
    		[cmd] [nchar] (16) NULL ,
    		[loginame] [nchar] (128) NULL ,
    		[cpu] [int] NULL ,
    		[physical_io] [bigint] NULL ,
    		[memusage] [int] NULL,
    		[last_batch] [datetime] NULL,
    		[sql] [nvarchar] (500) NULL
    	)
    
    insert into #processes
    	select spid, blocked, d.name, waittime, lastwaittype, waitresource, open_tran, p.status, 
    		hostname, program_name, cmd, loginame, cpu, physical_io, memusage, last_batch, ''
    	from master.dbo.sysprocesses p left outer join master..sysdatabases d on d.dbid = p.dbid
    
    if NOT exists( select * from #processes where ISNULL( blocked, 0) <> 0)
    begin
    	select * from #processes 
    	order by blocked, waittime
    	return
    end
    
    if exists (select * from tempdb.dbo.sysobjects where id = object_id('tempdb.dbo.#last_sql'))
    	truncate table #last_sql
    else
    	create table #last_sql ( EventType nvarchar(30), Parameters int, EventInfo nvarchar(500))
    
    DECLARE cur_blocked CURSOR FAST_FORWARD FOR
    	select spid from #processes 
    	where ISNULL( blocked, 0) <> 0
    		OR spid in ( select blocked from #processes)
    
    declare @spid int, @cmd varchar(100)
    
    OPEN cur_blocked 
    
    FETCH NEXT FROM cur_blocked INTO @spid
    WHILE @@fetch_status = 0
    BEGIN
    	truncate table #last_sql
    	set @cmd = 'DBCC INPUTBUFFER (' + CAST(@spid as varchar(12)) + ')'
    	insert into #last_sql ( EventType, Parameters, EventInfo)
    		exec (@cmd)
    
    	update #processes set sql = ISNULL( (select EventInfo from #last_sql), '')
    	where spid = @spid
    
    	FETCH NEXT FROM cur_blocked INTO @spid
    END
    
    CLOSE cur_blocked 
    DEALLOCATE cur_blocked 
    
    select * from #processes
    order by blocked, waittime
    
    

    С уважением, Князев Константин
    22 авг 07, 12:34    [4559433]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    talex79
    Member

    Откуда:
    Сообщений: 27
    Zelius

    Кстати, проверьте запрос на семерке, работает ли? А то его уже лет дцать не видел...


    Server: Msg 2715, Level 16, State 7, Line 7
    Column or parameter #4: Cannot find data type bigint.

    Если их заменить на INT - все работает
    22 авг 07, 12:50    [4559595]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Zelius
    Member

    Откуда: Россия, Москва
    Сообщений: 1434
    talex79
    Zelius

    Кстати, проверьте запрос на семерке, работает ли? А то его уже лет дцать не видел...


    Server: Msg 2715, Level 16, State 7, Line 7
    Column or parameter #4: Cannot find data type bigint.

    Если их заменить на INT - все работает


    а если его заменить на decimal(38)? у меня на 2005ом есть waittime > maxint...
    22 авг 07, 14:28    [4560419]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    talex79
    Member

    Откуда:
    Сообщений: 27
    Zelius
    talex79
    Zelius

    Кстати, проверьте запрос на семерке, работает ли? А то его уже лет дцать не видел...


    Server: Msg 2715, Level 16, State 7, Line 7
    Column or parameter #4: Cannot find data type bigint.

    Если их заменить на INT - все работает


    а если его заменить на decimal(38)? у меня на 2005ом есть waittime > maxint...


    Server: Msg 2750, Level 16, State 1, Line 7
    Column or parameter #4: Specified column precision 38 is greater than the maximum precision of 28.

    Т.е. только decimal(28)
    22 авг 07, 18:08    [4562313]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Александр Гладченко
    Member

    Откуда:
    Сообщений: 10730
    Блог
    Zelius

    а если его заменить на decimal(38)? у меня на 2005ом есть waittime > maxint...


    А есть waittime > maxbigint
    22 авг 07, 18:15    [4562357]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    talex79
    Member

    Откуда:
    Сообщений: 27
    Александр Гладченко
    Zelius

    а если его заменить на decimal(38)? у меня на 2005ом есть waittime > maxint...


    А есть waittime > maxbigint


    Это где есть maxbigint?
    22 авг 07, 18:21    [4562386]     Ответить | Цитировать Сообщить модератору
     Re: Небольшая самодельная тулза для отображения блокировок...  [new]
    Zelius
    Member

    Откуда: Россия, Москва
    Сообщений: 1434
    talex79

    Т.е. только decimal(28)


    Ок, тогда пока его и поставлю..
    22 авг 07, 18:30    [4562432]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6 7 8 9   вперед  Ctrl      все
    Все форумы / Microsoft SQL Server Ответить