|
Как дешевле забрать данные из SQLite ? | ☑ | ||
---|---|---|---|---|
0
acvant
10.05.20
✎
08:01
|
Привет, селяне!
Есть оперативная табличка в SQLite на 15-20 строк, с 10-12 параметрами. Данные по строкам обновляются 1-3 раза в секунду. БД подключена к клиентскому ODBC. Каким методом выгоднее (ресурсы/скорость/etc.) получать данные в 1С: 1. Через внешний источник данных? 2. Через ADO (COM) запросами? 3. Через ВК (забираем, строим логику в ВК, в 1С толкаем по необходимости)? Не хотелось бы проходить путь, который кто-то, возможно, уже прошел... Заранее спасибо! |
|||
1
Кирпич
10.05.20
✎
09:23
|
Через http
|
|||
2
Кирпич
10.05.20
✎
09:27
|
И sqlite можно выкинуть. Чо без бд 20 строчек нельзя хранить никак что ли. Если совсем дикий, то через внешний источник.
|
|||
3
acvant
10.05.20
✎
09:35
|
(2) Входные условия видишь? База SQLite, подключена через пользовательский ODBC, или ты КИРПИЧ по жизни??? Есть то, что есть. Я тебя не просил оценку структуры давать, а как из этого проще выкрутиться...
|
|||
4
Вафель
10.05.20
✎
09:41
|
а не булет ли блокирующего чтения?
|
|||
5
Кирпич
10.05.20
✎
09:57
|
(3) Не, я просто Кирпич, а вот ты по жизни. Нарисовал коня для телепатов и ждет адекватных ответов.
|
|||
6
acvant
10.05.20
✎
09:59
|
(5) А что я не так нарисовал? Обоснуй? Есть вводная, есть вопрос. Если ты не в теме освободи пространство... Нех лезти, с твоим чистым потоком сознания.
|
|||
7
acvant
10.05.20
✎
10:01
|
(4) Ну на чтении не блокируется, если ты имеешь ввиду ADO-ODBC, там и на записи нет блокировки.
|
|||
8
ДенисЧ
10.05.20
✎
10:09
|
(7) "на чтении не блокируется"
Расскажи это 1су с их эр в скулайте )) |
|||
9
Кирпич
10.05.20
✎
10:11
|
Да пофиг блокировка. Читатель подождеь рару миллисекунд. Ничо страшного
|
|||
10
Garykom
гуру
10.05.20
✎
10:15
|
(0) Данные в 1С нужны на клиенте или на сервере?
Если на клиенте то ВК с внешнее событие, если на сервере то веб-сервис в 1С поднимать и нечто внешнее пусть дергает. |
|||
11
acht
10.05.20
✎
10:15
|
(6) О, деревня с бодуна выползла, после вчерашнего. Селян своих ищет. Вчера, наверно, хорошо было.
|
|||
12
Aleksey
10.05.20
✎
10:15
|
(9) а писатель? Потом выясниться что программа не ожидает несанкционированного доступа и будет каждый раз при чтении из 1С крашиться
|
|||
13
Кирпич
10.05.20
✎
10:16
|
Если оба пишут, тогда плохо. Но пока не ясно из 1с туда будут писать или нет. Да и если будут тоже пофиг. Транзакция не долгая скорее всего.
|
|||
14
Aleksey
10.05.20
✎
10:17
|
Кто то же каждую секунду пишет в эту табличку
|
|||
15
acvant
10.05.20
✎
10:20
|
(8) (12) Тих, тих, это как так??? Если через ADO, то причем тут 1с?? Доступ то идет через драйвер SQLite3 ODBC driver. Что не так? Норумль работает и с блокировками, и с высокой нагрузкой. 1С только читает. Пишет прога на си от датчиков. Это данность, ее не сменить.
|
|||
16
acvant
10.05.20
✎
10:21
|
(11) Ну с тобой все понятно, чем дальще твой задрищенск, тем больше ты комплексуешь по этому поводу)))
|
|||
17
acvant
10.05.20
✎
10:23
|
(12) Подожди, как это крашиться??? А уровень изоляции и варианты блокировок кто-то отменил?
|
|||
18
Aleksey
10.05.20
✎
10:23
|
(15) в контексте вашего зоопарка и оборудование нельзя сказать какой вариант лучший. Более того при ваших небольших входных данных может оказаться что разница будет в районе стат.погрешности. Т.е. можно рассуждать о супер пупер способе, но у вас он невзлетит так как среда не подходящие (или версия SQLite). с другой стороны можно неделю потратит для написания оптимального способа что в конце прийти в мысли что тупо решая в лоб у нас будет сопоставимое время работы
|
|||
19
Aleksey
10.05.20
✎
10:23
|
(17) а ты уверен что драйвера датчика которые пишут туда это используют?
|
|||
20
Aleksey
10.05.20
✎
10:24
|
может они для скорения используют недокументированные фичи и в обход пишут напрямую
|
|||
21
acvant
10.05.20
✎
10:29
|
(20) Ну насколько я смотрель код на СИ, там все стандартно. Поднимают клиента ODBC и на сервер(ODBC виндозовский) отправляют данные по протоколу. Драйвер лайтовский настраивается по блокировкам и изоляции уже в клиентском ODBC. Все просто. Мне хотелось бы узнать, что бы не переберать все варианты, каокй быстрее и дешевле по ресурсам. Из тех, что я написал в вопросе.
|
|||
22
acht
10.05.20
✎
10:29
|
(16) Вот поэтому у меня проблем-то со связкой SQLite и 1С не возникает. Ты сходи там в свою сельскую библиотеку, туда книжек и брошюрок уже завезли. С примерами, с описаниеми... Читать-то, вроде, умеешь. Попробуешь, втянешся.
А выпытывать у тебя что значит "выгоднее" с твоей точки зрения никто не будет. Предложат тебе отдельный микросервис на GO, и колупайся. Вон, в (10) уже начали. |
|||
23
Конструктор1С
10.05.20
✎
10:29
|
(0) юзай внешние источники данных
|
|||
24
Aleksey
10.05.20
✎
10:30
|
(21) ты правда думаю что выборка 10 строк это то на что строит тратить время в поисках выгоды?
|
|||
25
Aleksey
10.05.20
✎
10:31
|
Что лучше знаешь и гле быстрее напишешь то и выгоднее.
Какая выгода потрить день в написании ВК, отлаживать его, если по скорости работы он будет сопоставим с ВИД? |
|||
26
acht
10.05.20
✎
10:32
|
(24) А поговорить? (:
|
|||
27
acvant
10.05.20
✎
10:37
|
(26) Болтолог. Наверное ДЗЕН ведёшь? Гет лост бастэ. Твои детские комплексы и страхи в данном контексте не интересны...
|
|||
28
vde69
10.05.20
✎
10:38
|
(0) для начала обозначь приоритеты, что важнее
1. скорость записи или чтения 2. допустимо-ли потеря пакета при записи или черное чтение потом определи сколько потоков читает и записывает ну и на закуску дай примерное время на операцию записи и чтения после всего этого можно будет и советовать |
|||
29
Aleksey
10.05.20
✎
10:40
|
По факту выясниться что данные нужно читать не чаше чем раз в час. И будет и читать 20мс или 5 секунд - не критично. И чтать будет не человек, а робот который по этим данным будет строить свои данные и отправлять на почту раз в сутки отчет
|
|||
30
acvant
10.05.20
✎
10:41
|
(28) Да, понятно это все. блин, все что я хотел узнать, может кто уже заморачивался, делал замеры. Вот помойка же большая, на все случаи жизни есть пример/опыт. Как все сделать и проверить, не вопрос. Да я и не задавал такой вопрос.
|
|||
31
acht
10.05.20
✎
10:43
|
(27) А порчу по фото накладываешь?
|
|||
32
Aleksey
10.05.20
✎
10:44
|
(30) как ты думаешь есть универсальный способ выборки любых данных и из любых источников с максимальной скоростью?
Где то кэширование позволяет ускорит получение результата в 10 раз, а где то затраты на кэширование превышают время выборки. и что тут советовать? |
|||
33
vde69
10.05.20
✎
10:45
|
ну и еще - как я понял у тебя есть доступ к коду на с+ на котором написана приблуда которая пишет файл, на сколько я понял по количеству параметров никакая история данных в базе не хранится, от сюда очень простой вывод напрашивается, немного переписать прогу которая получает данные с датчиков и пишет данные в базу на COM сервер, и данные хранить исключительно в оперативке, а получать из 1с по COM (или DCOM+)
На мой взгляд этот вариант не сложнее чем написать свою ВК для получения данных из базы |
|||
34
acvant
10.05.20
✎
10:45
|
(30)Была бы у меня гибкость в архитектуре, я бы на С склепал шустрый ODBC сервер непосредственно под это дело и подменил его для клиента. А дальше дергал бы 1С при изменении параметра. Но там все глубже, структуру менять нельзя. Это самый низ ТАКОЙ ПАУТИНЫ...
|
|||
35
acht
10.05.20
✎
10:45
|
(30) > делал замеры.
На твоей архитектуре и с твоим набором версий софта, ага. |
|||
36
acvant
10.05.20
✎
10:47
|
(35) Успокойся болезный, сегодня тебе никто не подаст... Приходи вчера.
|
|||
37
acvant
10.05.20
✎
10:49
|
Ладно, понятно. Родаемся и умираем в одиночестве.)))
А ты Acht работай над собой. Хреново выглядишь... |
|||
38
vde69
10.05.20
✎
10:49
|
(30) ты зря так просто относишся к проблемме, вот я например всегда думал, что MySql транзакционная база, оказалась, что далеко не всегда, есть сборки (и они активно используются) где транзакции не поддерживаются...
По этому вопрос с блокировками в твоем случае может встать совершенно неожиданным образом и привести или к потерям данных или еще к чему |
|||
39
acht
10.05.20
✎
10:51
|
(33) И не забыть нарисовать отдельный "протокол обмена", учитывающий ситуации, когда одна из сторон еще не запущена/отвалилась...
Вообще сейчас шины обмена модно - дописать приблуду, чтобы драйвер туда отсылал, а 1С вычитывала. Красота! |
|||
40
acht
10.05.20
✎
10:52
|
(37) Обращайся, если что!
|
|||
41
acvant
10.05.20
✎
10:52
|
(38) Согласен, надо самому копать и конкретно "по месту". Ладно спасибо всем!!! Особенно колхознику ACHTу )))
|
|||
42
Кирпич
10.05.20
✎
13:12
|
Вот и закончилось очередное "объясните мне гению, что такое вилка и ложка, а то я вас дерьмом измажу"
|
|||
43
Сияющий в темноте
10.05.20
✎
16:09
|
Позвольте!
SQLLite - это же встроенный в ODBC микросеовер,то есть два процесса к одной базе данных будут обращаться как к общему файлу!!! Поэтому,нужно очень внимательно смотреть,какие блокировки ставит пишущий процесс и ставит ли их вообще,так как иначе возможно все,что угодно,вплоть до доступа к неинициализированной памяти,если при записи размер таблиц поменяется. так что тут не быстрее нужно смотреть,а переписывать писателя или в нем же заводить поток ответа,чтобы в один файл писала одна программа. |
|||
44
Вафель
10.05.20
✎
17:10
|
Пишущий блокирует чтение
|
|||
45
Вафель
10.05.20
✎
17:10
|
А читающий запись
|
|||
46
spock
10.05.20
✎
21:07
|
(0)Для SQLite конкуренция на запись (пишут по очереди), для остальных случаев все без конкуренции.
Ставим sqliteodbc - http://www.ch-werner.de/sqliteodbc/ И лабаем на 1с код чтения через ADO или ВнешниеИсточникиДанных (выбираем СУБД = "MySQL") |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |