Вопрос

Добрый день!

Данные:
клиент версии 3.3.2.275
база ms sql 2005

Задачи
1. Удалить все письма (всех пользователей) из БД.
2. Удалить логи.
3. Уменьшить размер БД другими способами – если есть какой-то способ (кроме шринка).

По первой задаче - В тестовой базе скл запросом удалили данные в таблицах dbo.tbl_MailMessage, dbo.tbl_MailMessageLog, dbo.tbl_MailMessageRight – но на сколько это правильно вопрос…
По второй задаче - если поступить также скл запросом - вопрос какие таблицы чистить?

Есть варианты правильного решения указанных задач (может штатные средства террасофт)?

У меня такой же вопрос

5 комментариев
Лучший ответ

Насколько я помню, то готовых утилит для очистки писем и логов в 3-ке не было. Решение только написание своих скриптов.

Чтобы понять в какой таблице хранятся логи, запустите sql-профайлер, перейдите на вкладку с логами в 3-ке и посмотрите в sql-профайлере, в какую таблицу пойдет запрос.

Ещё для уменьшения размера БД можно очистить таблицу процессов и их элементов (если процессы использовались).

Также можно посмотреть, что содержится в таблице История и удалить лишнее.

В любом случае нужно понимать, что, если с базой данных активно работают пользователи, то её размер будет расти.

Насколько я помню, то готовых утилит для очистки писем и логов в 3-ке не было. Решение только написание своих скриптов.

Чтобы понять в какой таблице хранятся логи, запустите sql-профайлер, перейдите на вкладку с логами в 3-ке и посмотрите в sql-профайлере, в какую таблицу пойдет запрос.

Ещё для уменьшения размера БД можно очистить таблицу процессов и их элементов (если процессы использовались).

Также можно посмотреть, что содержится в таблице История и удалить лишнее.

В любом случае нужно понимать, что, если с базой данных активно работают пользователи, то её размер будет расти.

При удалении записей таблицу прав отдельно чистить не нужно, там каскадная связь и записи о правах удалятся вслед за записями основной таблицы сами.

Логи в других разделах устроены аналогично, плюс tbl_DatabaseLog для записей самого раздела логов.

Кроме почты и логов, много места могут занимать таблицы файлов каждого раздела.

Вообще, для быстрого поиска, куда делось место, можно воспользоваться стандартным отчётом «Disk Usage by Top Tables» в Management Studio:

 

Алла Савельева 

 Спасибо,   sql-профайлер посмотрю 

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

Т.е.  если SQL запросом удаляю только dbo.tbl_MailMessage,  то dbo.tbl_MailMessageRight очистится сама?
Не понимаю как это работает... на уровне запуска клиента под супервизором запускается какой-то скрипт?

«Disk Usage by Top Tables»  так и нашел dbo.tbl_MailMessage

В TSAdmin у связи в таблице прав стоит галка «каскадная связь». На уровне базы удаление в связанных таблицах работает при помощи триггера tr_tbl_MailMessage_ID и аналогичных для каждого раздела.

Зверев Александр,

Ясно , спасибо

Войдите или зарегистрируйтесь, чтобы комментировать
Публикация

При синхронизации полей раздела "Контакты" с MS Outlook возникает ситуация, когда информацию из некоторых полей нет надобности переносить.
Для того, чтобы сократить число синхронизируемых полей, достаточно закомментировать соответствующие строки в функции SetContactInfoFromMSOutlook скрипта scr_MSOutlookContactSynchronization. В этом скрипте описан перечень полей, информация которых должны быть синхронизирована. Вам необходимо закомментировать те поля, которые нет надобности синхронизировать, сохранить внесенные изменения, перезапустить рабочее приложение Terrasoft CRM и протестировать работоспособность системы.

Желаю удачи!

С уважением,
Мельникова Екатерина

Поделиться

0 комментариев
Войдите или зарегистрируйтесь, чтобы комментировать