bdd2


Лустин Алексей

770
Рейтинг

Алексей Лустин
lustin



  •   Регистрация: 23.04.2007 (9 лет назад)

  •   Был(а) на сайте: 19.01.2017


Группы

Профессиональный разработчик

IE 2012 Докладчик

IE 2013 EVO Участник

Партнер IS-WP

IE 2013 REV Докладчик

IE 2014 Участник

Член клуба Infostart Expert

IE 2015 Докладчик

IE 2015 Участник

IE 2016 Участник

Карта покупателя GOLD

Рейтинг 770

Публикации

Приходя на проекты, где необходимы серьезные архитектурные решения, в прошлом году я столкнулся… Скажем, так - с завышенными ожиданиями от компетенций. То есть если вкратце – некоторые вещи, которые для нас представляют собой «базовые», для наших партнеров и друзей оказывались «открытием Америки». Почему так складывается? Лично моё предположение, что за счет огромного количества рутины – у большинства специалистов не хватает времени поднять голову и взглянуть на свою деятельность системно


Данный доклад был подготовлен специально для конференции Infostart Event Connection. То, о чем я буду сейчас говорить, делает максимум 10 компаний в мире. В России это делают компании уровня Альфа-банка и СберТеха. Казалось бы, это – космос, но я попробую вас к этому космосу приблизить и рассказать, почему это важно начать делать именно сейчас.


Данная статья написана по материалам доклада, прочитанного автором на Конференции Инфостарта IE 2014 29-31 октября 2014 года. Речь пойдет о стратегии


Данная статья написана по материалам доклада, прочитанного автором на первой конференции инфостарта 2012 года. Она опубликована в журнале Инфостарта №1. Речь в статье пойдет об уровнях абстракции, о том, что необходимо для того, чтобы исключить проблемы, связанные с утечкой абстракций. Также будут рассмотрены вопросы наличия у программистов 1С системного мышления, поиска причинно-следственных связей и умения принимать обоснованные решения в сложных условиях. Это самые главные качества, необходимые программисту.


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


в чем же проблема карьерного роста - как заработать не уезжая, или наоборот уехать. Как повысить свой уровень как программиста. Самое главное - описать проблему, вот этим мы и занялись. А что из этого получилось просим просмотреть сообщество.


Хотите чтобы MS SQL подсказывал Вам, в каком объекте вы строите не оптимальные запросы или неверно спроектировали метаданные - тогда спросите у него это.


проба реализации нескольких функций глобального модуля (для НЕлюбителей 1С++)


Оптимизация, оптимизация, оптимизация !!! Использование новых механизмов, для решения старых задач


Обработка демонстрирует возможности некоторых объектов ВК 1С++ и FormEx. а также применение некоторых методов: 1. УложитьСписокОбъектов() в качестве замены рекурсии по выборке элементов. 2. ИТЗ.Группировать() в качестве примера получения структурированного дерева для объекта "Дерево+Таблица" из состава FormEx


Комментарии

Управление проектамиDevOps для 1С, или мы все теперь инженеры бизнес-приложений#53 18.01.17 1:03
(52) ждем 8.3.10 тогда можно выводить Редис в зону продуктива. Пока это все эксперименты как раз в рамках сообщества.

Я знаю 5-рых кто уже ведет эксперименты с портированием ActiveSupport:Cache на 1С с хранилищем на Redis
Все пока подсмматривают сюда http://api.rubyonrails.org/files/activesupport/lib/active_support/cache_rb.html
ВебинарыНепрерывная проверка качества кодирования C#, Java, PHP, etc#2 17.01.17 14:17
(0) сегодня к вечеру будет обновленная документация к вечеру, документация будет дополнена простым описанием функционала самого Сонара ;-)

об изменениях оповещу дополнительным сообщением.

Учитывая просьбу клиентов - "центральный Сонар" для вебинара развернут на Windows Server 2012.
ВебинарыНепрерывная проверка качества кодирования C#, Java, PHP, etc#1 15.01.17 14:56
(0) коллеги. Базовая документация к вебинару получилась несколько длинней чем я предполагал, поэтому:

*https://www.silverbulleters.org/sonarqubedocs/
*прямая ссылка https://www.silverbulleters.org/wp-content/uploads/2017/01/SonarQube-na-russkom-SilverBulleters-v0.9.1.pdf

а я сосредоточусь именно на подготовке самого вебинара - куда нажимать, что делать, на что обратить внимание.
ВебинарыХватит нагибать СУБД - "рефакторьте" метаданные#23 13.01.17 13:21
(19) (0) попрошу Павла создать закрытую группу - есть 8 скриптов и сама презентация как конспект.

(18) завтра отвечу - не против ?
ВебинарыХватит нагибать СУБД - "рефакторьте" метаданные#11 11.01.17 11:58
(0) коллеги - принимаю вопросы в личку заранее. вечером сегодня делаю финальный прогон того что у меня есть, но хочется улучшить и сделать небольшой FAQ. Можно в личку инфостарта, можно на почту social@silverbulleters.org.

AdminВсем нужен эксперт#48 10.01.17 9:52
(42) уважаемый. Я сознательно Вам ничего не представляю... Когда закончите использовать формулировки типа "Ничего по делу нет". Вы умный, мы глупые - Вам удачи.
AdminВсем нужен эксперт#41 10.01.17 3:10
(38) еще как кладут... да так кладут, что могут за сутки "полтеррабайта" через temdb прогнать.

Вообще - я на вебинаре покажу 2 метрики которую я всегда смотрю в части временных таблиц:

* объем данных проведенных через tempdb деленный на объем данных базы данных - если за сутки этот параметр составляет более 20%: ищи в коде помещение во временные таблицы больших объемов данных: косяк там.

если

Код
exec sp_BlitzCache @ExpertMode = 1, @SortOrder = 'reads'


в качестве участника запроса выводит хоть что-то связанное с
Цитата
#tt
- ищи временные таблицы в 1С без индексов.

В любом случае - это всегда проблема логики запросов, а не индексов на временной таблицы. Но как показывает практики - эффект достигается простым индексированием как заметили коллеги
AdminВсем нужен эксперт#40 10.01.17 2:57
(35) Никит - я напомню. Мы пишем код на 1С.

Поэтому:

вот эта конструкция багом не считается - что там этих пользователей то ? 100-200 строк.

Код
CRE ATE   TABLE #Users
    (
        ID          INT IDENTITY(1,1),
        UserID      INT,
        UserName    VARCHAR(50)
    )
    
    INS ERT IN TO #Users
    (
        UserID,
        UserName
    )   
    SEL ECT 
         UserID     = u.UserID
        ,UserName   = u.UserName
    FR OM dbo.Users u


а вот это считается

Код
ВЫБРАТЬ
  Пользователи.Ссылка
ПОМЕСТИТЬ втПользователи
ИЗ Справочник.Пользователи как Пользователи


И я опять же - достаточно прозрачно добавил.
Цитата
Если не доказано обратное
.
Если у Вас достаточно знаний и компетенций, чтобы это обосновать - Вам почет и уважуха. Если нет - будьте любезны индексировать временную таблицу в 1С.

Все что происходит сейчас в нашей дискуссии является классической ошибкой грамотного DBA. Он забывает что 1С:

* это некий такой ORM
* сегодня это MSSQL, а завтра что-то другое
* DBA всегда кажется что его знания про физику MSSQL достаточно для построения рекомендаций в части проектирования метаданных и выработки стандарта кодирования

несколько лет назад был такой же "холивар" про отсутствующие индексы.

Если подытожить, то получается - всем понравилась секция где я описал, на какие классические косяки 1С-ников мы нарвались в прошлом году. Если я правильно понял - я наступил на больную мозоль и основные участники считают:

* временные таблицы в 1С индексировать не надо
* контролировать количество соединений в 1С запросе не надо
* всё отдаем на откуп оптимизатора MSSQL - он магичен, он дальше разберется.

Как я указал выше - если где-то мы с Вами пересечемся: придется "похоливарить". Но извините за деньги вашего заказчика. Бесплатно мне что-то холиварить не хочется - в прошлом году мы и так задолбались объяснять прописные истины.
AdminВсем нужен эксперт#27 09.01.17 23:57
(22) началось... пошли слова "бред", "селективность", "нахватался".

специально для Вас в статье секция
Цитата
Вы с чем то в статье не согласны?

(23) Саш - ты чего, это же классический "микровебинар" Брента Самый показательный в мире вебинар про сохраненный план запроса

AdminВсем нужен эксперт#15 09.01.17 17:53
(13) Вот это вот и классическая проблема - якобы какой-то оптимизатор, какой то СУБД что-то сделает за Вас. И вы осознанно на это забиваете - а потом внезапно оказывается, что оптимизатор не такой уж оптимальный, да и СУБД бывают разные. И в итоге мы все возвращаемся к истокам. А истоки нам показывают, что надежда на физический оптимизатор и есть тонкий тюнинг, а вначале следует логика запроса, которая никогда не должна быть "оптимизаторо-зависимой".

То есть повторюсь - я прекрасно знаю что оптимизатор MSSQL и две настройки

* optimize for ad hoc workloads = 1
* traceflag on 4199

Дают для 1С вауэффект, но это уже тюнинг на уровне СУБД, а причина то кроется совершенно в другом.

очень много запросов в рамках аудита у нас выглядит примерно так (псевдокод):

Код
ВЫБРАТЬ * 
ПОМЕСТИТЬ втНоменклатуры
ИЗ Справочник.Номенклатура;
ВЫБРАТЬ ПЕРВЫЕ 1 
ИЗ РегистрСведений.Цены как ТипаЦены
ЛЕВОЕ СОЕДИНЕНИЕ втНоменклатуры ПО ТипаЦены.Товар = втНоменклатуры.Ссылка
ГДЕ ТипаЦены.Товар = &ФильтрПоТовару


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