1с бухгалтерия обновление индекса ппд. О интересных вещах из мира IT, инструкции и рецензии

Механизм полнотекстового поиска в 1С позволяет быстро находить необходимую для пользователя информацию. Данный вид поиска особенно эффективен, если информационная база располагает большим объемом информации, а также точно не известно, где находятся интересующие пользователя данные или как часто бывает, их точное название не известно. Для того чтобы открыть окно управления полнотекстовым поиском необходимо выполнить следующее: пункт меню Операции Управление полнотекстовым поиском .

В данном окошке можно наблюдать три кнопки: Настройка - Включение/Отключение полнотекстового поиска;

Обновить индекс Создание индекса/Обновление индекса; Очистить индекс – обнуление индекса(рекомендуется после обновления всех данных); пункт Разрешить слияние индексов отвечает за слияние основного и дополнительного индекса.

Полнотекстовый поиск осуществляется при помощи полнотекстового индекса. При отсутствии индекса полнотекстовый поиск как таковой не возможен. Для того чтобы поиск имел результат, все необходимые данные должны быть включены в полнотекстовый индекс. Если пользователем введены в базу новые данные, их следует включить в рассматриваемый индекс, иначе они не будут участвовать в поиске. Чтобы этого избежать, необходимо обновлять полнотекстовый индекс. При обновлении система анализирует только определенные типы данных: Строка, Данные ссылочного типа (ссылки на документы, справочники),Число, Дата, ХранилищеЗначения . Если пользователь не имеет прав доступа к определенной информации, то он не сможет увидеть ее в результатах поиска. Следует также помнить и о том, что в свойствах объектов, по которым будет происходить поиск должно быть установлено значение Полнотекстовый Поиск – Использовать , которое задано по умолчанию.

Как вы можете заметить свойство Использовать установлено для всего справочника РегНомера , но сделать это можно и для каждого его реквизита соответствующего типа.

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

Рассмотрим случай автоматического обновления индекса при запуске приложения. Данный случай подходит для однопользовательских баз данных (в качестве однопользовательских баз данных могут выступать такие продукты как 1С Бухгалтерия Базовая, 1С Упрощенка ), так как при большом количестве пользователей обновление будет происходить после запуска приложения каждого из пользователей, что в результате очень сильно скажется на производительности системы.

Для начала создадим общий модуль и назовем его, к примеру ПП. В нем пропишем следующую процедуру:

Процедура ОбновлениеИндексы() Экспорт

ПолнотекстовыйПоиск.ОбновитьИндекс();

КонецПроцедуры

Так же установим свойства как на рисунке.

Затем щелкнем правой кнопкой мыши на названии конфигурации в дереве конфигурации и выполним команду Открыть модуль управляемого приложения. Выберем в маленьком окошке сверху предопределенную функцию ПередНачаломРаботыСистемы и поместим в эту процедуру следующую строчку:

ОбновлениеПолнотекстовогоПоиска.ОбновлениеИндексы ();


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

Теперь рассмотрим случай, когда пользователей несколько. Здесь воспользуемся Регламентными Заданиями (в режиме Конфигуратор: в дереве конфигурации – Общие – Регламентные Задания). В данном случае нас интересуют только два задания: ОбновлениеИндексаПолнотекстовогоПоиска и СлияниеИндексаПолнотекстовогоПоиска. В свойствах этих заданий выберем Расписание и нажмем на сслыку Открыть.

Настраиваем расписания у обоих заданий. Рекомендаций по настройке в данном случае нет, здесь настройка определяется исходя из особенностей работы системы (нагрузки, объема информации, частоты ее обновлениея т.д.). Сами по себе задания работать не будут, нам потребуется иметь запущенный сеанс программы в режиме Предприятия , который и будет отвечать за выполнение этих заданий. Сразу следует заметить, что данный вариант работы используется для файловой системы. В этом сеансе должна быть запущена обработка ожидания, выполняющая вызов метода встроенного языка. Данная обработка будет иметь следующий вид:

Перейдем в режим Предприятия и выполним следующее: Запустим нашу обработку, которая в данном случае будет вызываться каждые 5 секунд и, в свою очередь вызывает метод “ВыполнитьОбработкуЗаданий()”. Данный метод проверяет настало ли время выполнять задания согласно их расписанию. Далее перейдем в пункт меню Операции – Константы – Настройка программы – вкладка Обмен Данными.

Определим пользовательский сеанс, который будет отвечать за выполнение и установим интервал опроса регламентных заданий. Работать в данном сеансе не рекомендуется, так как это может сказаться на производительности системы. Также на дисках ИТС имеется обработка “ЗапускРегламентныхЗаданий ”, которая принудительно запускает регламентные задания по выбору пользователя. Форма данной обработки выглядит следующим образом:

Таким образом все подготовительные работы выполнены и можно приступать непосредственно к самому поиску данных.

Чтобы начать работать с полнотекстовым поиском необходимо выполнить следующую команду: меню Сервис à Поиск данных .

После чего появится следующее окно:

Нажав на кнопку Настройки , появится поле с дополнительными настройками, такими как: Ограничение области поиска , Нечеткость , Размер Порции (в данном случае значение = 5, что означает вывод по пять результатов поиска на страницу). Параметр Нечеткость обозначает несовпадение части символов в поисковом запросе и полученной в ходе поиска информации. Нечеткость задается в процентном соотношении.

Полнотекстовый поиск может использовать следующие операторы:

Помимо этого механизм полнотекстового поиска допускает написание части символов русского слова одноклавишными латинскими символами. Результат поиска при этом не измениться.

В клиент-серверном варианте планированием выполнения заданий занимается планировщик заданий.

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

Текущий список регламентных заданий в планировщике может автоматически изменяться (например, когда создается новое или удаляется уже существующее регламентное задание). В любом случае механизм заданий обеспечивает актуальность списка регламентных заданий планировщика и его соответствие спискам регламентных заданий информационных баз кластера.

После того как начальный список регламентных заданий успешно получен, планировщик периодически проверяет, не поступили ли запросы на выполнение фоновых заданий и не нужно ли выполнить какие-либо регламентные задания в соответствии с их расписанием. После того как задание получено рабочим процессом, рабочий процесс устанавливает соединение с информационной базой и выполняет задание в рамках этого соединения. Поскольку рабочий процесс оптимизирован для многопользовательской работы, только первое создание соединения с информационной базой является затратной операцией. Установка последующих соединений с той же информационной базой занимает существенно меньше времени и ресурсов, т.к. большинство внутренних структур данных разделяются между соединениями одной информационной базы. После выполнения задания рабочий процесс уведомляет планировщика об успешном или неуспешном выполнении задания. В случае программного сбоя планировщик может перезапустить регламентное задание (если сбой произошел при выполнении фонового задания, то оно не будет перезапущено).

Спасибо!

Вопрос: Перестроение Индекса для 1С


Добрый день, есть база УПП на SQL 2014, стоят регламентные задания:
1)
2)
Работало все вначале отлично, ничего не тормозило, прошло полтора месяца и начались тормоза. переустанавливал 1С, SQL, 1С сервер в надежде, что что-то неправильно настроил, но косяк остался. Глянул в отчет

вижу фрагментацию, некакими перестроениями и реорганизацией индекса она не проходит. Есть ли какие-либо способы восстановить нормальную работу и избавиться от фрагментации?
(Может это вообще фигня, которая не влияет на тормоза?)

Ответ: ()

Вопрос: SQL и фрагментация индексов


При сборе статистки показывает что больше сотни индексов требуют перестроение их фрагментация свыше 50% но после перестроения индексов фрагментация остается такая же что можно предпринять?

Ответ: Хорошо спасибо учту

Вопрос: Последствия удаления индекса


Доброе время суток. Имеется БД 1С в SQL-формате, на которой нужно сделать ТИИ, которое не делается, выдавая такие ошибки:

Я не могу определить с какими данными в 1С связаны вышеуказанные таблицы. Что может быть плохого если я удалю вышеуказанные индексы через drop index ?

Я не автор темы.
Все команды отправляет 1с на сервер sql, индексы создаются и удаляются.
чужеродный - если мы не через конфигуратор создаем индексы, а на сервере sql сами.
индекс созданный при штатной процедуре 1с, не будет отличаться от индекса созданного sql-сервером

Вопрос: Как правильно настроить регламентные "Обновление индекса ППД" и "Слияние индекса ППД" (Прочитано 19


Как правильно настроить регламентные "Обновление индекса ППД" и "Слияние индекса ППД"?
Размер базы 160 ГБ. Сейчас настроены. Каждый час оба. Уместно ли установка "Обновление индекса ППД" раз в час, а "Слияние индекса ППД" один раз ночью?
Оно успеет произвести слияние его ночью?

Ответ:

Вопрос снят. Регламентное обновляло индекс порциями. По 10 000 записей. Свою работу оно сделало 10 000 обновило. Но оказалось больше чем 10 000 вот и получилось что индекс все таки не актуален.

Вопрос: Вопросы про индексы в 1с


В каких случаях их лучше использовать? на сколько может распухнуть база при частом их использовании? в чем разница: индексы и индексы с доп. упорядочиванием.
Можно так же ссылки на нормальные примеры.
Спасибо.

Ответ: () Индексы могут быть и больше размера данных:)
() Как мне кажется размер индексов не самый главный их минус, тут важнее, что при "лишних" индексах идут "лишние" издержки при записи. ИМХО.
Но при больших(сотни-тысячи гб) базах, конечно уже и на размер смотреть нужно:)

Общий принцип - если по этому полю будут отборы - индексируем, не будут - не индексируем. Если по полю отбор нужен, но количество строк мало - не нужен индекс. Если по полю отбор нужен, но под него подходит почти вся таблица - не нужен индекс. ИМХО.

Вопрос: Индексы таблицы значений


Добрый день.
Есть форма с таблицей значений. По кнопке в эту таблицу импортируются данные из excel.
При первом открытии формы и нажатии на кнопку загрузилось например 10 строк. Для каждой строки автоматически проставились индексы от 0 до 9. При повторной загрузке (без закрытия формы) я очищаю таблицу и добавляю в нее еще например 5 строк. Индексы продолжают нумерацию и будут равны 10-14. Как обнулить счетчик индексов и запустить его заново?
Спасибо

Ответ:

Вы были правы. Я не так искал. Был уверен что индексы и идентификаторы это одно и то же. Вопрос закрыт. Огромное спасибо за помощь

Вопрос: Обращение к элементу ТЧ по индексу


Задали учебную задачу произвести сортировку ТЧ документа не встроенной функцией, а вручную по алгоритму какому-нибудь.
Меня интересует, можно ли обратиться к элементу ТЧ по индексу?

Ответ: С табличной частью тот же смысл.
Копипаста из СП:

Табличная часть (Tabular section)
Элементы коллекции:

Строка табличной части
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс строки (нумерация с 0).

Вопрос: после обновления платформы заглючили рег задания обновление индекса поиска


установили 12.1616 на части серверов все нормально, а сервер с консолидацией стал глючить по страшному, рхосты вываливаются через 2...3 минуты...

выяснил, что во всем виновато рег задание "обновление индекса полнотекстового поиска", пока его отключил...

при этом на типовых бухах - вроде проблема не появляется

вопросы
1. у кого еще такая проблема появляется?
2. как искать детальную причину (включать рег задания на продакте не хочется а на тестовом нельзя)
3. что делать

Ответ: Я ненастоящий сварщик, но на тестовой базе отключил бы все рег задания, кроме "обновление индекса полнотекстового поиска" и наблюдал бы за ним через тех.журнал.

Вопрос: Спецам по SQL - как влияют общие реквизиты на статистику по индексам?


Вопрос: Насколько трудоемко будет вырезать из конфигурации общие реквизиты разделения данных? Стоит вообще этим заниматься?
БСП смотрел, в целом похоже, что там не очень много мест, но времени на глубокое изучение не было.
А теперь – о причинах, почему меня это интересует.
База БП 3.0, размер примерно 1 ТБ, из них 200 ГБ – это таблицы регистра бухгалтерии, записей от 50 до 250 млн. В таблицах на сервере поле ОбластьДанныхОсновныеДанные имеет тип Numeric(7,0), поэтому глобально я места не сэкономлю (примерно 9 ГБ приходится сейчас на это поле).
Основная цель – немного ускорить работу с базой, за счет:
*уменьшения размеров таблиц и индексов; *ускорения выборки за счет уменьшения размера строки данных (и индексов) и более точных планов запросов; *ускорения команды ‘update statistics’; *уменьшения затрат на ведение колоночной статистики (может быть по некоторым полям ее вообще на надо будет вести отдельно, т.к. это поле окажется самым левым в индексе).
Небольшое ускорение операции с одной строкой в пересчете на миллионы строк дает значительную экономию времени. А в пересчете на год – еще больше, поэтому мне кажется, что цель оправдана.

И немного теории, на которой я основываюсь.
Общеизвестный факт, что MSSQL создает статистику только по самой левой колонке индекса и хранит там 200 интервалов распределения значений.
В индексах типовой бухгалтерии 3.0 левой колонкой идет "ОбластьДанныхОсновныеДанные", тип Число. Если разделение не используется, то в этом поле везде ноль. Ниже – пример такого индекса (регистр бухгалтерии). 49 млн записей, все собрались в одной строке гистограммы.

Сервер создает колоночные статистики по всем полям, которые участвуют в запросах

Например, по регистратору

или

Зачем разработчику 1С «индексировать» измерения регистров и реквизиты?

— Ну у вас и запросы! — сказала база данных и повисла…

Краткий ответ на вопрос заголовка заключается в том, что это позволит выполнять запросы быстро и уменьшать негативное влияние блокировок на .

Что такое индекс?

Оптимизация размещения индексов

При объеме таблиц не позволяющем им «разместиться» в оперативной памяти сервера, на первое место выходит скорость дисковой подсистемы (I/O). И здесь можно обратить внимание возможность размещать индексы в отдельных файлах расположенных на разных жестких дисках .

Подробное описание действий http ://technet .microsoft .com /ru -ru /library /ms 175905.aspx
Использование индекса из другой файловой группы повышает производительность некластерных индексов в связи с параллельностью выполнения процессов ввода/вывода и работы с самим индексом.
Для определения размеров можно использовать выше упомянутую обработку.

Влияние индексов на блокировки

Отсутствие необходимого индекса для запроса означает перебор всех записей таблицы, что в свою очередь приводит к избыточным блокировкам, т.е. блокируются лишние записи. Кроме того, чем дольше выполняется запрос из-за отсутствующих индексов, тем больше время удержания блокировок.
Другая причина блокировок — малое количество записей в таблицах. В связи с этим SQL Server, при выборе плана выполнения запроса, не использует индексы, а обходит всю таблицу(Table Scan), блокируя целиком. Для того, чтобы избежать подобных блокировок, необходимо увеличить количество записей в таблицах до 1500-2000. В этом случае сканирование таблицы становится долее дорогостоящей операцией и SQL Server начинает использовать индексы. Конечно это можно сделать не всегда, ряд справочников как «Организации», «Склады», «Подразделения» и т.п. обычно имеют мало записей. В этих случаях индексирование не будет улучшать работу.

Эффективность индексов

Мы уже отметили в заголовке статьи, что нас интересуют влияние индексов на быстродействие запросов. Итак, индексы наиболее подходят для задач следующего типа:

  • Запросы, которые указывают «узкие» критерии поиска. Такие запросы должны считывать лишь небольшое число строк, отвечающих определенным критериям.
  • Запросы, которые указывают диапазон значений. Эти запросы также должны считывать небольшое количество строк.
  • Поиск, который используется в операциях связывания. Колонки, которые часто используются как ключи связывания, прекрасно подходят для индексов.
  • Поиск, при котором данные считываются в определенном порядке. Если результирующий набор данных должен быть отсортирован в порядке кластеризованного индекса, то сортировка не нужна, поскольку результирующий набор данных уже заранее отсортирован. Например, если кластеризованный индекс создан по колонкам lastname (фамилия), firstname (имя), а для приложения требуется сортировка по фамилии и затем по имени, то здесь нет необходимости добавлять инструкцию ORDER BY.

Правда при всей полезности индексов, есть одно очень важное НО – индекс должен быть «эффективно используемым» и должен позволять находить данные с использованием меньшего числа операций ввода-вывода и объема системных ресурсов. И наоборот, неиспользуемые (редко используемые) индексы скорее ухудшают скорость записи данных (поскольку каждая операция, изменяющая данные, должна также обновлять страницы индексов) и создают избыточный объем базы.

Покрывающим (для данного запроса), называется индекс в котором есть все необходимые поля для этого запроса. Например, если индекс создан по колонкам a, b и c, а оператор SELECT запрашивает данные только из этих колонок, то требуется доступ только к индексу.

Для того, что бы определить эффективность индекса, мы можем приблизительно оценить с помощью бесплатного онлайн-сервиса показывающий «план исполнения запроса» и используемые индексы.

Вынесенный нами в заголовок статьи вопрос является актуальным для многих системных администраторов, работающих с данным продуктом. По мере возможностей мы стараемся рассказывать о параметрах, влияющих на производительность 1С и развенчивать популярные мифы. Сегодня, на примере одного недавнего случая, мы хотим рассказать вам об еще одном аспекте, способном серьезно влиять на производительность - регламентных заданиях.

Начнем с реального случая. Не так давно к нам обратился один наш клиент с жалобой на "тормоза" 1С у одного из его сотрудников. Симптомы выражались в том, что через некоторый промежуток времени конфигурация Управление Торговлей 10 начинала сильно тормозить, а проще говоря подвисала на какое-то время.

При более подробном разборе ситуации выяснилось, что это происходит только у одного сотрудника, причем на любом рабочем месте, происходит давно, но если раньше "тормоза" продолжались около секунды, то теперь, после обновления, они могут продолжаться до 15-20 секунд, что делает работу крайне некомфортной.

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

  • "Тормоза" происходят постоянно, с определенной периодичностью
  • "Тормозит" только у одного пользователя
  • "Тормозит" на любом рабочем месте

Чтобы подтвердить свои догадки заглянем в Настройки параметров учета :

Действительно, "проблемный" пользователь указан как пользователь для выполнения регламентных заданий. Как выяснилось, когда-то давно от имени этого пользователя работало задание автообмена РИБ. Осталось посмотреть, что именно являлось причиной эпизодического "торможения". Это тоже несложно сделать:

А вот и "виновник торжества" - задание обновления индекса полнотекстового поиска, которое запускалось один раз в 2,5 минуты. В данном случае проблема была полностью решена отключением выполнения регламентных заданий под этим пользователем, однако это не всегда возможно или целесообразно, поэтому ниже мы рассмотрим каким образом можно управлять регламентными заданиями и как сделать так, чтобы они не оказывали негативного влияния на производительность.

Обычное приложение

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

Управление многими регламентными заданиями производится через настройку связанных с ними подсистем. Например, настройки регламентных заданий, связанных с обменом данными следует искать в настройках обмена, связанные с ЕГАИС в настройках торговлей алкоголем и т.д.

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

В этом случае следует воспользоваться внешней обработкой КонсольЗаданий (JobsConsole ), которая входит в набор стандартных обработок на диске ИТС. Обработка предоставляет единый интерфейс для всех заданий и позволяет выполнять их централизованную настройку, а также контролировать выполняющиеся в текущее время задания.

Данный список нужно тщательно изучить, все ненужные задания следует отключить, а у нужных привести расписание в соответствие с насущными потребностями и здравым смыслом. Например, в нашем случае, нет никакой необходимости обрабатывать ответы ЕГАИС раз в 30 секунд (эта настройка сделана для тестирования) и в рабочем режиме вполне достаточно будет делать это скажем раз в полчаса.

Управляемое приложение

В конфигурациях на основе управляемого приложения регламентным заданиям отведена более значительная роль, с их помощью могут выполняться различные задания по обслуживанию информационной базы и поддержанию ее в актуальном состоянии, но в тоже время именно регламентные задания чаще всего становятся причиной "тормозов".

Для управления регламентными заданиями предназначен отельный пункт в меню Администрирование - Поддержка и обслуживание .

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

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

Отдельное внимание следует уделить всему, что связано с поисковым индексом. Полнотекстовый поиск безусловно удобная вещь, но работа с его индексом является весьма и весьма ресурсоемкой задачей. Поэтому не стоит впадать в крайность и отказываться от него, но следует серьезно пересмотреть и настроить его параметры.

Начнем с извлечения текста , данная операция позволяет производить поиск по содержимому приложенных файлов, поэтому если вы не используете их, не производите поиск по ним, или у вас там одни изображения - то данную операцию можно отключить, в любом случае выполнять ее раз в 85 секунд - явный перебор.

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

А теперь подумаем, как часто в базе добавляется либо обновляется информация, по которой вы наиболее часто проводите поиск? Явно не каждую минуту, поэтому вполне достаточно будет обновлять индекс гораздо реже: раз час, раз в день или вообще раз в неделю.

Тоже самое относится и к слиянию индекса ППД , если вы обновляете индекс раз в день, то следует настроить слияние на выполнение раз в неделю, при этом выбрав в качестве начала задания наименее мешающее работе время.

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

  • Теги:

Please enable JavaScript to view the

Публикации по теме