AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.06.2004, 13:50   #1  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Очистка журнал баз данных
Всем здравствуйте.

Посоветуйте пожалуйста, как лучше и с наименьшими затратами времени очистить журнал базы данных: Администрирование - Запросы - Журнал базы данных . Кнопка - "Очистка журнала".

Заранее благгдарен.
Старый 13.06.2004, 14:20   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Очистить один раз или очищать регулярно?

Если один раз - просто очистить таблицу SysDatabaseLog. Скриптом или job-ом - дело вкуса.
Если хочется регулярно удалять старые записи в логе - тривиальное периодическое задание с параметром "Период" (данные хранятся не более это отрезка времени)
Старый 17.06.2004, 14:50   #3  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Изначально опубликовано Vadik
Очистить один раз или очищать регулярно?
Если один раз - просто очистить таблицу SysDatabaseLog. Скриптом или job-ом - дело вкуса.
Как это сделать средствами SQL?
У меня почему-то все время ругается на время соединения с сервером:


[Microsoft] [ODBC SQL Server Driver] Timeout expired
Старый 17.06.2004, 15:01   #4  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Если очистить нужно всю таблицу и
Цитата:
с наименьшими затратами времени
то попробуйте TRUNCATE TABLE.
Пожалуй самый быстры способо, так как при этом в Transaction Log пишется минимум информации.
Старый 17.06.2004, 15:19   #5  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
В середине рабочего дня? Дык.. Люди же в нее пишут.. Вот по lock timeout-у и отваливается
Запланируйте на выполнение ночью

На T-SQL либо так

a) delete SysDatabaseLog

либо так

б) truncate table SysDatabaseLog
Старый 17.06.2004, 16:37   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Забавно, но на днях занимался такой же проблемой. При помощи друга был написан такой sql скрипт.
PHP код:
declare cur cursor 
for select top 1000 recid from dbo.sysdatabaselog where CREATEDDATE between '01.01.1900' and '04.01.2004'
declare @i int, @s varchar 

set 
@= (select count(recidfrom dbo.sysdatabaselog where CREATEDDATE between '01.01.1900' and '04.01.2004')
set @= @1000

while @0
begin 

    open cur
    fetch cur 
    
while @@FETCH_STATUS 0
    begin
        delete from dbo
.sysdatabaselog where current of cur
        fetch cur into 
@s
    end

    close cur
    set 
@= @1

end

deallocate cur 
Старый 17.06.2004, 17:12   #7  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Мощный скрипт

А можно вопрос? Зачем курсор? Зачем вычислять некий "размер пачки записей" (set @i = @i / 1000)? Тем более что записи все равно удаляются по одной

Если уж так хочется удалять записи пачками: более короткие варианты принимаются?

PHP код:
set rowcount 1000

doWork
:
    
delete SysDatabaseLog
    
if @@rowcount goto doWork
    
set rowcount 0 
А вообще я для этого пакетное задание писал. Один раз настроил и забыл о нем
Старый 17.06.2004, 17:21   #8  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Изначально опубликовано Vadik
В середине рабочего дня? Дык.. Люди же в нее пишут.. Вот по lock timeout-у и отваливается
Запланируйте на выполнение ночью

На T-SQL либо так

a) delete SysDatabaseLog

либо так

б) truncate table SysDatabaseLog
Пробовал еще два этих метода. Ошибка такая же. В системе никого при этом не было.
Старый 17.06.2004, 17:35   #9  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
select count(recid) from SysDatabaseLog
что возвращает ? (если конечно он что-то вернет )
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Импорт данных в журнал ГК из Excel Toshk DAX: Функционал 6 23.10.2008 13:46
Журнал базы данных для таблиц администрирования Roman DAX: Администрирование 3 29.05.2008 16:04
Журнал базы данных Sada DAX: Администрирование 32 23.06.2005 12:09
Журнал спецификаций Lol14 DAX: Функционал 13 16.06.2003 13:10
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:16.