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

Откуда:
Сообщений: 79
После установки SP1 на 2008 R2 (через обычный апдейтер Win Server 2008), процедура типа INSERT INTO From (select......) (достаточно тяжелая), начинает расширять log пока не заканчиватся место на диске и умbрает. До установки SP1 она писала в лог ~ 300 МБ, а сейчас >100 Гб.

Сначало я подумал что слитела модель востановления. Проверил, все ок (simple). Пробовал уже этот запрос выполнять с
DBCC TRACEON (610,-1)
и всеравно результат тот же. Я уже просто потерялся.

Р.S. лог расширяемый по 10% без ограничений размера.
P.P.S. может указать ему конечный размер и пусть он подавится? Требований к журналированию транзакций просто нету, все можно перезалить (система 1С SQL -> DWH -> OLAP)
29 сен 11, 17:18    [11357101]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
trew
Member

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

Если не разберешься, можно частями заливать данные.
29 сен 11, 17:22    [11357150]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Планы проверяйте.
29 сен 11, 17:22    [11357151]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
trew
mihami,

Если не разберешься, можно частями заливать данные.

Должна же быть причина почему вчера все было норм, а сегодня просто взбесился лог.

Гавриленко Сергей Алексеевич
Планы проверяйте.

можно поподробнее
29 сен 11, 17:46    [11357385]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Планы запросов. И, кстати, лог какой базы растет?
29 сен 11, 17:48    [11357402]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35389
Блог
а каков объем исходной таблички?
29 сен 11, 17:48    [11357405]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35389
Блог
и кстати, после sp1 вышли целых 2 CU
29 сен 11, 17:49    [11357413]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
если вы про предполагаемый план выполнения процедуры то там просто бред: анализ только первых 2-х команд
29 сен 11, 17:50    [11357419]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
Гавриленко Сергей Алексеевич
Планы запросов. И, кстати, лог какой базы растет?
той в которой загружаются данные

а каков объем исходной таблички?

Это хранилище. Само оно 99Гб, а источник, тяжело сказать там много join-ов идет (18 шт). Вобщем формируется транзакция на добавление гдето 14,4 млн строк
29 сен 11, 17:55    [11357465]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Может, просто внезапно стало больше данных?
29 сен 11, 17:56    [11357473]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
Гавриленко Сергей Алексеевич
Может, просто внезапно стало больше данных?

Это процедура по вычислению остатков (1С), где расчет начальных остатков-закупок-продаж -конечных остатков
Со вчера на сегодня не мог "Внезапно" вырости обьем данных аж так что лог с 200МБ не умещается в 100Гб (это только для данной процедуры).
29 сен 11, 18:01    [11357512]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
iljy
Member

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

а требования выполнены?
http://msdn.microsoft.com/en-us/library/ms190422.aspx
29 сен 11, 18:02    [11357516]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
iljy
mihami,

а требования выполнены?
http://msdn.microsoft.com/en-us/library/ms190422.aspx

Ну единственное что я не ставил tablock но это и не нужно т.к. я единственный пользователь ХД.
29 сен 11, 18:09    [11357580]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
iljy
Member

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

а это никак не связано. Или у вас сервер в однопользовательском режиме?
29 сен 11, 18:16    [11357632]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
iljy
mihami,

а это никак не связано. Или у вас сервер в однопользовательском режиме?

Нет в MULTI_USER. Но я использую обычный INSERT а не BULK INSERT. Или стоит поменять?
29 сен 11, 18:24    [11357689]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
iljy
Member

Откуда:
Сообщений: 8711
mihami
iljy
mihami,

а это никак не связано. Или у вас сервер в однопользовательском режиме?

Нет в MULTI_USER. Но я использую обычный INSERT а не BULK INSERT. Или стоит поменять?

Я вам привел четкие формальные требования производителя, при которых возможно минимальное журналирование операций вставки. Вы чего еще хотите услышать-то? Как сервер можно обмануть и их не выполнить? Можете еще вот эту статью почитать для общего развития
http://msdn.microsoft.com/en-us/library/ms191244.aspx
29 сен 11, 21:15    [11358288]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

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

Поменял инструкции на INSERT INTO table_name WITH (TABLOCK), абсолютно ничего не поменялось.

Структура процедуры такая (алгоритмически)
SET i=1
while (i<= 31)
begin
  INSERT INTO table_name WHITH (TABLOCK)  
  ...
  select sum(field)
  where data_id > i
  ...
  i=i+1
end

одна порция данных ~240 тыс. При каждой новой итерации нужно суммировать (240 000 * i) строк, но пишется всеравно ~ 240тыс.
Я так понимаю что подчищать командой журнал нельзя т.к. это одна транзакция и он открыт во время нее.

До установки SP1 процедура выполнялась 40 мин., а сейчас 2 часа (пока не заканчивается место на диске) и все умирает.
30 сен 11, 11:11    [11360356]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
Сам по себе
select sum(field)
  where data_id > 31
выполняется за 41 сек, а вот когда это все начинается INSERT в цыкле то уже траблы. Может подскажете в чем может быть проблема или я даже не знаю.
30 сен 11, 11:42    [11360731]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Вы уже проверили, что данных у вас вставляется ровно столько же?
30 сен 11, 11:45    [11360784]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
Гавриленко Сергей Алексеевич
Вы уже проверили, что данных у вас вставляется ровно столько же?
Как это можно проверить если процедура не завершается до конца. По простому SELECT идет ответ 840 тыс.

В предыдущих постах написал порцию в 240 тыс. не для той процедуры!
30 сен 11, 11:52    [11360880]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
Я не пойму вот что: простое переливание таблиц с одного сервера на другой (3.4 млн. строк) создает 1ГБ лога. Это притом что результирующие таблицы весят 400МБ (заливка в пустую таблицу, без индексов)!!!! Добавление инструкции WITH (TABLOCK) дает результат в 7МБ лога. Т.е. видно что условия для BULK INSERT соблюдены и работают.
Но мне надо загружать в таблицу фактов, с кластеризованным индексом, данные. А его наличие не попадает под требования операций с минимальным журналированием.
MSDN
Если у таблицы есть кластеризованный индекс, и он пуст, будет вестись минимальный журнал и страниц данных, и страниц индекса. И наоборот, если у таблицы есть непустой кластеризованный индекс, будет вестись полный журнал и страниц данных, и страниц индекса независимо от модели восстановления.

Как поступить?
Может заливать остатки за период в пустую таблицу без индекса, а потом перелить ее в таблицу фактов? Решит ли это проблему?
30 сен 11, 12:49    [11361579]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
mihami
Я не пойму вот что: простое переливание таблиц с одного сервера на другой (3.4 млн. строк) создает 1ГБ лога. Это притом что результирующие таблицы весят 400МБ (заливка в пустую таблицу, без индексов)!!!! Добавление инструкции WITH (TABLOCK) дает результат в 7МБ лога. Т.е. видно что условия для BULK INSERT соблюдены и работают.
Но мне надо загружать в таблицу фактов, с кластеризованным индексом, данные. А его наличие не попадает под требования операций с минимальным журналированием.
MSDN
Если у таблицы есть кластеризованный индекс, и он пуст, будет вестись минимальный журнал и страниц данных, и страниц индекса. И наоборот, если у таблицы есть непустой кластеризованный индекс, будет вестись полный журнал и страниц данных, и страниц индекса независимо от модели восстановления.



http://msmvps.com/blogs/gladchenko/archive/2010/03/09/1761298.aspx
Если операция INSERT…SELECT направлена в кластеризованный индекс, эта операция будет протоколироваться минимально, при условии, что будет активизирован флаг трассировки 610. Обратите внимание, что минимальное протоколирование используется даже без подсказки TABLOCK. Это означает, что может существовать несколько параллельных инструкций INSERT…SELECT, которые вставляют в таблицу данные в одно и то же время и в режиме минимального протоколирования. У такой возможности тоже есть несколько ограничений. Для получения более подробной информации, прочтите главу: "Массовая загрузка при наличии индексов".
30 сен 11, 13:03    [11361680]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
mihami
Member

Откуда:
Сообщений: 79
Гавриленко Сергей Алексеевич,

mihami
Пробовал уже этот запрос выполнять с
DBCC TRACEON (610,-1)
и всеравно результат тот же. Я уже просто потерялся.

или я неправильно прописал инструкцию?
30 сен 11, 13:10    [11361750]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Snirk
Member

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

Даже при Full recovery model ситуация описанная Вами не очень реальна (слишком уж существенный рост)... Если вчера работало, а сегодня нет - нужно выяснять что произошло ночью.

На первый взгляд такое поведение можно объяснить бесконечным циклом. Проверьте еще раз внимательно. Например, в Вашем примере алгоритмической структуры можно и i=i+1 потерять или не там его расположить... Думаю реальный текст процедуры может больше помочь для понимания.
30 сен 11, 13:22    [11361894]     Ответить | Цитировать Сообщить модератору
 Re: После установки SP1 на SQL Server 2008 R2 начал бешенно расти log  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1557
а что покажет для вашей базы запрос?
select log_reuse_wait, log_reuse_wait_desc, * from sys.databases
30 сен 11, 15:36    [11363454]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить