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

Откуда:
Сообщений: 1532
При закачке большого (70Гб, 355 млн событий) .trc файла в таблицу с помощью fn_trace_gettable
SELECT IDENTITY(int, 1, 1) AS RowNumber, * INTO tablename
FROM fn_trace_gettable('C:\trace_1.trc', default)
где-то после 100Гб роста файла базы данных, куда качается, процесс останавливается с ошибкой 802, майкрософт советует увеличить буффер пуллз.
Я в курсе, про то, что фича использует tempdb, как буфер, соответственно, дал место и для этой базы (в итоге по 500Гб дал и на tempdb и на конечную базу), сделал режим конечной базы симплрекавери, чтобы не рос лог, сделал авторост по гигабайту для tempdb и базы назначения.
Сервер мощный, памяти свободной - и оперативной и на дисках в процессе закачки дофига остается.
Win2003ES, MSSQL2005SP3.
Какой-такой "буффер пуллз" нужно увеличить, чтобы процесс дошел до оргазма?:)
Спасибо.
3 дек 09, 19:16    [8016566]     Ответить | Цитировать Сообщить модератору
 Re: fn_trace_gettable ошибка 802  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
3lqs
При закачке большого (70Гб, 355 млн событий) .trc файла в таблицу с помощью fn_trace_gettable
SELECT IDENTITY(int, 1, 1) AS RowNumber, * INTO tablename
FROM fn_trace_gettable('C:\trace_1.trc', default)
где-то после 100Гб роста файла базы данных, куда качается, процесс останавливается с ошибкой 802, майкрософт советует увеличить буффер пуллз.
Я в курсе, про то, что фича использует tempdb, как буфер, соответственно, дал место и для этой базы (в итоге по 500Гб дал и на tempdb и на конечную базу), сделал режим конечной базы симплрекавери, чтобы не рос лог, сделал авторост по гигабайту для tempdb и базы назначения.
Сервер мощный, памяти свободной - и оперативной и на дисках в процессе закачки дофига остается.
Win2003ES, MSSQL2005SP3.
Какой-такой "буффер пуллз" нужно увеличить, чтобы процесс дошел до оргазма?:)
Спасибо.
Извиняюсь, выделенное следует читать как: "100Гб роста tempdb", то есть функция сначала все льет в tempdb, а оттуда переливает в файл базы назначения - так нормально и происходит в случае небольших (гигов 10) файлов, но в случае с трейсовым файлом в описанных 70 Гб - ошибка 802.
3 дек 09, 19:36    [8016607]     Ответить | Цитировать Сообщить модератору
 Re: fn_trace_gettable ошибка 802  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
Да, если сохранять его из Профайлера ("Save as table") - то процесс нормально заканчиватся, но за семь дней - я читал описание такого случая на этом форуме - здесь tempdb колбасится сама с собой маленькими пакетами рид-райт. Но в случае с функцией - все очень быстро, но 802:)
3 дек 09, 19:39    [8016618]     Ответить | Цитировать Сообщить модератору
 Re: fn_trace_gettable ошибка 802  [new]
iljy
Member

Откуда:
Сообщений: 8711
3lqs
При закачке большого (70Гб, 355 млн событий) .trc файла в таблицу с помощью fn_trace_gettable
SELECT IDENTITY(int, 1, 1) AS RowNumber, * INTO tablename
FROM fn_trace_gettable('C:\trace_1.trc', default)
где-то после 100Гб роста файла базы данных, куда качается, процесс останавливается с ошибкой 802, майкрософт советует увеличить буффер пуллз.
Я в курсе, про то, что фича использует tempdb, как буфер, соответственно, дал место и для этой базы (в итоге по 500Гб дал и на tempdb и на конечную базу), сделал режим конечной базы симплрекавери, чтобы не рос лог, сделал авторост по гигабайту для tempdb и базы назначения.
Сервер мощный, памяти свободной - и оперативной и на дисках в процессе закачки дофига остается.
Win2003ES, MSSQL2005SP3.
Какой-такой "буффер пуллз" нужно увеличить, чтобы процесс дошел до оргазма?:)
Спасибо.

Вообще лог в simple режиме освобождается при записи checkpoint, и из него удаляются записи ЗАВЕРШИВШИХСЯ транзакций. А если у вас все это идет в одной транзакции - лог будет тоже расти.
3 дек 09, 19:48    [8016639]     Ответить | Цитировать Сообщить модератору
 Re: fn_trace_gettable ошибка 802  [new]
3lqs
Member [заблокирован]

Откуда:
Сообщений: 1532
iljy
3lqs
При закачке большого (70Гб, 355 млн событий) .trc файла в таблицу с помощью fn_trace_gettable
SELECT IDENTITY(int, 1, 1) AS RowNumber, * INTO tablename
FROM fn_trace_gettable('C:\trace_1.trc', default)
где-то после 100Гб роста файла базы данных, куда качается, процесс останавливается с ошибкой 802, майкрософт советует увеличить буффер пуллз.
Я в курсе, про то, что фича использует tempdb, как буфер, соответственно, дал место и для этой базы (в итоге по 500Гб дал и на tempdb и на конечную базу), сделал режим конечной базы симплрекавери, чтобы не рос лог, сделал авторост по гигабайту для tempdb и базы назначения.
Сервер мощный, памяти свободной - и оперативной и на дисках в процессе закачки дофига остается.
Win2003ES, MSSQL2005SP3.
Какой-такой "буффер пуллз" нужно увеличить, чтобы процесс дошел до оргазма?:)
Спасибо.

Вообще лог в simple режиме освобождается при записи checkpoint, и из него удаляются записи ЗАВЕРШИВШИХСЯ транзакций. А если у вас все это идет в одной транзакции - лог будет тоже расти.
Лог по факту не растет - ни для tempdb, ни для базы назначения, если на назначении симпл. Схема такая - сначала растет tempdb (примерно 3 размера трейсфайла), потом останавливается, и начинает расти назначение - тоже где-то до 3-х размеров трейс-файла - это в случае, если файлы закачиваются успешно (небольшие то есть). При этом логам я расти не запрещал - ни для tempdb ни для назначенния - анристиркед, и места на диске под это у них тоже предостаточно.
3 дек 09, 19:54    [8016658]     Ответить | Цитировать Сообщить модератору
 Re: fn_trace_gettable ошибка 802  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
3lqs,

смотри в сторону класса TraceFile - возможно тебе будет проще организовать "ручную" загрузку данных в целевую базу.
3 дек 09, 21:12    [8016819]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить