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

Откуда:
Сообщений: 61
Добрый день, коллеги.

Помогите, пожалуйста, разобраться. Имеются две одинаковых по структуре таблицы, происходит обычный инсерт, т.е.
INSERT INTO Target WITH(TABLOCK)
SELECT * FROM Source

Табличка Source весит 150 гб и имеет около 1 млрд записей. Дело в том, что, инсерт не прекращает работать несмотря на то, что количество строк в обеих таблицах уже одинаковое, да и размер тоже, но транзакция все еще висит. Dm_exec_requests не показывает ожиданий, только иногда можно заметить wait_type PAGELATCH_EX, а wait_resource 0:0:0 в этой сессии. Процесс висит уже 21 час, и я сильно подозреваю, что что-то не так.

@@Version: SQL Server 2008 R2(SP2) - 10.50.4000.0 (x64) Enterprise Edition.
16 апр 14, 11:16    [15889405]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Кавказ-сила
Member

Откуда: Москва
Сообщений: 261
vovan21rus
150 гб
vovan21rus
обычный инсерт
16 апр 14, 11:21    [15889452]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
iap
Member

Откуда: Москва
Сообщений: 47049
vovan21rus,

Может, попытаться вставлять небольшими порциями в отдельных транзакциях?
16 апр 14, 11:25    [15889491]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Ну, штож... хороший такой инсёрд... пока 100500 записей в журнал зальет, пока из журнала... а вдрук там триггерог какой, али ещё какой индекс...
Ждите-с!...
А то откатывать транзакцию ему ещё дольше, однако, придётся. :-\

Сообщение было отредактировано: 16 апр 14, 11:27
16 апр 14, 11:27    [15889502]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

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

Подобные инсерты(и даже тяжелее) проходили уже раньше много раз, все было нормально, на целевой таблице не висит никаких триггеров. Только два дополнительных некластеризованных индекса, но их размер уже не растет (смотрел 2 часа назад было 55гб, сейчас тоже 55гб). Поэтому и не стал заливать данные блоками.
16 апр 14, 11:30    [15889535]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8317
Полный бэкап там не формируется одновременно?
16 апр 14, 11:38    [15889630]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Glory
Member

Откуда:
Сообщений: 104760
vovan21rus
но их размер уже не растет

А размер журнала ? А процент занятого места в журнале ?
16 апр 14, 11:41    [15889648]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

Откуда:
Сообщений: 61
Владислав Колосов,

Кроме инсерта не выполняется ничего.

Glory, журнал логов сильно разросся до 750гб (что очень странно, модель восстановления Simple), но я не могу его ужать из-за висящей транзакции, свободного места 30гб на этом диске. Я подозреваю, что сиквелу не хватает места, чтобы закоммитить, или что-нибудь в этом роде, попробую освободить немного
16 апр 14, 11:48    [15889719]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

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

занято 99,8% журнала
16 апр 14, 11:49    [15889732]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8317
Почему странно и причем здесь модель. Вставка же одной транзакцией идет, а не построчно.
16 апр 14, 11:53    [15889762]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

Откуда:
Сообщений: 61
150 гб данных разрослось до 750, подозрительно?
16 апр 14, 11:55    [15889772]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

Откуда:
Сообщений: 61
Владислав Колосов,

А по поводу simple восстановления, для того, чтобы велось оптимизированное логирование, я указал хинт TABLOCK
16 апр 14, 11:59    [15889797]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Glory
Member

Откуда:
Сообщений: 104760
vovan21rus
подозреваю, что сиквелу не хватает места, чтобы закоммитить, или что-нибудь в этом роде, попробую освободить немного

Если бы места не хватало, то уже было бы соответствующее сообщение об этом
Может вы его просмотрели и у вас уже идет отмена транзакции ?
16 апр 14, 11:59    [15889798]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

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

Транзация вставки в статусе running
16 апр 14, 12:00    [15889802]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Glory
Member

Откуда:
Сообщений: 104760
vovan21rus
Транзация вставки в статусе running

У транзакции нет такого статуса. Статус есть у соединения
16 апр 14, 12:07    [15889856]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

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

Да, перепутал, транзакция не откатывается. Можно ли сделать SHRINKFILE логов на горячую?
16 апр 14, 12:10    [15889884]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Glory
Member

Откуда:
Сообщений: 104760
vovan21rus
Можно ли сделать SHRINKFILE логов на горячую?

При незавершенной транзакции, которая заняла 99.8% журнала ??
16 апр 14, 12:14    [15889921]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

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

в курилке где-то слышал, что можно сделать сброс журнала в любое время, но это опасно
16 апр 14, 12:19    [15889962]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Glory
Member

Откуда:
Сообщений: 104760
vovan21rus
в курилке где-то слышал

Завязывайте с легкими наркотиками
16 апр 14, 12:21    [15889976]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
vovan21rus
для того, чтобы велось оптимизированное логирование, я указал хинт TABLOCK
Указание хинта не дает гарантии минимального журналирования. Нужно соблюсти еще ряд условий. Они перечислены в документации.
16 апр 14, 12:27    [15890017]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

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

Они соблюдены
16 апр 14, 12:29    [15890031]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
vovan21rus
Они соблюдены
Фраза
vovan21rus
Только два дополнительных некластеризованных индекса
Наводит на мысль о наличии кластерного индекса у целевой таблицы.
16 апр 14, 12:41    [15890106]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
Alexander Titkin
Member

Откуда: Москва
Сообщений: 91
vovan21rus,

У вас 610 флаг включен? Судя по занятому месту в логе и наличию только одной активной транзакции - у вас полное протоколирование
16 апр 14, 12:42    [15890110]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
vovan21rus
Member

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

Нет кластерных
16 апр 14, 12:46    [15890139]     Ответить | Цитировать Сообщить модератору
 Re: Висит инсерт  [new]
o-o
Guest
Alexander Titkin
vovan21rus,

У вас 610 флаг включен? Судя по занятому месту в логе и наличию только одной активной транзакции - у вас полное протоколирование


куча + TABLOCK что с флагом 610, что без -- минимальное логирование. разве нет?
16 апр 14, 12:57    [15890219]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить