Имя: Пароль:
1C
1С v8
Что выбрать "Внешние источники данных", COM, ADODB , XML или DBF
0 gusden
 
23.02.12
11:38
Всем доброе время суток.
Есть следую чая задача:
Существует таблица 700 000 строк 10 полей и весит около 500 метров из этой таблицы периодически несколько раз в месяц пользователям надо вытаскивать данные. Поиск будет проходить по нескольким условиям поле содержит. Хочу посоветоваться как мне это реализовать.
Пока склоняюсь к варианту положить её SQL и в конфигураторе создать "Внешние источники данных". Но думаю не быстрей ли будет напрямую обратиться к таблице на языке SQL??? Кто сталкивался с подобной задачей прошу высказаться. Может лучше будет положить в какой-нибудь другой формат и  создать индексы?
1 pumbaEO
 
23.02.12
11:45
SQL + индексы?
2 pumbaEO
 
23.02.12
11:53
Я со стороны теоретика: Внешние источники - пока только править конфу, если структура не меняется и отчет для вытаскивания данных меняется только после согласования с гениральным, то можно внешние источники, в другом случаи сделал бы внешней обработкой с ADODB, таблица на SQL сервере (не обязательно на MS).
3 gusden
 
23.02.12
11:57
(2) конфа не типовая, так  что её можно  править как душе будет угодно
цель выборка должна работать как можно быстрее.
единственное что в саму конфу эту иныфу не хочется заливать чтоб не бекапилась
4 КМ155
 
23.02.12
12:04
(0) хранить на сиквеле, юзать ADODB
5 pumbaEO
 
23.02.12
12:05
Если отбор постоянен и индексы будут по вариантам отбора - то и dbf справиться, тем более не часто, тем более пока сиквел разгонится, а у тебя уже и запросы закончились.
6 gusden
 
23.02.12
12:20
(5)Вот с индексами у меня наверно не получиться. Поиск может быть например по слову "реле"
и должно найти все записи где встречается это слово. Например с полем:
ЭЛЕКТРОННЫЙ БЛОК УПРАВЛЕНИЯ, НЕПРОГРАММИРУЕМЫЙ, ОБОРУДОВАННЫЙ ПЕРЕКЛЮЧАТЕЛЯМИ, РЕЛЕ, ВЫКЛЮЧАТЕЛЯМИ,РАЗЪЕМАМИ НА НАПР. 24В, НЕ ЛОМ ЭЛЕКТРООБОРУДОВАНИЯ ,НЕ СРЕДСТВА ПОЖАРНОЙ АВТОМАТИКИ, ДЛЯ Л/А.
Правда условие будет более сложное и записи нужно будет отсортировать по приоритету.
В DBF я так понимаю это только через полный перебор всех записей придётся делать.
7 pumbaEO
 
23.02.12
12:27
Кхм, полнотекстовый поиск тогда надо включать, тогда только SQL. Или может служебную базу?
8 gusden
 
27.02.12
10:59
Начал в общем грузить в 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 gusden
 
27.02.12
11:22
попробовал загрузить в справочник не ругается, причём попробовал забить туда больше 1000 символов всё сработало без ошибок, по видимому в регистре сведений создаются в SQLе какие-то индексы на измерения с ограничением 900 байт
10 ДенисЧ
 
27.02.12
11:24
(8) Это нормально. Тебе нужен не простой индекс, а полнотекстовый...
11 gusden
 
27.02.12
11:41
(10)Да действительно если я поставил в справочнике у реквизита "Индексировать", то вылетает та же ошибка. А я разве не обойдусь без "Индексировать"