чистка временной базы

Вопросы по работе подсистемы "Администрирование" в "Дебет Плюс V12"

чистка временной базы

Сообщение jezkir » Вт окт 14, 2014 9:53 am

Есть несколько пользователей, у каждого своя база в mysql - При очитске с Администрирования, все равно остается очень много таблиц, до 12000 (35000 файлов в каталоге базы). Можно ли их удалять в ручную или как правильнее сделать? Может какие таблицы должны постоянно там быть, а какие можно удалять, кто знает?
Аватара пользователя
jezkir
Опытный пользователь
Опытный пользователь
 
Сообщения: 76
Зарегистрирован: Вс апр 19, 2009 4:24 pm

Re: чистка временной базы

Сообщение fruckt » Ср окт 15, 2014 10:20 am

Уточните, каким именно пунктом меню вы пользуетесь, версию программы, и если это возможно, листинг функции clearUserBase из файла JDebet\scripts\dbclear_tmp.js
Аватара пользователя
fruckt
Активист
Активист
 
Сообщения: 21
Зарегистрирован: Чт фев 19, 2009 9:00 am

Re: чистка временной базы

Сообщение jezkir » Ср окт 15, 2014 2:23 pm

Я так понял из функции, он view вообще не чистит. Везде одна версия, последняя, 84-я. База отдельно на сервере. Меню Администрирование - Очистка временной базы - Выполнить очистку

Код: Выделить всё
function clearUserBase(sLogin)
{
   //07.12.12 Яна
   // В БЦ водоканале позже, чем в последней версии в CVS изменена эта программа. Раз там сделали
   //эти изменения, заношу их под CVS, но точно не знаю, нужны ли они для всех.
   if(SUBD==ORACLE)
   {
      //Очистка корзины
      //ExecuteSQL("PURGE DBA_RECYCLEBIN");
   }
   
   var shcema = lpProxy.getDBTemp(sLogin);
   if(!shcema || shcema=="")
      shcema = sLogin;
   var listTables = lpProxy.getDBManager().getTables(shcema, "TABLE");   
   var listViewes = lpProxy.getDBManager().getTables(shcema, "VIEW");
   var nView = listViewes.length;
   var nTable = listTables.length + nView;
   var point = (SUBD == MSSQL ? ".." : ".");
   progressWorked(sLogin);
      
   for (var i in listViewes)
   {      
      progressWorked(sLogin);
      if(String(listViewes[i]).toUpperCase() === tmpTblName.toUpperCase())
         continue;
      var fullTableName = shcema + point + listViewes[i];
      //ExecuteSQL("DROP VIEW " + fullTableName + " CASCADE", false);
   }   
   
   for (var i in listTables)
   {      
      progressWorked(sLogin);
      if(String(listTables[i]).toUpperCase() === tmpTblName.toUpperCase())
         continue;
      var fullTableName = shcema + point + listTables[i];
      if (left(String(listTables[i]).toUpperCase(),4)=="TEMP" && listTables[i].indexOf("_")>0 ){
      //ExecuteSQL("DROP TABLE " + fullTableName, false);
        ExecuteSQL("DROP TABLE " + fullTableName + " CASCADE", false);
      } 
      //if (left(String(listTables[i]).toUpperCase(),5)=="TEST_" && listTables[i].indexOf("_")>0 ){
      //ExecuteSQL("DROP TABLE " + fullTableName, false);
      //  ExecuteSQL("DROP TABLE " + fullTableName + " CASCADE", false);
      //} 
   }
   
   if(SUBD==ORACLE)
   {
      //Очистка корзины
      //ExecuteSQL("PURGE DBA_RECYCLEBIN");
   }
}
Аватара пользователя
jezkir
Опытный пользователь
Опытный пользователь
 
Сообщения: 76
Зарегистрирован: Вс апр 19, 2009 4:24 pm

Re: чистка временной базы

Сообщение fruckt » Чт окт 16, 2014 12:39 pm

Мы пользуемся 52-й версией и у нас код в части ExecuteSQL("DROP VIEW " + fullTableName + " CASCADE", false); не закомментарен. Попробуйте убрать комментарий и провести очистку.
Аватара пользователя
fruckt
Активист
Активист
 
Сообщения: 21
Зарегистрирован: Чт фев 19, 2009 9:00 am


Вернуться в Администрирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8