Для того чтобы организовать торговлю в Интернет-магазине компании потребуется наличие всего одного Менеджера, контролирующего процесс автоматической работы магазина как из офиса компании, так и из любого места в Сети.
Каталог прайсов интернет магазинов - разместите свой прайс бесплатно
  Главная  |    О компании  |    Новости  |    Статьи  |    Форум  |    Клиенты  |    Обратная связь  |    Карта сайта
Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль.
Запомнить
Пароль
   
Форум
 SQL Server мелкософт копирайтед » Работа с базой данных
        как безболезненно уменьшить размер базы с разросшимся dbo.TBL_LOG и правильно удалять старые бэкапы
Первая страница « 1 2 Последняя страница
как безболезненно уменьшить размер базы с разросшимся dbo.TBL_LOG и правильно удалять старые бэкапы

06.11.2016 20:54

xMaximusx


Посетитель

Количество сообщений   16
Зарегистрирован:   22-04-2016, 18:45:22
Рост размера базы данных зависит от выбранной модели восстановления. Так же это может быть вызвано залипшими транзакциями, такое иногда бывает. Если размер лога большой, то после полного бекапа его можно периодически обрезать командой SHRINK.

Таблицу логов тоже можно почистить как угодно, в том числе удалить логи импорта товаров поставщиков которых уже нет. Другое дело, что без опыта работы в МС СКЛ туда лучше не лезть.
Пользователь оффлайн Распечатать
 

06.11.2016 21:12

sonic1978


Пользователь iNETsHOP

Тема начата

Количество сообщений   91
Зарегистрирован:   27-02-2016, 15:29:39
580 MB сейчас вместо 5 GB. мне главное чтобы работало и работало быстро. всего изучить нельзя. перенос занял у меня 1 день. изучение тонкостей освобождения зарезервированного б.д. места на диске мне показалось больше времени займет да и результат не гарантирован, т.к. знаю вопрос не досконально.
Пользователь оффлайн Распечатать
 

23.08.2018 17:33

compfriends


Пользователь iNETsHOP

Количество сообщений   19
Зарегистрирован:   15-02-2012, 10:06:37
Ошибка!
Хотел и почистить историю, при запуске sql-запроса выдает ошибку.



Прикрепленные файлы
SQL.PNG   ( 4 Просмотров | 8.7 KB )
Пользователь оффлайн Распечатать
 

24.08.2018 21:14

support


Support


Количество сообщений   1174
Зарегистрирован:   11-04-2008, 19:11:57
На какой версии СУБД MSSQL Server вы запускаете SQL-запрос который выложен в этой ветке? Он предназначен для версии 2005 и более поздних.
Пользователь оффлайн Распечатать
 

27.08.2018 09:03

compfriends


Пользователь iNETsHOP

Количество сообщений   19
Зарегистрирован:   15-02-2012, 10:06:37
Насколько я понял у нас стоит 2000 версия СУБД MSSQL Server. А можно подредактировать запрос?
Пользователь оффлайн Распечатать
 

27.08.2018 23:09

support


Support


Количество сообщений   1174
Зарегистрирован:   11-04-2008, 19:11:57
Удаление лога редактирования товаров поставщика.
Код

set nocount on;
DECLARE @iS_ID int, @iSG_ID int, @iLOG_ID int, @sLOG_FIELD_NAME varchar(150);
DECLARE cSuppliers CURSOR LOCAL FOR
select
S_ID
from TBL_SUPPLIERS s
where s.S_ID = 1111
order by s.S_ID
;

OPEN cSuppliers;
FETCH NEXT FROM cSuppliers INTO @iS_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
DECLARE cSuppliersGoods CURSOR LOCAL READ_ONLY FOR
select
SG_ID
from TBL_SUPPLIERS_GOODS sg
where sg.SG_S_ID = @iS_ID;
PRINT @iS_ID;
OPEN cSuppliersGoods;
FETCH NEXT FROM cSuppliersGoods INTO @iSG_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN

DECLARE cLog CURSOR LOCAL READ_ONLY FOR
select LOG_FIELD_NAME
from TBL_LOG l
where l.LOG_TBL_NAME = 'TBL_SUPPLIERS_GOODS'
and l.LOG_PK = @iSG_ID
and l.LOG_TYPE = 2
group by LOG_FIELD_NAME
having count(*) > 1;

OPEN cLog;
FETCH NEXT FROM cLog INTO @sLOG_FIELD_NAME;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
DECLARE cLogValues CURSOR LOCAL READ_ONLY FOR
select l.LOG_ID
from TBL_LOG l
where l.LOG_TBL_NAME = 'TBL_SUPPLIERS_GOODS'
and l.LOG_PK = @iSG_ID
and l.LOG_TYPE = 2
and l.LOG_FIELD_NAME = @sLOG_FIELD_NAME
and not l.LOG_ID in (
select TOP 1 l.LOG_ID
from TBL_LOG l
where l.LOG_TBL_NAME = 'TBL_SUPPLIERS_GOODS'
and l.LOG_PK = @iSG_ID
and l.LOG_TYPE = 2
and l.LOG_FIELD_NAME = @sLOG_FIELD_NAME
order by LOG_DATE DESC
)/* FOR UPDATE*/;

OPEN cLogValues;
FETCH NEXT FROM cLogValues INTO @iLOG_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
DELETE FROM TBL_LOG
WHERE LOG_ID = @iLOG_ID;

FETCH NEXT FROM cLogValues INTO @iLOG_ID;
END;
CLOSE cLogValues;
DEALLOCATE cLogValues;

FETCH NEXT FROM cLog INTO @sLOG_FIELD_NAME;
END;
CLOSE cLog;
DEALLOCATE cLog;

FETCH NEXT FROM cSuppliersGoods INTO @iSG_ID;
END;
CLOSE cSuppliersGoods;
DEALLOCATE cSuppliersGoods;

FETCH NEXT FROM cSuppliers INTO @iS_ID;
END;
CLOSE cSuppliers;
DEALLOCATE cSuppliers;


В строке where s.S_ID = 1111 вместо кода 1111 укажите код вашего поставщика из справочника поставщиков.
Пользователь оффлайн Распечатать
 

Распечатать  |  Следующая тема  |  Предыдущая тема
Перейти
Первая страница « 1 2 Последняя страница  

Статистика форума
Тем: 474, Сообщений: 3119, Пользователей: 1967
Приветствуем новичка по имени mv-inbiscuit
Ближайшие дни рождения
Сегодня именинников нет


iNETsHOP - программа для формирования каталога товаров интернет-магазина и обработки прайсов Copyright 2007-2015 "Программа iNETsHOP - работа с прайс-листами поставщиков для интернет магазинов ®" iNETsHOP - обработка, объединение, анализ прайсов поставщиков и конкурентов