Перенос некоторых таблиц в другую MSSQL БД

Здравствуйте.
В связи с большим размером некоторых таблиц логов ТС (пример: tbl_OfferingInMovementLog) и их дальнейшим разрастанием и ограниченным местом на диске с базой Террасофта возникла проблема с нехваткой места.
Возможно ли перенести некоторые таблицы логов в другую БД. БД будет находится на этом же сервере MSSQL, только файл новой БД будет лежать на другом диске.

Нравится

11 комментариев

Можно попробовать создать представление(view) с именем tbl_OfferingInMovementLog, в котором прописать

select * from myNewDB.dbo.tbl_OfferingInMovementLog

Также прописать триггеры InsteadOfInsert, InsteadOfUpdate для этой вьюхи:

insert into myNewDB.dbo.tbl_OfferingInMovementLog
select * from inserted

А таблицу tbl_OfferingInMovementLog удалить из БД Террасофт, перекинув все данные в копию таблицы в другой базе.

Но, это конечно, так сказать костыль. Просто перенести всю базу нельзя? Или, к примеру, чистить таблицу с логами по JOB'У каждый месяц\пол года\год?

Но, это конечно, так сказать костыль. Просто перенести всю базу нельзя? Или, к примеру, чистить таблицу с логами по JOB'У каждый месяц\пол года\год?

Чистить таблицы логов не получится, т.к. нужно иметь всю историю. С просто перенести всю базу есть некоторые сложности.
Также хотелось бы перенести таблицу tbl_Files, которая на данный момент занимает больше всего места и имеет тенденцию разрастаться в некоторой повышающей прогрессии.
Эту таблицу наверное не получиться перенести с помощью вышеприведенного "костыля"?

Других вариантов переноса таблиц нет?

Если перенести некоторые таблицы в отдельную файловую группу, то по идее, это делается на урове SQL сервера, и Terrasoft даже не должен это заметить

С другой стороны, было бы замечательно часть данных (логи и файлы, например) вынести вообще в отдельную базу, чтобы поменьше мучиться с её резервным копированием и созданием тестовых сред


Эту таблицу наверное не получиться перенести с помощью вышеприведенного "костыля"?

получится.

Здравствуйте.
Что касается переноса таблицы tbl_Files с помощью, вышеописанного, механизма то, по идее, для базы не должно быть разницы в том, что это за таблица. По поводу альтернативной файловой группы - вариант, но это уже чисто администрирование сервера БД и нужно проверять. Это подойдёт, если проблема с местом на диске. Но если всё это рассматривается по причине использования SQL Express и база упирается в предельный объём, то вариант с файловой группой не поможет, так как СУБД всё равно будет видеть базу как одно целое и соответственно будет считать её объём, как сумму размера файловых групп.
Вынести часть таблиц в отдельную базу не получится в виду архитектуры приложения (при подключении указывается одна база данных).

по поводу переноса файлов (tbl_Files) из БД, напомню, есть вариант с Filestream http://www.community.terrasoft.ru/forum/topic/7454

"Котенко Александр" написал:Вынести часть таблиц в отдельную базу не получится в виду архитектуры приложения (при подключении указывается одна база данных).

Были ADO-подключения отдельных таблиц?

Да, можно и через ADO. Но инсерты, апдейты нужно будет все ровно прописывать руками. Лично мне уж проще через вьюху+триггеры.

А повлияет ли перенос файлов + логи в другую БД с помощью вьюхи+триггеры на увеличение быстродействия клиента в целом (или наоборот быстродействие замедлится)? Или же значение быстродействия не зависит, где будут находится эти таблицы - в общей БД или в другой.
И какие есть возможности увеличения быстродействия Клиента террасофт? Оптимизация запросов, увеличение оперативной памяти на сервере/клиенте ...или ещё что-то?

"Alex GF" написал:Оптимизация запросов, увеличение оперативной памяти на сервере/клиенте

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

Показать все комментарии