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

Откуда:
Сообщений: 12
Привет всем, долго лазил по инету искал ответы на мои вопросы, но вразумительного так ничего и не нашел.
Задача стоит следующая, нам в компанию внедряли DocsVision, не оч. хороший подрядчик) Сейчас база весит 44гига, т.к. логируется каждый "пук" в DocsVision %) почти весь объем этой базы как раз занимает таблица [dbo].[dvsys_log], из-за этого работа в DV становится с каждым месяцев все тормознутее. Я хотел бы подменить эту таблицу на идентичную, но уже пустую, т.к. 44гига делитить долго.
Пробовал просто импортировать эту идентичную таблицу, поменять им имена, но после этого в DV не получает ничего сделать. Читал про то что надо получить какой-то лок на таблицу, а потом менять местами, но не вкурил о чем речь)
20 сен 12, 09:13    [13193580]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Glory
Member

Откуда:
Сообщений: 104760
А просто удалить данные частями из [dbo].[dvsys_log] что мешает ?

Сообщение было отредактировано: 20 сен 12, 09:20
20 сен 12, 09:20    [13193604]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Damag3
Member

Откуда:
Сообщений: 12
Glory
А просто удалить данные частями из [dbo].[dvsys_log] что мешает ?

Да в принципе ничего не мешает, только времени будет больше потрачено чем подменить) Вообще в SQL не шарю, нужно ли будет при удалении частями блокировать таблицу? И правильный ли запрос:
Delete Top (xxx) from [DV].[dbo].[dvsys_log]

Еще наткнулся на запрос:
DELETE FROM [DV].[dbo].[dvsys_log]
      WHERE DATE<'01.01.2012'

Тогда каким лучше запросом? Почистить старые логи, оставить месяц, либо чистить частями полностью? Косяков при чистке частями не может возникнуть?
20 сен 12, 09:26    [13193623]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Damag3
Тогда каким лучше запросом?

Не важно, если цель - полная очистка. Важен размер удаляемых за раз данных.
20 сен 12, 09:32    [13193653]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Damag3
Member

Откуда:
Сообщений: 12
Glory
Не важно, если цель - полная очистка. Важен размер удаляемых за раз данных.

Оке, пасиба - попробую. Просто пытался полностью сразу делит всей таблицы сделать, на ночь оставлял, приходил была ошибка = уже не помню какая. Но частями думаю прокатит. Там просто 26703947 строк)
20 сен 12, 09:39    [13193698]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Иногда TRUNCATE TABLE можно выполнить.
Если надо всю таблицу надо почистить,
FK нет и прав на это хватает.
20 сен 12, 09:45    [13193739]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
aleks2
Guest
iap
Иногда TRUNCATE TABLE можно выполнить.
Если надо всю таблицу надо почистить,
FK нет и прав на это хватает.

Ты щас научишь. Потом будешь учить откатывать нежурналируемые операции.
20 сен 12, 10:37    [13194113]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Damag3
Member

Откуда:
Сообщений: 12
aleks2
Ты щас научишь. Потом будешь учить откатывать нежурналируемые операции.

TRUNCATE TABLE лучше не выполнять? :) Я в принципе забэкапил базу)
20 сен 12, 10:51    [13194210]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1741
aleks2
iap
Иногда TRUNCATE TABLE можно выполнить.
Если надо всю таблицу надо почистить,
FK нет и прав на это хватает.

Ты щас научишь. Потом будешь учить откатывать нежурналируемые операции.


А можно здесь и сейчас научить?

А ошибка при удалении всей таблицы разом у топик-стартера - это не может быть достижение журналом максимального размера? Сам так обломался один раз.
20 сен 12, 10:52    [13194222]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Damag3
Member

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

Не помню дословно, пробовал на той неделе, но скорее всего да, типо журнал транзакций переполнен)
20 сен 12, 10:53    [13194243]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
DaniilSeryi
aleks2
пропущено...

Ты щас научишь. Потом будешь учить откатывать нежурналируемые операции.


А можно здесь и сейчас научить?

А ошибка при удалении всей таблицы разом у топик-стартера - это не может быть достижение журналом максимального размера? Сам так обломался один раз.

Выполнять удаление по TRUNCATE TABLE без предварительного бэкапа БД вообще не разумно. И не путайте тёплое с мягким у ТСа это именно таблица внутри БД [dbo].[dvsys_log] а не журнал транзакций.
20 сен 12, 10:58    [13194285]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
stavgreengo
Member

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

Не помню дословно, пробовал на той неделе, но скорее всего да, типо журнал транзакций переполнен)

А вот чтобы он не переполнялся я вам советую сначала перейти на SIMPLE модель восстановления.
20 сен 12, 10:59    [13194293]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Damag3
Member

Откуда:
Сообщений: 12
stavgreengo
А вот чтобы он не переполнялся я вам советую сначала перейти на SIMPLE модель восстановления.

SIMPLE и стоит) В итоге, в конце рабочего дня попробую TRUNCATE TABLE.
20 сен 12, 11:04    [13194338]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
увеличить время удаления также можно предварительным сносом всех индексов с таблицы
20 сен 12, 11:08    [13194367]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
DaniilSeryi
Member

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

Никто ничего не путает. Я писал про то, что, возможно, при удалении ТАБЛИЦЫ возникала ошибка переполнения ЖУРНАЛА ТРАНЗАКЦИЙ.
20 сен 12, 11:31    [13194601]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
DaniilSeryi
stavgreengo,

Никто ничего не путает. Я писал про то, что, возможно, при удалении ТАБЛИЦЫ возникала ошибка переполнения ЖУРНАЛА ТРАНЗАКЦИЙ.

я понял, но уже не актуально, у ТСа SIMPLE
20 сен 12, 11:44    [13194717]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
stavgreengo
DaniilSeryi
stavgreengo,

Никто ничего не путает. Я писал про то, что, возможно, при удалении ТАБЛИЦЫ возникала ошибка переполнения ЖУРНАЛА ТРАНЗАКЦИЙ.

я понял, но уже не актуально, у ТСа SIMPLE
а что в SIMPLE журнал не пишется вообще что ли?
20 сен 12, 20:32    [13198534]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Damag3
Member

Откуда:
Сообщений: 12
Всем пасибо. Воспользовался TRUNCATE TABLE, все 44 гига удалились мгновенно, терь база весит 2 гига :D
Ток чет ДоксВижену не на много легче стало %)
21 сен 12, 10:17    [13200117]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31446
stavgreengo
А вот чтобы он не переполнялся я вам советую сначала перейти на SIMPLE модель восстановления.
Не повлияет для одиночной операции удаления.

Для цикла с удалением порциями да, можно.
Но ведь транзакции потеряются. Еслиб ТС не нужны были транзакции и возможность восстановления из лога, он бы вообще из Simple не переключал.
21 сен 12, 10:53    [13200383]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34014
Блог
Damag3
Ток чет ДоксВижену не на много легче стало %)


Посмотрите в сторону статистики и индексов.
21 сен 12, 11:21    [13200553]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Mind
stavgreengo
пропущено...

я понял, но уже не актуально, у ТСа SIMPLE
а что в SIMPLE журнал не пишется вообще что ли?

в определение Microsoft "минимальное протоколирование", индекс перестраивать пробовали на simple ?
21 сен 12, 11:28    [13200605]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Damag3
Всем пасибо. Воспользовался TRUNCATE TABLE, все 44 гига удалились мгновенно, терь база весит 2 гига :D
Ток чет ДоксВижену не на много легче стало %)

Да уж, подрядчик у вас действительно был "не очень", поскольку обычно в DocsVision почти сразу включается джоб чистки логов. Поищите в консоли настройки в настройках базы пункт "Пересоздать задания БД", и убедитесь, что у вас SQL Agent запущен. Джоб очистки найдете без проблем по названию.
21 сен 12, 13:29    [13201895]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Damag3
Member

Откуда:
Сообщений: 12
Minamoto
Да уж, подрядчик у вас действительно был "не очень", поскольку обычно в DocsVision почти сразу включается джоб чистки логов. Поищите в консоли настройки в настройках базы пункт "Пересоздать задания БД", и убедитесь, что у вас SQL Agent запущен. Джоб очистки найдете без проблем по названию.

Откаты.. %)
SQL Agent был действительно выключен. Нашел "Пересоздать задания БД" для чего это надо? Не затронет ли это рабочие процессы?)
21 сен 12, 14:36    [13202619]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Damag3
Minamoto
Да уж, подрядчик у вас действительно был "не очень", поскольку обычно в DocsVision почти сразу включается джоб чистки логов. Поищите в консоли настройки в настройках базы пункт "Пересоздать задания БД", и убедитесь, что у вас SQL Agent запущен. Джоб очистки найдете без проблем по названию.

Откаты.. %)
SQL Agent был действительно выключен. Нашел "Пересоздать задания БД" для чего это надо? Не затронет ли это рабочие процессы?)

Лучше производить в нерабочее время, поскольку после пересоздания заданий консоль попросит перезапустить службы.
На рабочие процессы не повлияет, поскольку кнопка только пересоздает 4 джоба для базы Docsvision: джоб очистки лога, джоб удаления неактивных сессий, джоб окончательного удаления карточек, помеченных к удалению и джоб удаления неиспользуемых бинарников.
Настроить параметры очистки лога можно в Журнале - в Навигаторе заходите в "Сервис\Журнал" и там есть "Настройки журнала".
Там же, кстати, и очистка есть ;)
21 сен 12, 15:14    [13202918]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно подменить таблицу в БД ?  [new]
Damag3
Member

Откуда:
Сообщений: 12
Minamoto
Лучше производить в нерабочее время, поскольку после пересоздания заданий консоль попросит перезапустить службы.
На рабочие процессы не повлияет, поскольку кнопка только пересоздает 4 джоба для базы Docsvision: джоб очистки лога, джоб удаления неактивных сессий, джоб окончательного удаления карточек, помеченных к удалению и джоб удаления неиспользуемых бинарников.
Настроить параметры очистки лога можно в Журнале - в Навигаторе заходите в "Сервис\Журнал" и там есть "Настройки журнала".
Там же, кстати, и очистка есть ;)

Оке, спасибо, попробую!)
Джоб очистки искать в SQL именно, или в консоли ДВ? Через Навигатор не получается очистить журнал, кнопка не активна, нужны какие-то права?
21 сен 12, 15:41    [13203202]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить