Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Дамп и dbghelp.dll  [new]
horseman
Member

Откуда: Украина
Сообщений: 246
Доброго времени суток!
Есть такая проблема периодически в логе SQL появляются по три записи
Using 'dbghelp.dll' version '4.0.5'
*Stack Dump being sent to d:\data_sql\MSSQL\log\SQL00921.dmp
SqlDumpExceptionHandler: Process 204 generated fatal exception c0000005
EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process..
* ********************************
и
Error: 0, Severity: 19, State: 0
Номер процесса каждый раз разный. Процессы несистемные. Никто не сталкивался, что бы это могло означать?
12 янв 05, 16:22    [1239491]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
Crimean
Member

Откуда:
Сообщений: 13148
1.select @@version
2.что в поле "Input Buffer" в дампах
12 янв 05, 16:56    [1239663]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
horseman
Member

Откуда: Украина
Сообщений: 246
Select @@version
Microsoft SQL Server  2000 - 8.00.534 (Intel X86)   Nov 19 2001 13:23:50
Copyright (c) 1988-2000 Microsoft Corporation  Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 3) 
Input buffer как я понял это?
Computer type is AT/AT COMPATIBLE.                                             
Bios Version is SDS2 BIOS Release 2.6                                          
PhoenixBIOS 4.0 Release 6.0.1                                                  
Current time is 09:14:12 01/12/05.                                             
2 Intel x86 level 6, 1260 Mhz processor(s).                                    
Windows NT 5.0 Build 2195 CSD Service Pack 3.                                  
                          
                                                     
Memory                    
MemoryLoad = 51%          
Total Physical = 3071 MB   
Available Physical = 1483 MB                        
Total Page File = 3113 MB  
Available Page File = 1733 MB                       
Total Virtual = 2047 MB    
Available Virtual = 276 MB                          
                           
*Stack Dump being sent to d:\data_sql\MSSQL\log\SQL00904.dmp                   
* *********************************************************
**                                                                             
*                                                                              
* BEGIN STACK DUMP:                                                            
*   01/12/05 09:14:12 spid 244                                                 
*                                                                              
*   Exception Address = 0061C11F (COledbError::RaiseIllegalLength + 000000A4 Li
ne 0+00000000)                                                                 
*   Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION                    
*   Access Violation occurred reading address 00000042                         
*    p d o c _ c h e  0e 00 70 00 64 00 6f 00 63 00 5f 00 63 00 68 00 65 00    
*  c k _ v a c     з  63 00 6b 00 5f 00 76 00 61 00 63 00 00 00 00 00 e7 18    
*   	   h  k m 2 4 0  00 09 04 00 01 68 16 00 6b 00 6d 00 32 00 34 00 30 00    
*  8 4 7 b v v   з  	 38 00 34 00 37 00 62 00 76 00 76 00 00 01 e7 fe 01 09    
*     h    &    &     04 00 01 68 ff ff 00 01 26 02 00 00 01 26 04 00 00 01    
*  m    &             6d 04 00 00 01 26 04 00                                  
*                                                                              
*              
Да кстати недавно долбался над этой ХП pdoc_ check_vac но так и не смог подолать глюк.
смысл в следующем: создается несколько временных таблиц в которые вставляем данные полученные из ХП. Так вот с некоторого времени появилась такая ситуация: первая вставка работает безумно долго (2- 3 мин. когда раньше <1 сек). Это не зависит от последовательности вставок.
Т.Е.
create table #tmp1
(...)
insert into #tmp1 exec proc1 --- 2-3 мин

create table #tmp2
(...)
insert into #tmp2 exec proc2 --- < 1 сек

create table #tmp3
(...)
insert into #tmp3 exec proc3 --- < 1 сек
или
create table #tmp2
(...)
insert into #tmp2 exec proc2 --- 2-3 мин

create table #tmp1
(...)
insert into #tmp1 exec proc1 --- < 1 сек

create table #tmp3
(...)
insert into #tmp3 exec proc3 --- < 1 сек
И это все не зависит 4 записи вставляю или 20 000.

Может есть какие идеи почему вставка небольшого количества данных порождает такую граблю.
12 янв 05, 19:54    [1240243]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Сильно зависит от того, что вы в этой процедуре делаете. См. поиск и посмотрите по статьям, что-нибудь из вашей тематики встретится?

Характерные запросы, вызовы, настройки...
12 янв 05, 20:13    [1240264]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
Crimean
Member

Откуда:
Сообщений: 13148
8.00.534

А поставить SP3a не пробовали? А потом 944 билд?

"Input buffer" - оч часто в дампах есть и такая строчка.
12 янв 05, 21:03    [1240306]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
horseman
Member

Откуда: Украина
Сообщений: 246
2GreenSunrise: В конце процедуры формируется строка, кот. потом выполняется execute(@str) и возвращаемый ею рекордсет и надо запихнуть в таблицу. Поиск не помог. В начале ХП стоит set fmtonly off set nocount on
2Crimean: Попробую.
13 янв 05, 09:48    [1240821]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
1. Если выполнить процедуру из QA, то ошибка появляется? Или она появляется только когда процедура зовется откуда-то извне (клиентское приложение, джоб, ...)?
2. Если распечатать @str и выполнить его отдельно, вне процедуры, то ошибка появляется?
3. Если в процедуре есть какие-нибудь многотонные селекты, вьюхи и прочие здоровые конструкции с кучей джойнов и условий, то попробуйте разбить их на конструкции помельче. Иногда помогает...
13 янв 05, 10:36    [1240999]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
horseman
Member

Откуда: Украина
Сообщений: 246
2GreenSunrise:
1) Трабла неблюдается вне зависимости от того, откуда вызывается процедура.
2) Со @str и ХП все в порядке.
Так выполняется 2-3 сек:
--insert into #tmp2 
exec proc2
А так 3-4 минуты
insert into #tmp2 exec proc2
Причем не зависимо от того 4 записи выбирается или 20 000
3) В связи с пунктом 2 выгода от манипуляций с запросом мне кажется сомнительной.
13 янв 05, 23:26    [1243753]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
horseman
Member

Откуда: Украина
Сообщений: 246
Установка sp3a и 944 билда не помогла. Проблемма остается открытой.
Еще замечено, что если данные, которые необходимо запихнуть в таблицу получены немного другим рекорсетом, с примерно такой же скоростью выполнения, то вставка их в таблицу проходит гораздо быстрее. А есть ли разница в том, как получены данные. Логичнее было бы предположить, что селект генеря рекорсет помещает его в память, а потом уже решает, что с ним дальше делать. Отсюда возникае вопрос: почему одинаковые данные, полученные разными селектами записываются в таблицу с разной скоростью(вне зависимости во временную и постоянную).
15 янв 05, 11:30    [1247367]     Ответить | Цитировать Сообщить модератору
 Re: Дамп и dbghelp.dll  [new]
Crimean
Member

Откуда:
Сообщений: 13148
А insert / exec ПОЛНОСТЬЮ прописать не пробовали? Вообще-то синтаксис INSERT подразумевает список полей. И еще. Те процы, которые для insert данные дают - там по одному резалту возвращается?
17 янв 05, 11:37    [1249129]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить