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

Откуда:
Сообщений: 125
Добрый день.
Такая вот проблема. При перезапуске сервера, почти сразу, один из
случайных пользователей, начинает всех блокировать.
Если его убиваешь, то этот SPID находится в состоянии killed/rollback
0%. Поиском пользовалсь. DTC вообще вырублен. Тормоза происходят в
процедурах где нет linked серверов.
Так вот, этот процесс продолжает блокировать кучу народа, и ни кто не
может работать. Сервер не возможно вырубить, помогает только
перезагрузка.
Единственное что заметили, блокировка всегда происходит во время вставки.
В логе сервера, время от времени появляется ошибка:

A time-out occurred while waiting for buffer latch -- type 3,
bp 0000000086FD4480, page 1:1808994x`, stat 0x25c6000b, database id: 5, allocation unit
Id: 1429158053740544, task 0x0000000026F22508 : 0, waittime 300, flags 0x3a,
owning task 0x000000001050A988. Not continuing to wait.

CheckDB не делали, но проверяли все таблицы на которые так ругается
сервак. И те которые учавствуют в процедурах и т.д.
Про эту ошибку тоже обшарили весь инет...
Не знаем что и делать.
Спасибо !

Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)   Mar 29 2009 10:11:52   Copyright (c) 1988-2008 Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build 3790: Service Pack 2) 
28 июл 10, 17:06    [9173044]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
_djХомяГ
Guest
А база(ы) не в AutoShrink'e?
28 июл 10, 17:18    [9173126]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
нет, и Grow = 5 гб
28 июл 10, 17:18    [9173131]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
Вернее
autogrowth для mdf = 250 мб
autogrowth для ldf = 1000 мб
28 июл 10, 17:20    [9173143]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
Glory
Member

Откуда:
Сообщений: 104760
А что покажет
select * from sys.dm_os_wait_stats order by wait_time_ms desc
28 июл 10, 17:23    [9173164]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
Glory
А что покажет
select * from sys.dm_os_wait_stats order by wait_time_ms desc


Первые 20 строк
PAGELATCH_SH561021361431300000177
LAZYWRITER_SLEEP6014137244096319266
REQUEST_FOR_DEADLOCK_SEARCH1437100005000710000
LOGMGR_QUEUE23907079334321893
SQLTRACE_BUFFER_FLUSH17770401040000
XE_TIMER_EVENT2569085530000690000
XE_DISPATCHER_WAIT22690842899880
CHECKPOINT_QUEUE111690671496870
SLEEP_TASK27393356470395834
BROKER_TO_FLUSH34735550010304
WAITFOR11300001300000
CXPACKET6865526075783815933
IO_COMPLETION5497823942713521
BROKER_TASK_STOP24191744100000
PREEMPTIVE_OS_PIPEOPS533133624689420
LCK_M_S6613000120000
PAGEIOLATCH_SH15834127632358357
PAGELATCH_EX20651252007234031
DISPATCHER_QUEUE_SEMAPHORE151201321199850
SLEEP_DBSTARTUP11241129621000


Сообщение было отредактировано: 28 июл 10, 17:29
28 июл 10, 17:28    [9173190]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
wait_typewaiting_tasks_countwait_time_msmax_wait_time_mssignal_wait_time_ms
PAGELATCH_SH561021361431300000177
LAZYWRITER_SLEEP6014137244096319266
REQUEST_FOR_DEADLOCK_SEARCH1437100005000710000
LOGMGR_QUEUE23907079334321893
SQLTRACE_BUFFER_FLUSH17770401040000
XE_TIMER_EVENT2569085530000690000
XE_DISPATCHER_WAIT22690842899880
CHECKPOINT_QUEUE111690671496870
SLEEP_TASK27393356470395834
BROKER_TO_FLUSH34735550010304
WAITFOR11300001300000
CXPACKET6865526075783815933
IO_COMPLETION5497823942713521
BROKER_TASK_STOP24191744100000
PREEMPTIVE_OS_PIPEOPS533133624689420
LCK_M_S6613000120000
PAGEIOLATCH_SH15834127632358357
PAGELATCH_EX20651252007234031
DISPATCHER_QUEUE_SEMAPHORE151201321199850
SLEEP_DBSTARTUP11241129621000


Сообщение было отредактировано: 28 июл 10, 17:31
28 июл 10, 17:30    [9173202]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
DenisVa,

Может все таки поглядеть чем блокирует пользовательский процесс данные, а не гадать на кофейной гуще?
28 июл 10, 17:40    [9173277]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
Glory
Member

Откуда:
Сообщений: 104760
А вы мониторили очереди к диску с вашими базами ?
И что там у вас вообще за дисковая система ?
28 июл 10, 17:44    [9173294]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
WarAnt
DenisVa,

Может все таки поглядеть чем блокирует пользовательский процесс данные, а не гадать на кофейной гуще?


Процесс который блокирует других пользователей, вставляет данные в табличку. Во всяком случае функция fn_get_sql в процедурах указывает именно на эти куски.
И вручную пробовали вставку (insert into), та же песня.
28 июл 10, 17:47    [9173306]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
Glory
А вы мониторили очереди к диску с вашими базами ?

Да, очередей нет, комп какбудто отдыхает.
Glory
И что там у вас вообще за дисковая система ?

Очень мощное хранилище IBM, RAID 10, винтов около 20.
28 июл 10, 17:49    [9173325]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
Т.е. вы вручную делаете один insert и он так долго выполняется, что блокирует другие процессы?
Нет ли триггера на таблице?
Не перекомпилируется он при вставке?
И всё-таки, транзакция не распределённая? Нет ли изменений в таблице другой базы, пусть на том же сервере?
28 июл 10, 17:53    [9173356]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
Prolog
Т.е. вы вручную делаете один insert и он так долго выполняется, что блокирует другие процессы?
Нет ли триггера на таблице?
Не перекомпилируется он при вставке?
И всё-таки, транзакция не распределённая? Нет ли изменений в таблице другой базы, пусть на том же сервере?


нет. Есть простая табличка, без триггеров без ничего. Мало того делали вот так
select * 
into _save_SupplyPriorOrderLog_280710
from SupplyPriorOrderLog
Долго ждали, делаем kill и понеслось ...
Другой пример. При запуске программы, клиент запускает процедурку RegComp в которой
insert into тоже в табличку без триггеров, которая на этом же серваке. Та же песня, и он собирает сразу кучу таких же хотящих работать эзеров.
28 июл 10, 18:00    [9173407]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2791
А сколько записей в SupplyPriorOrderLog? Какой размер таблицы в Mb?
Попробуйте отказаться от использования into. Сначала создайте _save_SupplyPriorOrderLog_280710 с нужной структурой, потом в неё копируйте.
read committed наложит блокировку на SupplyPriorOrderLog на всё время выполнения select ... into.
28 июл 10, 18:08    [9173448]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4213
Это происходит только на пользовательской базе или в любой базе на сервере?
28 июл 10, 18:16    [9173489]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
Prolog
А сколько записей в SupplyPriorOrderLog? Какой размер таблицы в Mb?
Попробуйте отказаться от использования into. Сначала создайте _save_SupplyPriorOrderLog_280710 с нужной структурой, потом в неё копируйте.
read committed наложит блокировку на SupplyPriorOrderLog на всё время выполнения select ... into.

Да не, это не причем. В остальных случаях простые insert into были
28 июл 10, 18:17    [9173496]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
SQL2008
Это происходит только на пользовательской базе или в любой базе на сервере?


хм ... заметили только на пользовательской ... не пробовали проверить. Щас сервер статистики переводим в основной сервак.
28 июл 10, 18:18    [9173505]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4213
DenisVa
SQL2008
Это происходит только на пользовательской базе или в любой базе на сервере?


хм ... заметили только на пользовательской ... не пробовали проверить. Щас сервер статистики переводим в основной сервак.

Я спросил чтобы определиться в какую сторону рыть - сервер или база.

А операции UPDATE и DELETE тоже вешают процессы?
28 июл 10, 18:20    [9173516]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DenisVa
Member

Откуда:
Сообщений: 125
SQL2008

А операции UPDATE и DELETE тоже вешают процессы?

Вроде нет .... Во всяком случае, специально пробовали все нормально.
28 июл 10, 18:30    [9173588]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DaichiRyuu
Member

Откуда:
Сообщений: 9
Добрый день, у меня есть простейший запрос, который так же вызывает блокировку "PREEMPTIVE_OS_PIPEOPS"
Всё никак не могу тоже понять что происходит, если вы решили свою проблему или кто-то знает ответ, помогите пожалуйста разобраться.

SQL Server 2016 установлен на Win Server 2016

Скрипт
DECLARE
@StartDate date,
@EndDate date

SET @StartDate = '20180401'
SET @EndDate = '20181231'

USE [database]
IF OBJECT_ID ('dbo.bcptmp', 'u') IS NOT NULL
DROP TABLE bcptmp
SELECT 
 [docid],
 [OwnerDistID]
INTO dbo.bcptmp
FROM [server].[database].[dbo].[table] 
WHERE orType in (675,10,677,678) 
	AND Condition=1 
	AND DocID is not null 
	AND (orDate between @StartDate and @EndDate)

IF (SELECT COUNT(*) FROM bcptmp)>0 
BEGIN
EXEC xp_cmdShell 'bcp "select * from database.dbo.bcptmp" queryout D:\Transfer\DMT_Del_Document.txt -T -c -t "|" -C Win1251', no_output
EXEC ftp_mput N'D:\Transfer\',N'DMT_Del_Document.txt'
END;


К сообщению приложен файл. Размер - 32Kb
5 май 18, 13:08    [21389373]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36989
Т.е. вы запустили внешний процесс и удивляетесь, что он висит на соответсвтующем ожидании?
5 май 18, 13:32    [21389389]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
DaichiRyuu
Member

Откуда:
Сообщений: 9
А чего он ожидает?
И почему ожидает бесконечно долго ?
Ну и конечно из за чего это может быть ?
Вот чего я спрашиваю, просто люди тут сталкивались с таким.
5 май 18, 14:06    [21389444]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
DaichiRyuu
Всё никак не могу тоже понять что происходит
Вы хотя бы, для начала, определите, на какой конкретно операции это ожидание.
DaichiRyuu
А чего он ожидает?
И почему ожидает бесконечно долго ?
Ну и конечно из за чего это может быть ?
Ну, это слишком абстрактный вопрос. "У меня есть программа, чего она бесконечно ожидает, поделитесь, если кто сталкивался"
5 май 18, 17:43    [21389712]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36989
DaichiRyuu
А чего он ожидает?
И почему ожидает бесконечно долго ?
Ну и конечно из за чего это может быть ?
Вот чего я спрашиваю, просто люди тут сталкивались с таким.

Почему трамвай не приезжает, чего он ждет?
И почему это происходит бесконечно долго?
Ну и конечно из за чего это может быть ?
Вот чего я спрашиваю, просто люди тут сталкивались с таким.
5 май 18, 17:46    [21389715]     Ответить | Цитировать Сообщить модератору
 Re: Не убиваемые процессы, которые всех блокируют.  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 774
DaichiRyuu,

Я правильно понимаю, вот это вот
FROM [server].[database].[dbo].[table]

обращение к linked server?
6 май 18, 21:33    [21391482]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить