Запрос vs Объект, 1С vs SQL, скорость и все такое

1. AlexO 135 13.11.12 11:07 Сейчас в теме
Тема продолжение темы Запрос vs Объект + результат эксперимента, вполне реального, точнее - комментариев к ней.
Смежные темы:
И снова о скорости работы 1с 8.х + тест от Гилева


(261), hogik
Вот подолью информацию для размышления: http://habrahabr.ru/post/81067/

Никакого "размышления" там не вижу - вижу только сугубо технический узко-узкоспециализированный междусобойчик скромный на тему какого-то курсового-лабораторного замера, ни коем образом не имеющего отношения к скорости работы/взаимообмена по разным "пайпам-сокетам" в 1С-SQL.
Вижу только слова похожие в названиях переменных.
Товарищ что-то написал для себя, задействовал неизвестные механизмы неизвестного происхождения на неком "скрываемом" им языке:
это у него "работа через Socket":
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

это - якобы через "Pipes":
NamedPipeServerStream server = new NamedPipeServerStream("TestPipe", PipeDirection.InOut, 1,
 PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 1024 * 1024, 1024 * 1024);
,
передал им самим придуманные "пакеты данных", что-то там замерил (видимо, скорость выполнения своего кода в среде, которая предоставляет какие-то "new Socket" и "new NamedPipeServerStream") - и вот, опа! - получил разницу в 7 раз в пользу своих "трубок".
Я бы на его месте счетчик-то умножил сразу на 1000 - чтоб безповоротно и безоговорочно в обмене победили "pipes".
Какая разница, как и какие "результаты" получать - главное, че-то получить!
Первое правило студентов.
Да и умные люди там нисколько не воспринимают предоставленную статью как "скорость обмена технологиии Pipes против Sokets" ибо прекрасно понимают цель и тему статьи, и их ни коим образом не обмануло громкое название "IPC: сокеты против именованных каналов", в отличие от 1сников.
И только 1сники думают, и дуреют при этом от собственных дум :), что именно так и таким образом, и именно этим кодом образуются "pipes" и "sockets" при обмене 1С с БД в Windows, с задействованием того или другого.
Кстати, и статья "И снова о скорости работы 1с 8.х + тест от Гилева", и приводимые везде им самим в качестве доказательств "тесты скорости" Sanfoto - тоже из этого же ряда: померяно неизвестно что, неизвестно чем, вовсю густо используется терминология "Shared Memory" и "TCP" (обозначающие в статье все, что угодно, но никак не сетевые/обмена технологии - да это и не требуется, ведь цель их постоянного использования - дать "факт-базу" и "обоснование" цифирям) получен некий непонятый получившим его результат, но зато - цифирь - вот она, 1С рулит, а в pipes - так и вовсе в космос улетает.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. sanfoto 502 14.11.12 09:05 Сейчас в теме
(1) AlexO,
получен некий непонятый получившим его результат, но зато - цифирь - вот она, 1С рулит, а в pipes - так и вовсе в космос улетает.


))
хорошо еще раз уточню

Ваша цитата "а в pipes - так и вовсе в космос улетает".

Мой ответ:

1) да скорость работы 1с(клиент серверный вариант) в pipes значительно превосходит TCP
НО ТОЛЬКО если "сервер 1С" +"SQL" на ОДНОМ КОМПЕ.

2)Если их ("сервер 1С" и "SQL") разносить по сети то pipes и TCP сопоставимо и практически равны(в быстрой сети).

ЗЫ:
Все это (работа через - named pipes и TCP) давно известно и описано в MSDN Microsoft.
Прикрепленные файлы:
44. пользователь 20.12.21 11:15
Сообщение было скрыто модератором.
...
2. AlexO 135 13.11.12 11:11 Сейчас в теме
(262) адуырщдв,
Каков процент вложения денег? Ну так, примерно.
примерно - чтобы 1С начала использовать SQL как СУБД хотя бы процентов на 80, нужно полностью переписать всю 1С с кардинальной сменой концепции и ориентации.
Вот и считайте, во сколько эжто обойдется.
адуырщдв; hogik; +2 Ответить
3. demarine 13.11.12 11:42 Сейчас в теме
два раза перечитал, но так и не понял о чем сей опус. Автор хотел похвастаться знанием словечек pipes, sockets и т.д.?
Так для большинства 1С-ников это бессмысленный набор букв.
4. AlexO 135 13.11.12 11:48 Сейчас в теме
(3) demarine,
вы про что? если про открытие этой темы - то прочтите первоначальную, хотя бы комментарии конца 2 - всю 3-ю страницы.
Там начало обсуждения.
6. sanfoto 502 14.11.12 09:16 Сейчас в теме
(3) demarine,
Так для большинства 1С-ников это бессмысленный набор букв.

для меня такие люди всего лишь Новички)) и СПЕЦИАЛИСТАМИ их назвать никак нельзя))
30. tango 543 16.11.12 10:57 Сейчас в теме
(6) sanfoto,
для меня такие люди всего лишь Новички)) и СПЕЦИАЛИСТАМИ их назвать никак нельзя))


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

определить, что затык происходит откуда-то из "райрсов и сокетов" и корректно передать пинки админам - это уже опциональный виртуоз
31. AlexO 135 16.11.12 12:47 Сейчас в теме
(30) tango,
просто еще одно доказательство - насколько непродумана/обрезана 1С в своих функциях, и какое вследствии этого непаханное поле для совершенствования у 1с-ника... :)
32. sanfoto 502 16.11.12 12:50 Сейчас в теме
(30) tango,
Извините ВАШЕ сообщение не по теме.. отвечать не буду))
7. sanfoto 502 14.11.12 10:31 Сейчас в теме
вот вам реальная скорость обмена при разнесении по сети 1 Gigabit

вот вам скорость обмена и схема сервера все в Одном))


PS:
что бы сравнить 31 Мегабат/с (250 Мбит/с) с 32 Гигабайт/с - великих познаний в математике не нужно таки думаю? ))
Прикрепленные файлы:
8. logos 211 14.11.12 11:37 Сейчас в теме
(7) sanfoto, А всё таки, расскажите пожалуйста, как вы прицепили 1с сервер к mssql по named pipes. Вас же не затруднит привести скриншот подключенного к sql 1с сервера при отключенном на sql сервере протоколе tcp/ip?
9. sanfoto 502 14.11.12 11:49 Сейчас в теме
14. logos 211 14.11.12 12:20 Сейчас в теме
(9) sanfoto, Спасибо, видимо допилили использование пайпов.
15. sanfoto 502 14.11.12 12:27 Сейчас в теме
(14) logos,
угу, только вот при разделении серверов через Ethernet - весь бонус named pipes теряется((
11. sanfoto 502 14.11.12 11:52 Сейчас в теме
(8) logos,
+ к (9) так-то на 1С 8.3 вроде как Shared Memory работает, я лично не проверял - нет возможности))
12. AlexO 135 14.11.12 11:57 Сейчас в теме
(11) sanfoto,
вроде как Shared Memory работает

SM в любом случае работает только для системных процессов - они не по ADOBD соединяются.
13. sanfoto 502 14.11.12 12:06 Сейчас в теме
(12) AlexO,
возможно, я лично не проверял,
но народ скидывал скрины с моим SQL запросом и там был Shared Memory для 1с 8.3 ))

PS:
вот например
16. AlexO 135 14.11.12 14:20 Сейчас в теме
(13) sanfoto,
но народ скидывал скрины с моим SQL запросом и там был Shared Memory для 1с 8.3

Так в выборе есть, а работать - не работает, о чем официально заявлено Микрософт.
И проверить нельзя, ровно как и Pipes :)
Ну, "включено" pipes - а что и как и где? Прирост "в разы" только "тест Гилева ни о чем" показывает, а на реальной базе при работе - никакого заметного эффекта, не то, что, в разы (и на локальном сервера два-в-одном тоже! В любом случае, даже если "че-то у вас в консерватории..", там картина существенно не меняется).
На чем и настаиваю - все приведенные якобы "тесты" PN или SM не отражают состояния дел (одно то, что якобы SM "включено", и тесты "взлетают", а разработчик заявляет, что все давно "поломано" - дает повод не то, что усомнится в тестах, а однозначно отвергнуть их; да и, собственно, и так ясно, что меряют непонятно что и непонятно, где).
18. sanfoto 502 14.11.12 14:33 Сейчас в теме
(16) AlexO,
возьмите ДВА абсолютно одинаковых компа
поведите Эксперименты(после каждых настроек перезагрузка):

1)SQL + Сервер 1С(все на Комп1) (включен протокол только Shared Memory)
некая база 1с - замер времени проведения документов 5000

2)SQL + Сервер 1С(все на Комп1) (включен протокол только TCP)
некая база 1с - замер проведения документов 5000

3)SQL(комп1)<---Ethernet ---> Сервер 1С(комп2)(включен протокол только TCP)
некая база 1с - замер проведения документов 5000

Потом выводите свои теории о замерах непонятно чего и где))
20. AlexO 135 14.11.12 14:44 Сейчас в теме
(18) sanfoto,
возьмите ДВА абсолютно одинаковых компа

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

даже ваш любимый! Гилев пишет (хотя все его "статьи" - это перепост и солянка из абзацев исследований более умных людей, потому как Гилев не понимает, что он "настраивает", и зачем напихал все подряд без каких либо объяснений, что можно, и что нельзя, в свои "статьи" настроек серверов):
Оставьте для работы только протоколы TCP/IP и SHARED MEMORY
В версии Express ... по умолчанию выключен протокол TCP/IP, нужный для работы с 1С:Предприятие 8 (осуществялется передача данных - A.).
Протокол именнованных каналов выключите совсем (и для "клиента" тоже на сервере приложений) (потому что проблем от них несравнимо больше, чем какого-то эфемерного прироста скорости, даже Гилев! это понимает (хотя и это тоже списал), хотя и не может объяснить - видимо, ждет, когда ему объяснят, и перепостит себе в статейки).
22. sanfoto 502 14.11.12 14:47 Сейчас в теме
(20) AlexO,
да хто Вам сказал что он мну таки Любимый Авторитет? ))
я его на мисте подколол уже по поводу Shared Memory на 1с 8.2

просто его Тест взял за основу т.к. БД маленькая и легко раскидать желающим потестить и проверить самим))
Сам же делал тесты на реальных копиях баз в районе 66 ГБ объемом))
23. AlexO 135 14.11.12 14:51 Сейчас в теме
(22) sanfoto,
да хто Вам сказал что он мну таки Любимый Авторитет

так а кто пропагандирует "тест Гилева" как основу измерения производительности? :)
24. sanfoto 502 14.11.12 14:58 Сейчас в теме
(23) AlexO,
просто его Тест взял за основу т.к. БД маленькая и легко раскидать желающим потестить и проверить самим))

для предварительной общей оценки системы вполне достаточно))
26. AlexO 135 15.11.12 15:22 Сейчас в теме
(24) sanfoto,
все бы ничего, но 1с уже давно, еще на заре появления 8.0 все "определила" простым и ненапряжным спсособом: "А как будет работать? - Да все ок!"
Не верите? почитайте офстатью на users "Выбор сервера".
17. AlexO 135 14.11.12 14:23 Сейчас в теме
(13) sanfoto,
.. и загрузите скрины из ( 7) в само сообщение ( 7)
19. sanfoto 502 14.11.12 14:34 Сейчас в теме
21. AlexO 135 14.11.12 14:46 Сейчас в теме
(19) sanfoto,
там так и сделано

но у меня не видно ничего... :(
ага.
Надо не РАДИКАЛ давать ссылки, в сообщении нажать "Прикрепить файл" и выбрать рисунки.
А радикал MS сейчас рубит почем зря...
25. sanfoto 502 14.11.12 15:07 Сейчас в теме
(21) AlexO,
в (5) и (7) прикрепил вам картинки
27. AlexO 135 15.11.12 15:23 Сейчас в теме
(25) sanfoto,
ну вот, теперь все ок :)
28. sanfoto 502 16.11.12 06:34 Сейчас в теме
(27) AlexO,
ну думаю бесперспективность разделения(при текущих технологиях)
"MS SQL"<--- Ethernet-->"Сервер 1С" - вам видна из моих рисунков? ))

----------------------------------------------------------------------
вот кстати замерчик интересный можете сами повторить))

1)TRITON1 - 40 попугаев (SQL+сервер 1c, режим TCP) (или Named Pipe - 45 попугаев)
C:\iperf>iperf.exe -c localhost -r
[1812] 0.0-10.0 sec 5.01 GBytes 4.30 Gbits/sec

1)TRITON1(SQL)<---Gigabit Ethernet--->TRITON2(Сервер 1с) - 16 попугаев (что TCP,что Named Pipe)
Запускаем iperf клиент на TRITON2, сервер iperf на TRITON1, размер пакета 4 Килобайта
253 Mbits/sec
29. AlexO 135 16.11.12 10:20 Сейчас в теме
(28) sanfoto,
и что он замерил? Что внутри компа инфа двигается быстрее (причем обезличенная и тестовая), чем по физической сети? А если сеть fiber? :)
Попробуйте.
33. sanfoto 502 16.11.12 13:52 Сейчас в теме
(29) AlexO,
и что он замерил? Что внутри компа инфа двигается быстрее (причем обезличенная и тестовая), чем по физической сети?

причем обезличенная и тестовая - да тестовая в сообщении (28), но тоже самое подтверждается и на рабочих базах.

Вывод то один:
Скорость работы любой ИС зависит от различного вида ЗАДЕРЖЕК, приведу некоторые:

1)задержки на обработке процессором
2)задержки в коммуникационной среде
3)задержки в работе с накопителями информации (диск,оперативная память...)

PS:
А если сеть fiber? :) - вообще-то она используется для работы например с дисковыми полками,
но если вы предложите способ соденить Два компа по TCP/IP посредством fiber - я с удовольствием проверю))
34. AlexO 135 16.11.12 14:03 Сейчас в теме
(33) sanfoto,
Скорость работы любой ИС зависит от различного вида ЗАДЕРЖЕК

вы забыли самую главную "задержку", которая в 1С самая критичная - это обработка данных, чтобы их потом передавать по сети куда-то.
1С-сервер бросает запрос к SQL (пусть и по SM - но это же такая мелочь - управляющий текст запроса), SQL вытягивает данные из "себя" (все, что есть по данной теме, широким охватом), передает их 1С, тот обрабатывает, крутит-вертит как ему надо, дозасылает еще что-то получить из SQL (согласно прохождению по коду выполнения из конфы), опять руктит вертит, и потом, окончательно - выдает пользователю сформированные данные (в отчет, etc).
Проведение документов, которые вы мне предлагали сделать с NP - это пакетное чтение соответствующих наборов записей, их редактирование, и отсылка обратно.
Вот это замерили? нет.
Поэтому и нет прироста никакого от использования SM и NP, что:
1) не настолько они и быстры на самом деле (а SM вообще не поддерживается при передаче данных в SQL)
2) сама по себе передача данных по сети - пшик по сравнению со временем обсчета/верчения на 1С сервере (выборке данных в SQL).
35. AlexO 135 16.11.12 14:06 Сейчас в теме
(33) sanfoto,
вообще-то она используется для работы например с дисковыми полками

а мы не о передаче данных и среде передачи разве говорим? :)
Сеть Ethenet - всего лишь среда/протокол передачи данных, одна из многих. А не основа "сети" а-ля база.
36. sanfoto 502 16.11.12 16:06 Сейчас в теме
(35) AlexO,
забыли самую главную "задержку", которая в 1С самая критичная - это обработка данных, ..

не забыл таки)) за это ответственны:

1)задержки на обработке процессором (фактически частота CPU)
2)задержки в коммуникационной среде
3)задержки в работе с накопителями информации (диск,оперативная память...)

сама по себе передача данных по сети - пшик по сравнению со временем обсчета/верчения на 1С сервере

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


Именно дозасылает еще что-то получить из SQL - даже в 1с запросах как правило на SQL уходит не ОДИН В ОДИН запрос, а еще + различная мелочевка - НАПРИМЕР в 1С запросе написали что-нибудь через ДВЕ-ТРИ ТОЧКИ))

Т.е. например разделили ДВА сервера по Gigabit Ethernet:
1)видим картину нет загрузки сети больше 20% ))) - и системный администратор делает вывод что сети вполне хватает
НО ОН ОШИБАЕТСЯ))
т.к. на самом мелкие пакеты и реальная скорость обмена 250 Мегабит/с то в принципе фиг загрузим сеть под 100%
А если весь обмен идет по ОДНОМУ ПОРТУ то ВСЕ становится в очередь и будь у вас хоть одновременно СОТНЯ ПОЛЬЗОВАТЕЛЕЙ все они будут внутри этих 250 Мегабит и в очереди.


2)т.к. возникает ЗАДЕРЖКА из пункта 1) то возникают ситуации когда
1С сервер ожидает
пока придут данные Основные, притом подкидывая новые запросы на SQL уточняя Основные данные(Объекты внутри Объектов и т.п)


3) т.к. возникают ожидания как следствия из пунктов 1) и 2) - то СИСТЕМНЫЙ АДМИНИСТРАТОР видит:
- нет нагрузки на CPU
- нет нагрузки на диски
и делает вывод - система отлично сбалансирована и имеет значительный запас производительности
но почему-то тормозит 1С - значит корень в самой 1с ибо она Абсолютно кривая и порочная (есть конечно часть правды...в этом...но лишь часть правды))
В ИТОГЕ ОН ОШИБАЕТСЯ т.к. 1С и SQL как получилось имеют медленный канал для обмена ОНИ ПРОСТО ОЖИДАЮТ ДРУГ ДРУГА и НЕ ГРУЗЯТ CPU и Диски
37. sanfoto 502 16.11.12 16:28 Сейчас в теме
(36) sanfoto,
частично сэмулировать данную проблему можно следующим образом
1)берем Файловую 1С с объемом базы побольше
2)берем скоростной комп - но с Объемом оперативки небольшим (чтобы Кэшировалось поменьше)
3)берем какой-нибудь накопитель со скоростью Чтениние/Запись не больше 30 Мегабайт/с (250 Мегабит/с)
ставим замеры скорости проведения документов))

потом
4)берем какой-нибудь накопитель со скоростью Чтениние/Запись 500 Мегабайт/с
ставим замеры скорости проведения документов))


и все увидите))
10. AlexO 135 14.11.12 11:52 Сейчас в теме
(7) sanfoto,
картинки прицепите прямо к сообщению - а то не видно их.. файервол рубит.
38. sanfoto 502 20.11.12 08:07 Сейчас в теме
Есть Иной способ решения Связки "1С" с "MS-SQL" это перенести ВСЮ ЛОГИКУ на сам MS SQL,
т.е. практически не использовать программирование на языке 1С,
а писать встроенные процедуры в SQL и Использовать от 1с только внешний вид на клиентах)).


Таки этот путь ОЧЧЧЕНЬ сложен в реализации и это уже будет не 1С)).
И только такой путь может СНЯТЬ СИЛЬНУЮ зависимость от коммуникационной среды передачи данных. ИМХО вся бизнес логика будет крутится внутри самого SQL.

Но это не мой путь, затраты+время на разработку + поддержка = "не стоит игра свеч".
39. hogik 443 20.11.12 18:16 Сейчас в теме
(38)
Что означает красный цвет шрифта в первом абзаце? :-)
Есть еще один способ. Файловая версия на полноценной сУБД.
адуырщдв; +1 Ответить
41. sanfoto 502 22.11.12 12:20 Сейчас в теме
(39) hogik,
красный так выбрал от балды)) чтобы выделить

Файловая версия на полноценной сУБД.

Дык вы пока пока только для 1с 7.7 "обманку" сделали))),
а с 1С 8.х - ваши слова "не занимался ею и при жизни не буду" ))))

А самой фирме 1С - на эти проблемы извините за выражение насрать. ))
40. tango 543 21.11.12 10:17 Сейчас в теме
Господа, коллеги, куда платформа пишет временные таблицы запроса в файловом варианте?
http://www.forum.mista.ru/topic.php?id=606126
42. sanfoto 502 22.11.12 12:32 Сейчас в теме
(40) tango,
Для 1с 8.х думаю в "%userTemp" или "%userTMP" как и для 1с 7.7 - только расширения разные(у 7.7 это DBF был)
43. AlexO 135 03.04.13 11:32 Сейчас в теме
(42) sanfoto,
в "%userTemp" или "%userTMP"

туда в принципе пишется некий темп-кэш.
Без разделения на временные таблицы или еще что.
А конкретно по временным - скорей всего, некая эмуляция механизма SQL с созданием доптаблиц в самом файле 1CD.
А уж что они там между собой кидают в темп, а что - остается в 1CD, никто никогда не узнает :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот