Что выбрать "Внешние источники данных", COM, ADODB , XML или DBF #597297


#0 by gusden
Всем доброе время суток. Есть следую чая задача: Существует таблица 700 000 строк 10 полей и весит около 500 метров из этой таблицы периодически несколько раз в месяц пользователям надо вытаскивать данные. Поиск будет проходить по нескольким условиям поле содержит. Хочу посоветоваться как мне это реализовать. Пока склоняюсь к варианту положить её SQL и в конфигураторе создать "Внешние источники данных". Но думаю не быстрей ли будет напрямую обратиться к таблице на языке SQL??? Кто сталкивался с подобной задачей прошу высказаться. Может лучше будет положить в какой-нибудь другой формат и  создать индексы?
#1 by pumbaEO
SQL + индексы?
#2 by pumbaEO
Я со стороны теоретика: Внешние источники - пока только править конфу, если структура не меняется и отчет для вытаскивания данных меняется только после согласования с гениральным, то можно внешние источники, в другом случаи сделал бы внешней обработкой с ADODB, таблица на SQL сервере (не обязательно на MS).
#3 by gusden
конфа не типовая, так  что её можно  править как душе будет угодно цель выборка должна работать как можно быстрее. единственное что в саму конфу эту иныфу не хочется заливать чтоб не бекапилась
#4 by КМ155
хранить на сиквеле, юзать ADODB
#5 by pumbaEO
Если отбор постоянен и индексы будут по вариантам отбора - то и dbf справиться, тем более не часто, тем более пока сиквел разгонится, а у тебя уже и запросы закончились.
#6 by gusden
Вот с индексами у меня наверно не получиться. Поиск может быть например по слову "реле" и должно найти все записи где встречается это слово. Например с полем: ЭЛЕКТРОННЫЙ БЛОК УПРАВЛЕНИЯ, НЕПРОГРАММИРУЕМЫЙ, ОБОРУДОВАННЫЙ ПЕРЕКЛЮЧАТЕЛЯМИ, РЕЛЕ, ВЫКЛЮЧАТЕЛЯМИ,РАЗЪЕМАМИ НА НАПР. 24В, НЕ ЛОМ ЭЛЕКТРООБОРУДОВАНИЯ ,НЕ СРЕДСТВА ПОЖАРНОЙ АВТОМАТИКИ, ДЛЯ Л/А. Правда условие будет более сложное и записи нужно будет отсортировать по приоритету. В DBF я так понимаю это только через полный перебор всех записей придётся делать.
#7 by pumbaEO
Кхм, полнотекстовый поиск тогда надо включать, тогда только SQL. Или может служебную базу?
#8 by gusden
Начал в общем грузить в SQL. Создал пустую базу в ней регистр сведений попытался загрузить туда пару записей. В результате выдала мне такую ошибку: Microsoft OLE DB Provider for SQL Server: Operation failed. The index entry of length 1248 bytes for the index '_InfoRg7_ByDims_SSSSSSNSSN' exceeds the maximum length of 900 bytes. Эксперименты показали, что когда я пытаюсь в регистр сведений во все поля засунуть в сумме больше чем 441 символ вываливается данная ошибка.
#9 by gusden
попробовал загрузить в справочник не ругается, причём попробовал забить туда больше 1000 символов всё сработало без ошибок, по видимому в регистре сведений создаются в SQLе какие-то индексы на измерения с ограничением 900 байт
#10 by ДенисЧ
Это нормально. Тебе нужен не простой индекс, а полнотекстовый...
#11 by gusden
Да действительно если я поставил в справочнике у реквизита "Индексировать", то вылетает та же ошибка. А я разве не обойдусь без "Индексировать"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С