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

Откуда: Россия, Москва
Сообщений: 1557
Max-xaM

Новая бага: нельзя закрыть. Quit в трее тоже не закрывает программу. Просто свернул ее и развернул. Делай Application.Terminate вместо Quit (Close).

Не в этом дело... Причем у меня все работает и не виснет, как ты описал...
Кстати, а какой у тебя MDAC? Может от этого зависит....
30 авг 07, 15:57    [4598916]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
k700
Member

Откуда: Moscow
Сообщений: 103
Disclaimer: Всю ветку не читал - так что сорри если баян:

У меня периодически в Blocking history возникает такая ситуация:
в правом верхнем окне всего одна строчка (заблокированный процесс).
При этом поле Blocked by имеет некоторое ненулевое значение.
Но вот информации по процессу-виновнику нет :(
30 авг 07, 20:49    [4600645]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
k700
Member

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


АННАЛОГИЧНО!

- периодически..

PS: ver. 1.5.12.52
30 авг 07, 21:20    [4600689]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
Исправил ошибки, добавил определение версии сервера и использование соответствующего запроса, для 2005ого он заметно упростился :)
SQLBlocks_test.zip - просьба проверить тех, у кого залипают окна и у кого MSSQL 7.

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

Откуда: Moscow
Сообщений: 103
Zelius
Исправил ошибки, добавил определение версии сервера и использование соответствующего запроса, для 2005ого он заметно упростился :)
SQLBlocks_test.zip - просьба проверить тех, у кого залипают окна и у кого MSSQL 7.

С уважением, Князев Константин


1) Глюк с нежеланием программы закрываться остался.

2) + к этому в журнале ошибок стали появляться (с периодичностью Refresh-а) парные записи :
Operation cannot be performed while executing asynchronously (EOleException at 0x005109DE)
Operation cannot be performed while executing asynchronously (EOleException at 0x00541787)


3) Перестала вестись Blocking history (при этом в Current activity блокировки показываются)


Если срубить задачу и запустить снова - 1) и 2) пропадают,
но вновь появляются когда программа поработает минут 5-10.

ЗЫ: файлы servers.ini и SQLBlocks.ini от предыдущей версии подходят к версии SQLBlocks_test.zip? (я их использовал)

ЗЗЫ: XP Prof SP2 + все Updates; 512 RAM
31 авг 07, 19:13    [4606426]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Max-xaM
Member

Откуда: Гусь-Хрустальный
Сообщений: 556
Zelius
Max-xaM

Новая бага: нельзя закрыть. Quit в трее тоже не закрывает программу. Просто свернул ее и развернул. Делай Application.Terminate вместо Quit (Close).

Не в этом дело... Причем у меня все работает и не виснет, как ты описал...
Кстати, а какой у тебя MDAC? Может от этого зависит....


MDAC 2.8 sp1 & Windows 2000 Professional.
MS SQL Server 2000 sp4 & Windows 2000 Server.
3 сен 07, 12:55    [4612251]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
k700
Disclaimer: Всю ветку не читал - так что сорри если баян:

У меня периодически в Blocking history возникает такая ситуация:
в правом верхнем окне всего одна строчка (заблокированный процесс).
При этом поле Blocked by имеет некоторое ненулевое значение.
Но вот информации по процессу-виновнику нет :(

Проверь, это не сам себя процесс блокирует? И я так понимаю, что случается, когда в sysprocesses стоит blocked не 0, а такого процесса уже нет....
3 сен 07, 18:09    [4614554]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

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


АННАЛОГИЧНО!

- периодически..

PS: ver. 1.5.12.52


а кстати, какой таймаут стоит у сервера?
3 сен 07, 18:11    [4614566]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
Max-xaM
Zelius
Max-xaM

Новая бага: нельзя закрыть. Quit в трее тоже не закрывает программу. Просто свернул ее и развернул. Делай Application.Terminate вместо Quit (Close).

Не в этом дело... Причем у меня все работает и не виснет, как ты описал...
Кстати, а какой у тебя MDAC? Может от этого зависит....


MDAC 2.8 sp1 & Windows 2000 Professional.
MS SQL Server 2000 sp4 & Windows 2000 Server.

у меня такой же и тоже на 2000ых...
бум думать!
3 сен 07, 18:13    [4614571]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
Никак не могу повторить проблему с нежеланием закрываться окна. В качестве попытки разрешить проблему, добавил расширенный лог в программу, пункт меню ?\Raise error и кнопку Raise error. Большая просьба тем у кого вылезают эти косяки скачать sqlblocks_debug.zip, запустить, в случае если не закрывается окно или программа - нажать Raise error и прислать мне sqlblocks.log файл на kknyazev@mail.ru

С уважением, Князев Константин
3 сен 07, 18:36    [4614683]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Domanro
Member

Откуда:
Сообщений: 10
Извиняюсь может я не так понял. У нас проблема что постоянно виснет процесс Borland Socket Server и его приходится рубить и опять запускать. Уже несколько раз он подвисал, а в программе ни намека хотя в списке показаны соединения по Borland Socket Server. Или она впринципе не для этого сделана. Можно поподробнее что именно означает поле "Blocked by" - зависший процесс или что?
4 сен 07, 06:17    [4615515]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
Domanro
Извиняюсь может я не так понял. У нас проблема что постоянно виснет процесс Borland Socket Server и его приходится рубить и опять запускать. Уже несколько раз он подвисал, а в программе ни намека хотя в списке показаны соединения по Borland Socket Server. Или она впринципе не для этого сделана. Можно поподробнее что именно означает поле "Blocked by" - зависший процесс или что?

А вы уверены, что подвисает на sql запросах? Если программа не показывает блокировки, то скорее всего их там и нет. Для проверки можно посмотреть вручную процессы из sysprocesses. Если виснет сам сервер, то программа ничего не покажет...
4 сен 07, 10:07    [4615982]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
k700
Member

Откуда: Moscow
Сообщений: 103
Zelius
k700
Disclaimer: Всю ветку не читал - так что сорри если баян:

У меня периодически в Blocking history возникает такая ситуация:
в правом верхнем окне всего одна строчка (заблокированный процесс).
При этом поле Blocked by имеет некоторое ненулевое значение.
Но вот информации по процессу-виновнику нет :(

Проверь, это не сам себя процесс блокирует?

Нет.
Процесс блокируется другим процессом.
Понаблюдав немного выяснил, что ситуация обычно возникает если время блокировки превышает период рефреша.
В предыдущий рефреш эта блокировки отрисовываются нормально (2 строки: блокирующий и блокируемый процессы), а потом показывается только блокируемый процесс.

Zelius
И я так понимаю, что случается, когда в sysprocesses стоит blocked не 0, а такого процесса уже нет....

Типа того.. Но как процесс может быть заблокирован несуществующим процессом?..
4 сен 07, 11:18    [4616441]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
k700
Member

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


АННАЛОГИЧНО!

- периодически..

PS: ver. 1.5.12.52


а кстати, какой таймаут стоит у сервера?


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

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

10 минут

многова-то! вообще он должен быть несколько секунд, 10-30. Иначе в случае залипания ждать придется 10 минут как раз...

автор
Типа того.. Но как процесс может быть заблокирован несуществующим процессом?..

Хотелось бы списать на глюки сервера, но сначала подумаю. вообще раньше был похожий глюк, когда взаимоблокирующие процессы были разделены несколькими уровнями дерева, но в последней версии исправил...
4 сен 07, 11:34    [4616558]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
DVN
Member

Откуда: Minsk, Belarus
Сообщений: 184
Если произвести Servers -> Unregister, а затем вызвать контекстное меню в зонах Server или Вывода ошибок, - Access violation..., а также не очищается дерево процессов.

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

Откуда: Moscow
Сообщений: 103
DVN
Если произвести Servers -> Unregister, а затем вызвать контекстное меню в зонах Server или Вывода ошибок, - Access violation..., а также не очищается дерево процессов.


+1

последняя "debug-версия" в этом случае выдаёт сообщение:
"Assertion failure (S:\Projects\SqlBlocks\Sources\siMain.pas, line 789)"
4 сен 07, 16:51    [4619368]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
DVN
Если произвести Servers -> Unregister, а затем вызвать контекстное меню в зонах Server или Вывода ошибок, - Access violation..., а также не очищается дерево процессов.

Спасибо, исправлю!
4 сен 07, 17:42    [4619741]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
Большое спасибо к700 за помощь в поиске багов, но нужны еще добровольцы :)
sqlblocks_debug.zip - логи и ошибки жду на kknyazev@mail.ru

С уважением, Князев Константин
24 сен 07, 11:37    [4705332]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
1) чтото не сохраняет историю - причина не совсем понятна...
2) если в настроках ConnectionString не ставить галку "сохранять пароль", по внизу пишется сообщение об ошибке

К сообщению приложен файл. Размер - 0Kb
25 сен 07, 14:49    [4712093]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
5[Strogino]
Guest
Во-первых, хочу поблагодарить автора данной утилиты за проделанную работу - программа удалась и удобна для использования. Однако хотелось внести свои пожелания...

По тексту запросов (колонка SQL) - похоже обрабатывается только один тип, да еще и как-то странно.

Например выдает: sp_executesql;1
И все, больше никакой информации. Хотелось бы более развернутый запрос. Критично.

Текст запроса выводится не более 260-270 символов, далее обрезается. Не критично, но желательно хотя бы 4000 =)

Где-то в получении запросов от сервера содержится косяк с размером поля во временной (?) таблице - в лог выдается "String or binary data would be truncated. bla-bla-bla". Не критично, да и Дельфи нету, чтобы показать ошибку более детально.
20 ноя 07, 10:59    [4937547]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

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

По тексту запросов (колонка SQL) - похоже обрабатывается только один тип, да еще и как-то странно.

Например выдает: sp_executesql;1
И все, больше никакой информации. Хотелось бы более развернутый запрос. Критично.

К сожалению, это вся информация, которая доступна для программы, то же что можно увидеть и в EM, результат DBCC INPUTBUFFER для не 2005ыхого серверов, и из sys.dm_exec_sql_text(sql_handle) для 2005ых.

5Strogino

Текст запроса выводится не более 260-270 символов, далее обрезается. Не критично, но желательно хотя бы 4000 =)

Отдаю все что мне возвращается, ничего не режу :) Т.е. это ограничение выше указанных ф-ий.

5Strogino

Где-то в получении запросов от сервера содержится косяк с размером поля во временной (?) таблице - в лог выдается "String or binary data would be truncated. bla-bla-bla". Не критично, да и Дельфи нету, чтобы показать ошибку более детально.

Эта ошибка выдается на серверной части, я ее не могу повторить у себя, к сожалению. Если кто из гуру мог бы глядя на запрос предположить в каком месте она вылезает, был бы благодарен!

select spid, p.blocked, d.name, waittime, lastwaittype, waitresource, open_tran, p.status, 
	hostname, program_name, cmd, loginame, cpu, physical_io, memusage, last_batch,
	case when p.blocked <> 0 OR b.blocked IS NOT NULL then (select text from sys.dm_exec_sql_text(sql_handle)) 
	else '' end as sql
from 
	master.dbo.sysprocesses p 
	left outer join master..sysdatabases d on d.dbid = p.dbid
	left outer join (select distinct blocked from master.dbo.sysprocesses) as b on b.blocked = p.spid
order by p.blocked, waittime
21 ноя 07, 12:51    [4944440]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Crimean
Member

Откуда:
Сообщений: 13147
профилером можно всю команду брать. вот появится время - допишу к "t2" еще и показ блокировок. все равно все необходимое есть, надо только таб добавить, положить на него дерево и заполнить :)
21 ноя 07, 13:38    [4944799]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
5[Strogino]
Guest
Zelius
5Strogino

По тексту запросов (колонка SQL) - похоже обрабатывается только один тип, да еще и как-то странно.
Например выдает: sp_executesql;1
И все, больше никакой информации. Хотелось бы более развернутый запрос. Критично.

К сожалению, это вся информация, которая доступна для программы, то же что можно увидеть и в EM, результат DBCC INPUTBUFFER для не 2005ыхого серверов, и из sys.dm_exec_sql_text(sql_handle) для 2005ых.

5Strogino

Текст запроса выводится не более 260-270 символов, далее обрезается. Не критично, но желательно хотя бы 4000 =)

Отдаю все что мне возвращается, ничего не режу :) Т.е. это ограничение выше указанных ф-ий.

По первому и второму пункту - а чем мотивирован игнор функции fn_get_sql ???

Для SQL2K она появилась в SP3
Для 2005 она уже присутствует в базе master

http://msdn2.microsoft.com/en-us/library/Aa258866(SQL.80).aspx

DECLARE @Handle binary(20)
SELECT @Handle = sql_handle FROM sysprocesses WHERE spid = 52
SELECT * FROM ::fn_get_sql(@Handle)


5Strogino

Где-то в получении запросов от сервера содержится косяк с размером поля во временной (?) таблице - в лог выдается "String or binary data would be truncated. bla-bla-bla". Не критично, да и Дельфи нету, чтобы показать ошибку более детально.

Эта ошибка выдается на серверной части, я ее не могу повторить у себя, к сожалению. Если кто из гуру мог бы глядя на запрос предположить в каком месте она вылезает, был бы благодарен!

select spid, p.blocked, d.name, waittime, lastwaittype, waitresource, open_tran, p.status, 
	hostname, program_name, cmd, loginame, cpu, physical_io, memusage, last_batch,
	case when p.blocked <> 0 OR b.blocked IS NOT NULL then (select text from sys.dm_exec_sql_text(sql_handle)) 
	else '' end as sql
from 
	master.dbo.sysprocesses p 
	left outer join master..sysdatabases d on d.dbid = p.dbid
	left outer join (select distinct blocked from master.dbo.sysprocesses) as b on b.blocked = p.spid
order by p.blocked, waittime
[src][/src]
Хм... Ну во-первых, у меня в качестве пациента SQL2K так что никакой функции sys.dm_exec_sql_text нету...

Во-вторых, "select text from sys.dm_exec_sql_text(sql_handle)" судя по инфе technet'a возвращает text с типом nvarchar(max) - и тут уже вопрос как ты дальше используешь эти данные.

Я могу сказать, что у меня здесь на работе есть БД, в которой запрос размером в 348 строк, возвращающий 260 полей... я когда это увидел, чуть со стула не упал)))) Вся моя концепция знаний баз данных, заботливо выращенная Г.Некошновым и В.Степаненко, улетела в тартарары))
21 ноя 07, 16:01    [4945918]     Ответить | Цитировать Сообщить модератору
 Re: Небольшая самодельная тулза для отображения блокировок...  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
Выложил новую версию 1.6.16.90 (05.12.2007)

* Исправлена ошибка "String or binary data would be truncated."
* SQL запросы вынесены во внешние файлы, которые можно менять и подстраивать.

Лежит там же, но в виде инсталятора

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