Главная » Файлы » Программируем в 1С » 1С и SQL |
Скачивать материалы с сайта, могут только зарегистрированные пользователи.
Для регистрации заполните два поля ниже!
Через минуту Вы получите "Гостевой доступ"
2013 Май 29, 12:53 | |
Решение проблемы, при удалении большого количества документов. (250 000) Когда SQl «выжрал» всю память и свободное место на диске. --------------------------------------------- Иногда возникает ситуация, когда нужно удалить большое
количество документов (например, 250 000!). И как вы не стараетесь, сервер SQL «съедает» сперва всю оперативную память, а затем
и все место на диске (например, диске С:). Если у вас возникали подобные ситуации, то вот способ,
который поможет вам с этой проблемой. Решается запуском VBS скрипта. Что он делает, создает подключение через COM к информационной
базе, (клиент серверный вариант работы),
запускает внешнюю обработку и вызывает экспортную процедуру. При этом вам не надо запускать 1С - ку ! Обработка (модуль
объекта): Чтоб сделать экспортную процедуру код пишем в модуле объекта обработки. Процедура run() Экспорт ДЛя НН = 1 По Метаданные.Документы.Количество() Цикл ИмяДок =
Метаданные.Документы.Получить(НН-1).Имя; Запрос = НОвый Запрос; Запрос.Текст
= "ВЫБРАТЬ |Док.Ссылка
КАК Док_ |ИЗ
Документ." + ИмяДок + " КАК Док"; Выборка
= Запрос.Выполнить().Выбрать(); Пока
Выборка.Следующий() Цикл ДокОБ
= Выборка.Док_.ПолучитьОБъект(); ДокОБ.Удалить(); КонецЦикла; КонецЦикла; ------------------------------------------------------------------------------------------------- VBS Скрипт: Set v82 =
CreateObject("V82.Application") res = v82.Connect("Srvr = IPАДРЕСС;Ref=ИМЯБАЗЫ;Usr=ПОЛЬЗОВАТЕЛЬ;Pwd=ПАРОЛЬ") set obr =
v82.ExternalDataProcessors.Create("d:\temp\del_doc.epf") obr.run() v82=null obr=null ------------------------------------------------------------------------------------------------- Во второй строке укажите свои параметры подключения к ИБ. | |
Просмотров: 2069 | Загрузок: 47 | |
Выразить благодарность - Поделиться с друзьями!
Всего комментариев: 0 | |