7.7 Добавление поля в справочник

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем 1Счик, 29 окт 2010.

  1. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Всем привет!

    Используется 1С 7.7 релиз 27
    Формат DBF
    В экспериментальной базе есть только один справочник "Номенклатура" и больше никаких объектов метаданных.
    Справочник "Номенклатура" имеет поля:
    ЗакупочнаяЦена - Число, 10, 2
    ЦенаРеализации - Число, 10, 2
    ШтрихКод - Строка, 13, сортировка
    Артикул - Строка, 13, сортировка
    Вес - Число, 10, 0

    В этот справочник добавлено 30000 записей.

    Проблема в следующем:

    Когда я пытаюсь добавить еще одно поле (например, числовое, длина 1) в справочник с количеством записей ~30000 происходит следующее:

    1. Конфигуратор зависает на весьма продолжительное время.
    2. Открываю папку NEW_STRU и вижу, что индекс файла, соответствующего моему справочнику растет безбожно. Уверен, что этот неудержимый рост индексного файла является причиной столь долгой реструктуризации. В моем случае уже часа три прошло...

    К примеру размер файла DBF справочника до добавления поля равен 6Mb, индексный файл до добавления поля 8Mb, а в папке NEW_STRU индекс уже распух до 800Mb. Особенно хорошо эффект заметен, когда добавляешь поле со включенной галкой "Сортировка". Индекс растет еще больше и достигая размера в 2Gb все прекращается. 1С вываливается с ошибкой записи, т.к. размер индексного файла достиг 2Gb.

    Кто может подсказать как принудительно отключить создание индексного файла во время реструктуризации справочника? Или этот глюк 1С как-то лечится?

    ЗЫ: проблема эта мне известна давно, но на малых количествах записей незаметна. После реструктуризации стоит сделать переиндексацию базы и размер индексного файла снова становится нормальным.
  2. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Странно. Ну а если грохнуть индексы перед изменениями? :)
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Если на время убрать признак "Сортировка" у полей Штрихкод и Артикул?
  4. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    В том то и дело, что индекс растет в папке NEW_STRU (он там создается сам). А тот, который в папке БД лежит можно конечно и удалить перед реструктуризацией, но что это даст?
  5. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    а если в чистой конфе добавить, а потом объединить с основной? или загрузить в основную
  6. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Да, так тоже пробовал. Проблема в том, что записей много...

    Так тоже делал. При реструктуризации основной базы все также начинает расти индекс. Это глюк самого движка 1С я полагаю.
  7. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    наверное.. 30тыс это не много, я добавлял реквизит "строка(50)" в справочник с >600 тыс элементов.. платформа правда другая
  8. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    а какая платформа? вот я выяснил, что для DBF и релиза 27 - 30000 записей - это критическое значение в моем случае. Меньше можно, а больше нет...
  9. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    [off]sql.. [/off]
  10. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    :angry:
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    25й релиз, DBF... Справочник ПОЧТИ 50000 (список пенсионеров). Ради интереса добавил поле - работало минут 40. Убрал как сказано выше сортировку - сделал реорганизацию за 8 мин + еще 11 на то чтобы снова добавить сортировку по полю.
  12. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Видимо зависит от набора используемых полей в Вашем справочнике. Какое поле у Вас сортируемое? Тип, длина. Что было с индексным файлом после включения сортировки по полю? Как изменился размер индексного файла? Попробуйте добавить в своем справочнике поле "Строка", длина 20 + сортировка и отбор по реквизиту. Произведите реструктуризацию, посмотрите размер индексного файла. Затем сделайте переиндексацию базы любым способом. Снова посмотрите размер индексного файла.
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Отбор стоит по Фамили Имени Отчетству (наименование=ФИО)
    Естественно при отключении отбора/сортировки он стал меньше примерно в 4 раза. При включении снова увеличился в 4 раза, но стал чуть меньше (совсем не значительно - байты)
  14. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    А можете в цифрах написать размер индексного файла до включения сортировки и отбора, после включения сортиовки/отбора и после переиндексации базы?
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    С сортировкой
    11,721,336
    Без
    3,559,552
    После реинтексации
    3,559,540

    DBF 29,355,970
  16. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Вам интересно посмотреть как на моей базе размер индекса при реструктуризации увеличивается до 1,269,227,008 байт? Могу экспериментальную базу прислать. Размер архивированной базы без индексов ~800kb.
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Очень интересно - обратитесь в аську или личку.
  18. TopicStarter Overlay
    1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Бухгалтерский угодник,
    Я разобрался со своей проблемой. Стоит уменьшить длину наименования со 100 символов до 80 и проблема с индексным файлом отпадает.

    Также я экспериментировал со справочником. Стоит заполнить поля другими данными (даже не изменяя структуру полей справочника) - проблема отпадает. Видно "звезды сошлись" в моей ситуации. Тут и размеры индексируемых полей. И контент справочника.

    Но то, что это глюк 1С я уверен.

    А за идею с подчиненными справочниками - спасибо! Буду иметь ввиду.
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Да, посмотрел вашу базу. При отключении распределенки ситуация чуть лучше, но не намного. Как вариант
    - уменьшить длину индексируемых полей ДО 128 символов (что вы и сделали)
    - сделать подчиненные справочники. Т.к. наименование имеем поиск и отбор по умолчанию))))

Поделиться этой страницей