Здравствуйте.
В связи с большим размером некоторых таблиц логов ТС (пример: tbl_OfferingInMovementLog) и их дальнейшим разрастанием и ограниченным местом на диске с базой Террасофта возникла проблема с нехваткой места.
Возможно ли перенести некоторые таблицы логов в другую БД. БД будет находится на этом же сервере MSSQL, только файл новой БД будет лежать на другом диске.
Нравится
Можно попробовать создать представление(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" написал:Оптимизация запросов, увеличение оперативной памяти на сервере/клиенте
Оптимизация скриптов, датасетов, запросов, индексов, представлений, увеличение оперативной памяти и производительность ЦП и файловой системы на сервере и клиенте.