0. darkdan77 299 23.01.20 16:33 Сейчас в теме

Оптимизатор запросов. Вторая часть

Продолжение статьи об оптимизаторе запросов. Во второй части мы попробуем создать свой оптимизатор и попутно разберемся с такими вопросами, как: хранение файлов; индексы; статистика.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. acanta 73 24.01.20 01:00 Сейчас в теме
Ничего не понятно, но очень интересно. Спасибо за труд. Возник вопрос - является ли включение необходимых индексов в sql достаточным для того, чтобы они использовались при выполнении команды из 1с?
Или индекс обязательно должен быть описан в конфигурации?
darkdan77; PLAstic; +2 Ответить
2. PerlAmutor 56 24.01.20 06:35 Сейчас в теме
(1) Наличие индексов само по себе не означает, что он будет использоваться. Задача программиста написать запрос таким образом, чтобы он мог использоваться. Даже если запрос написан идеально, то и это не означает, что индекс будет использоваться. Зависит от того, что решит оптимизатор. В некоторых случаях, лишний или неправильно (низкоселективный) добавленный индекс, может даже ухудшить время выполнения запроса. На разном железе одинаковая программная среда на одинаковых данных (с теми же индексами) тоже может показывать разные результаты. Например, если имеет узкое место в производительности процессора. Оптимизатору может не хватить времени на построение плана запроса и он всё бросит и попытается выполнить запрос "как есть", т.к. посчитает, что он выполниться быстрее, чем построится оптимальный план запроса. Для одних и тех же запросов может строится план каждый раз новый, только потому, что в нем используются временные таблицы и SQL сервер глядя каждый раз на "#Temp1", "#Temp2", "#Temp3" будет думать, что это совершенно разные запросы. В итоге у одного и того же пользователя один и тот же отчет сформированный несколько раз может формироваться за разное время. Лишь потому что, когда он формировал день назад этот отчет в таблице было 100к записей и использовалось имя временной таблицы "#Temp1", план запроса попал в кэш, а сегодня там уже 1кк записей и используется имя "#Temp2", где для запроса в кэше план запроса совсем другой...
A_Max; AnatolPopov; fancy; Fox-trot; m_aster; logarifm; sapervodichka; Rustig; acanta; SerVer1C; +10 Ответить
3. darkdan77 299 24.01.20 07:18 Сейчас в теме
(2) Я даже среагировать не успел. Спасибо за ваш ответ. Мне добавить уже нечего.
21. sapervodichka 3033 25.01.20 15:03 Сейчас в теме
(2) Влад, привет, на мой взгляд это мог быть не отдельный комментарий, а статья. У тебя критика всегда несёт ценный поучительный посыл. Пиши!
20. darkdan77 299 25.01.20 14:30 Сейчас в теме
(1) Я бы вам дал приз за самый прикольный комментарий.
33. buganov 144 26.01.20 13:57 Сейчас в теме
(1)кстати, включение новых индексов в SSMS может дать прирост по чтению, но негативно будет влиять на запись. Представьте себе, что у Вас в регистре 5 измерений и на каждое из них Вы сделаете на всякий случай по индексу. В итоге у Вас при записи будет сначала поиск куда вставить, а потом сама вставка. И так 5 раз. Если индексов будет больше, то и вставок больше. Если система высоконагруженная и СУБД в режиме блокировочника, то Вы будете простаивать на блокировках. Потому что пишущая транзакция будет ожидать, если на хотя бы одну запись хотя бы по одному индексу есть пишущая другая транзакция.
Индекс это и хорошо и опасно одновременно
4. strek_ivan 71 24.01.20 09:28 Сейчас в теме
Коллеги,
тема индексов и производительности баз данных весьма ёмкая и очень волнует нас, но вопросов от вас что-то не видно! ))

Я выражаю Данису благодарность за проработку интересного материала, Вам удалось создать простую, понятную статью с полезным наполнением.
34. buganov 144 26.01.20 14:12 Сейчас в теме
(4) а вопросы возникают только тогда, когда в голове четко раскрывается тема статьи, а не просто, как из ведра вываленная на голову информация, которая даже в официальной документации не такая сухая. Плюс забавные ошибки от автора, который заявляет, что занимается давно оптимизацией, при этом заявляет, что запрос исполняется справа налево и что оптимизатор на самом то деле никак не вычисляет сколько данных полетит в том или ином случае, а только ищет их "вероятность". Он ведь не в 21 играет.
Да, труд большой проделан, но, увы, хуже статей по оптимизации я не видел. Да, тот же Короткевич очень быстро говорит на вебинарах, что делает достаточно трудным понимание, что он говорит, но на ютубе можно и замедлить скорость воспроизведения. И кстати, индексы я в полной мере понял, как работают только ему и Богачеву. Именно работают, а не тупо теорию.
35. acanta 73 26.01.20 14:29 Сейчас в теме
(34) и чем теория отличается от реальной работы индексов?
36. buganov 144 26.01.20 15:04 Сейчас в теме
(35)я не сравниваю теорию и практику, я сравниваю стиль изложения. И тот факт, что прочитав одних авторов сразу все встает на свои места, читая других засыпаешь. Банальный пример, когда я учился программированию в 1С, первым делом прочитал Радченко Хрусталеву, изумительно написанная книга. Потом из нежелтых авторов, только запутался. Вот Вы в первом же сообщении написали, что ничего не понятно. Смысл то статьи был как раз в том, чтобы Вам стало понятно. Рассказать простыми словами с примерами о сложных вещах. Почитайте Пермитина, он тоже пишет про работу MSSQL Server, но блин, ему Пулитцера надо вручить за его статьи.
5. login1020 56 24.01.20 10:15 Сейчас в теме
А можно перевыложить в качестве?
Прикрепленные файлы:
6. darkdan77 299 24.01.20 10:37 Сейчас в теме
(5) Я ее перерисую и выложу в комментариях. Сегодня (24.01.2019),в районе 18.00 - 19.00 по московскому времени
7. darkdan77 299 24.01.20 10:56 Сейчас в теме
(6)Извиняюсь. Дату неправильно поставил 24.01.2020
8. darkdan77 299 24.01.20 11:45 Сейчас в теме
(5) В прикрепленном файле рисунок. Должно быть видно.
Прикрепленные файлы:
user774630; login1020; +2 Ответить
9. logarifm 1073 25.01.20 01:10 Сейчас в теме
Бред же написан:
А у нашего, горячо любимого, оптимизатора, помимо предположений, есть еще полное незнание структуры базы данных, с которыми он работает.


Оптимизатор все прекрасно знает и формирует план запроса опираясь именно на знания того какова статистика у ваших таблиц именно это является основной и не отлемлимой частью на, что опирается оптимизатор.

Почему "ошибается" в этом есть ряд причин. Но то что вы написали, что он ничего не знает - это чушь!
13. darkdan77 299 25.01.20 09:34 Сейчас в теме
(9) Оптимизатор не знает ничего до того, как данные поступят к нему на вход. В разных СУБД используются разные подходы к обработке входящих данных. Где-то это будут генетические алгоритмы, где-то нейронная сеть. И это область вероятностного программирования. Или, скажете, что я не прав? Повторюсь, реализация оптимизатора в разных СУБД различна. Есть только одно общее - это программа для обработки своих входящих данных и выдаче результата. Я участвовал в проекте разработке системы управления для стат. данных (это тоже СУБД) . У нас оптимизатор работал на ГА (генетические алгоритмы). Входные данные для него - это набор числовых значений. Никакой структуры БД там нет. Статистика тоже переведена на язык цифр. Для оптимизатора важно даже не выбрать, а сделать прогноз. Да, я не стал говорить о предполагаемом и фактическим исполнении запроса, но это тема здесь, думаю, не так интересна. Хотя здесь, я может и не прав. Но то, что оптимизатор не знает о структуре БД - это точно, да и не надо это ему.
10. logarifm 1073 25.01.20 01:27 Сейчас в теме
и тут брехня:
Информация на диске хранится в виде страниц.


Хранение организовано в виде иерархических структур:

База данных. Наивысший уровень абстракции для хранилища данных

Файл. Для хранения 1 базы данных по умолчанию используется два файла.

В первом физическом файле базы данных хранится реальная информация. .mdf
Второй файл является вспомогательным файлом базы данных – ее журналом. .ldf, и без него база данных работать не будет.
Экстент. Являет собой основную единицу пространства, выделяемую под таблицу или индекс. Экстент состоит из максимальных восьми смежных страниц данных. В SQL Server при создании таблицы изначально не выделяется ни одной страницы. Они добавляются только при вставке в таблицу новых строк. С этого момента при необходимости дополнительного пространства для хранения данных SQL Server будет выделяться как минимум экстент. Экстенты бывают двух типов:

Разделяемые экстенты. Разделяемые экстенты могут совместно использоваться восемью различными объектами (т. е. каждая страница экстента может принадлежать другому объекту). Все создаваемые таблицы и индексы помещаются в разделяемые экстенты. Как только количество страниц, выделенных под объект, достигает восьми, для объекта будет выделен новый однородный экстент.
Однородные экстенты. Структура однородных экстентов понятна из названия. Каждая страница такого экстента принадлежит одному и тому же объекту.
Страница. Является элементарной единицей пространства выделяемого внутри отдельного экстента. Размер страницы составляет 8 КБ. Страница может рассматриваться как контейнер для хранения и строк таблиц и индексов. Одна строка не может быть разделена между двумя страницами. Страница состоит:

Заголовок страницы (page header); заголовок включает: номер страницы, тип страницы, количество свободного пространства на странице, идентификатор единицы распределения объекта, которому принадлежит страница.
Сами данные
Указатели смещения строк (row offset).

Ребята не читайте - автор как говорится слышал дзвон но не знает где он!!!

https://github.com/Panda-Lewandowski/DataBase/wiki/48.-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4-%D1%84%D0%B8%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3­%D0%BE-%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B4%D0%B8%D1%81%D0%BA%D0%B5-%D0%B2-SQL-Server

Также можно почитать Вьейру.
14. darkdan77 299 25.01.20 09:45 Сейчас в теме
(10) Вы опять опираетесь на одну СУБД - это первое. Второе - логический и физический уровень хранения у вас сплетены в одно. А вы в курсе, что, помимо экстентов, есть и другие логические виды хранения? Сможете привести их здесь. Согласен с вами в том, что нужно было разделить понятия и объяснить, что такое минимальная единица хранения и во что это можно объединить. И второе, с чем мог бы быть согласен, надо было попробовать придумать свою систему хранения и показать как можно ей распоряжаться, но это уже область создания СУБД, а не только оптимизатора. И еще, у вас же написано, что данные лежат в страницах.
15. darkdan77 299 25.01.20 10:13 Сейчас в теме
(10) Немного об абстрактном. Файлы на диске, когда мы смотрим через проводник, лежат в каталогах (папках). Что такое каталог? - Его можно рассматривать как что-то объединяющее файлы (мы так и видим его) и можно рассматривать как файл, который содержит записи о других файлах (так видит его система). Минимальной единицей хранения для файла будет кластер. Минимальной интересующей нас единицей - будет файл. Мы можем придумать еще разные способы хранения. Например, мы можем сделать файлы, куда запишем записи о файлах распределенных по дате создания. То есть, файл за первое число содержит строки о файлах созданных первого числа. Потом предоставить пользователю календарь, открывая который, он будет видеть созданные файлы за этот день. Это будет другое представление файлов на компьютере. Но единицей хранения все равно будет файл. Я прошу вас разделять понятия и уровни.
11. logarifm 1073 25.01.20 01:29 Сейчас в теме
12. logarifm 1073 25.01.20 01:32 Сейчас в теме
16. logarifm 1073 25.01.20 12:22 Сейчас в теме
Так ваша статья описует какую СУБД - никакую! Опираться надо на определенный вид СУБД, а то есть на статичиски часто используемые. Она абсолютно далека от оракла но немножко приблежена к МС скл и вы такой мне говорите, что абстрактны. В потгресе там вообще все иначе о какой абстракции идет разговор вообще. Если Вы затрагиваете такие темы как Страницы то извольте уже четко описать потому как разные СУБД хранят по разному структуру так заных страниц МС СКЛ в эстентах постгря вообще по другому я уже молчу то, что для ее не желательно НТФС раздел.
18. darkdan77 299 25.01.20 13:36 Сейчас в теме
(16) Верно. Статья использует никакую СУБД. Примеры сделаны для мс скл. Статья рассматривает работу оптимизатора и факторы, на это влияющие. У меня к вам вопрос: Если где то сегмент назовется страницей, что произойдет? Признаю, мне надо было назвать это минимальной интересующей нас единицей информации на диске. Только это долго, а название "страница" очень точно отражает суть.
Странно, что вы не обратили на индексы. Здесь еще больше можно найти претензий. Даю подсказку: Их количество неполное, организация в файлах не такая, как написана. Предлагаю вам. Вместо того, чтобы вести бесполезные споры, напишите, как бы хотели видеть статью.
24. logarifm 1073 25.01.20 15:16 Сейчас в теме
(18)
единицей информации н

Статья даная не дотягивает она сырая - это черновик далек от реального труда. По сему многие думаю меня поддержат. Знающие люди не трогают эту глубину основ ибо она необъятная и все что необходимо уже давно написано в умных книгах я уже написал Роберт Виейра очень много трудов. Вот, что действительно заслуживает внимания. Там все четко сказано как работает оптимизатор, что такое индексы. А статья это публицистика никому ненужная и уж более того путаяющая не экспертов. Потому как человек который не совсем в этом разбирайтется зайдет и воспримет все это за чистую монету. А что скажут те кто уже сотню раз оптимизировал системы. Интересно узнать мнение у настоящих экспертов, что они думают по поводу даной статьи потому как я не знаю на кого она расчитана. Материал изложен абсолютно не полностью да и напутано.
28. darkdan77 299 25.01.20 16:11 Сейчас в теме
(24) Именно потому, что сотню раз оптимизировал системы, я и написал так. Насчет того, что нужна работа по оптимизатору (или ссылки на такую работу) - ссылок у меня нет, а вот продолжение я теперь обязательно напишу.
strek_ivan; acanta; +2 1 Ответить
29. acanta 73 25.01.20 16:28 Сейчас в теме
(28) спасибо, будем рады увидеть продолжение.
На инфостарте сложная, многослойная аудитория, как консультанты, поверхностно знакомые с платформой и минимально с СУБД, так и администраторы-профессионалы.
Написать что-то, и интересное и понятное сразу всем очень сложно.
Было бы интересно также узнать о ваших выводах из обширной практики по оптимизации.
30. darkdan77 299 25.01.20 17:29 Сейчас в теме
(29) Напишу. Скорее всего, получится несколько статей (если в одну не смогу уложиться). Я вижу, что я неправильно сделал: мне надо разбить на модули все - от запроса и до плана выполнения. То есть, все проходы: разобрали запрос (объект парсер), построили дерево (объект rewriter), отдали на планирование и оптимизацию, построили план и отдали executor-у. Ну зато опыт. Научусь здесь и курсы открою :))) Пользователь, по ником logarifm, прав, что надо все аспекты раскрыть. А то непонятки получаются. Я так понял, он хочет увидеть весь этап, а я только одну часть описал. Вот теперь займусь продолжением (или лучше сказать - дополнением).
17. logarifm 1073 25.01.20 12:23 Сейчас в теме
Оптимизатор на входе , что значит не знает что за чушь непонятная... А причем тут вообще нейросети.
19. darkdan77 299 25.01.20 13:47 Сейчас в теме
(17) А как вы представляете работу оптимизатора? Думаете ему на вход идут названия таблиц, полей, индексов и прочее?
И отвечая на ваш вопрос: причем тут нейросети? - Машину можно обучить выбирать лучшее из возможных на основе нейросетей и, если не ошибаюсь, в том же постгрес ведутся разработки в этом направлении. А может и уже есть. У нас система переводится на нейросеть. Первые модели уже дают результат. Так что нейросеть здесь - очень даже причем. Вы сформулируйте то, что по вашему должна была описать статья. Давайте начнем с этого
22. logarifm 1073 25.01.20 15:05 Сейчас в теме
(19) а на базе чего написана Ваша статья собственных домыслов? А что входит в оптимизатор на вход!? Давайте опишите ссылки труда необходимо предоставить на базе чего все эти домысли.
23. logarifm 1073 25.01.20 15:07 Сейчас в теме
Я предоставил четкие ссылки на опровержение того, что тут понаписано вначале. Насет оптимизатора и насчет структуры файла - это ересь!
26. darkdan77 299 25.01.20 15:55 Сейчас в теме
(23) Возвращаю вам вашу же ссылку: https://github.com/Panda-Lewandowski/DataBase/wiki/48.-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4-%D1%84%D0%B8%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3­%D0%BE-%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BD%D0%B0-%D0%B4%D0%B8%D1%81%D0%BA%D0%B5-%D0%B2-SQL-Server

Страница. Является элементарной единицей пространства выделяемого внутри отдельного экстента. Размер страницы составляет 8 КБ. Страница может рассматриваться как контейнер для хранения и строк таблиц и индексов. Одна строка не может быть разделена между двумя страницами. Страница состоит:

Заголовок страницы (page header); заголовок включает: номер страницы, тип страницы, количество свободного пространства на странице, идентификатор единицы распределения объекта, которому принадлежит страница.
Сами данные
Указатели смещения строк (row offset).
25. acanta 73 25.01.20 15:23 Сейчас в теме
Кстати ситуация, когда программист 1с приходит из отпуска и ему как бы неплохо внести в конфигурациях изменения на предмет добавления в них индексов, на горячую вставленных сисадмином по результатам работы какого нибудь отчета, вполне реальная и недавно обсуждалась в публикациях.
Есть ли инструмент "для 1с Ника" позволяющий обнаружить несоответствие индексов и полей в конфигурациях и в СУБД? Кроме монопольного тестирования и исправления на копии в базе 24/7?
27. darkdan77 299 25.01.20 16:01 Сейчас в теме
(25) В рамках 1с не знаю. Обычно, для популярных систем есть свои консоли для обслуживания. В MS SQL - Management Studio; Postgres - есть pgAdmin (под виндой тоже работает).
31. buganov 144 26.01.20 13:32 Сейчас в теме
(25)в MSSQL Server есть DMVшки, которые подсказывают, какие индексы хочет субд и какой эффект будет от них
dm_db_missing_index_groups
dm_db_missing_index_group_stats
dm_db_missing_index_details
32. buganov 144 26.01.20 13:51 Сейчас в теме
Можно кинуть в меня ссылкой на документацию, или другой источник, что оптимизатор оперирует вероятностями, а не данными? Точнее не самими данными, а их распределением по статистике.
Насколько мне известно, то оптимизатор как раз таки смотрит какие таблицы используются в запросе, их ёмкость, индексы этих таблиц, условия и дальше старается максимально эффективно сделать первую и последующие извлечения данных из таблиц(индексов), чтобы при первом извлечении данных на вход следующему оператору пошло как можно меньше данных.

Да, статьи по оптимизации всегда должны априори иметь 100500 плюсов, но у Вас есть один огромный недостаток, как по мне. Мне лично просто неинтересно читать. Не потому, что я это все давно знаю, я всегда стараюсь перечитывать одни и те же статьи, чтобы ухватить то, что не уловил в прошлый раз, у Вас просто написано языком, словно Вы лабу защищаете в ВУЗе, очень сухой язык. Тяжело читать.

Для всех желающих, кто хочет углубиться в работу MSSQL может посмотреть цикл вебинаров Короткевича на ютубе. А для понимания принципов работы СУБД, индексов и как 1С взаимодействует с СУБД тут несомненно Богачев будет в лидерах. Хотя, Короткевича стоит посмотреть хотя бы потому, что он спускается на очень низкий уровень раскрытия. Например, почему оптимизатор может выбрать скан кластерного индекса, а не seek по некластерному индексу.

"Когда вы будете получать план запроса, обратите внимание, что выполняется он справа налево"
Вообще то, поток операторов идет слева направо, а поток данных идет справа. Левый оператор передает правому инструкции о том, что ожидает на вход. Но никак не наоборот!

"Для того, чтобы посмотреть план запроса в среде Management Studio"
Интересно, для чего выполнять запрос и получать его план непосредственно в SSMS? Чтобы показать умение SQL? Особенно странно это читать в разрезе 1С. Гораздно кошернее было бы снять трассу теми же расширенными событиями и получить планы без особого вреда системе.

В целом, почитайте статьи на ИТС, у Андрея Бурмистрова, Юрия Пермитина. Даже ИТС написана более изящным языком, что ли? Курсы-1с-рф в разделе статьи тоже не мешало бы.

И отдельный минус рецензенту за допуск ошибок в статье.
triviumfan; logarifm; +2 Ответить
37. logarifm 1073 26.01.20 15:25 Сейчас в теме
(32)Почитайте мои комментарии я также бросал в автора статьи камнем но народ странный и еще лайкает это творение. Хуже статьи не видел на самом деле. Более того эта стаья вообще не относиться ни коем образом к оптимизаии и уж более чем к оптимизатору запросов, чем автор сам заявил, что все его высказывания это собственные домысли и не базируется ничем кроме как его собственных. Нет никакой документации ничего - так что продолжайте плюсовать !!
38. acanta 73 26.01.20 15:31 Сейчас в теме
(37) вы не правы. Логика есть всегда, а понимать заказчика это жизненно необходимый скилл.
Вы же не собираетесь конкурировать с вашими заказчиками? Так почему же столь требовательны к вашим коллегам?
Любое техническое задание или инструкции пользователя могут быть написаны в авторском стиле, не говоря уже о многих нетленках.
40. buganov 144 26.01.20 15:40 Сейчас в теме
(38) ТС написал статью с ошибками. Человек, начавший изучение связку 1С-СУБД может выбрать неверный путь по изучению, как следствие, будет сформировано неверное представление о работе СУБД и такой программист просто либо будет посмешищем, либо будет переучиваться. Ошибочные статьи гораздо вреднее, чем чтение сухой документации. К тому же, эта статья написана таким же невероятно скучным языком.
logarifm; +1 Ответить
41. buganov 144 26.01.20 15:41 Сейчас в теме
(38)К тому же, автору предложили подтвердить его тезисы документацией. Он ее не привел
39. darkdan77 299 26.01.20 15:34 Сейчас в теме
(32) Планировщик, а в некоторых СУБД экзекьютор знают о таблицах, разложенных в деревья запросах, индексах (чаще всего, это пути и их стоимость. Если не ошибаюсь, то постгрес даже функции называет как путевые). Оптимизатор, как часть всего процесса, использует вероятности. Если система управления дает выбор на основе переключателя (операторы switch case), то это значит, что оптимизатор не сработал (не до конца сработал, или, вообще, его нет).
42. buganov 144 26.01.20 15:42 Сейчас в теме
(39) Можно документацию по вероятностям и оптимизатору? Любую, постгре, MSSQL, да хоть оракл.
И укажите, пожалуйста, какой литературой Вы пользовались, когда писали статью
43. darkdan77 299 26.01.20 16:12 Сейчас в теме
(42) Постгрес. Документация к 11.1.1 Часть седьмая.Внутреннее устройство. Глава 57.Генетический оптимизатор запросов
44. buganov 144 26.01.20 16:38 Сейчас в теме
(43)В процедуре планирования в GEQO используется код стандартного планировщика, который строит планы сканирования отдельных отношений. Затем вырабатываются планы соединений с применением генетического подхода. Как было сказано выше, каждый план соединения представляется последовательностью чисел, определяющей порядок соединений базовых отношений. На начальной стадии код GEQO просто случайным образом генерирует несколько возможных последовательностей. Затем для каждой рассматриваемой последовательности вызывается функция стандартного планировщика, оценивающая стоимость запроса в случае выбора этого порядка соединений.

ТО есть по сути, он от балды набрасывает планы, а дальше планировщик их оценивает. Тут вероятности только при предложении планОВ планирову, который так же пойдет к статистике, индексам, чтобы оценить какой план наиболее шустрый. Если успеет, конечно же=)
logarifm; acanta; +2 Ответить
45. darkdan77 299 26.01.20 17:49 Сейчас в теме
(44) Не от балды. От лучшей из особей, в случае ГА. Поймите, мы можем сейчас долго спорить и показывать чье кунгфу круче.Вы сейчас даете повод зацепиться за ваши слова
и я тоже могу кричать: не вводите людей в заблуждение, а то они будут думать, что оптимизатор на основе фигни работает. Но я лучше соглашусь и продолжу. От балды :) может быть вычисленные значения для мутации или для скрещивания, или начальных значений. В постгрес оптимизатор работаем на уровне соединений, а это значит, что планировщик - либо на уровне выборки значений, либо на уровне переключателей (в статье - по соответствиям, в постгресе по стоимости путей). Оптимизатор - это часть процесса, а не весь процесс. Согласен, что в статье я это не выделил. И еще согласен с тем, что надо было указать, что ЧИТАЕТСЯ запрос справа налево, а не выполняется. Уж, простите. Тут моя оговорка. Есть еще одна ошибка: вместо "План запроса" я написал "Оптимизатор" - это в строке, где рассказывается как можно получить план запроса. Материал сухо изложен... Что же, я постараюсь как-то по другому излагать.
46. VmvLer 27.01.20 10:45 Сейчас в теме
(45) че, первый раз тролля видите?
по (37) очевидно же, что даже смотреть в ту сторону не логично.
47. logarifm 1073 27.01.20 11:13 Сейчас в теме
(46)что там не логично смотреть? Документацию МС СКЛ не логично смотреть официальную от майкрософт. О да тут еще по хлеще троли имеются. Или книги Роберта Вьейры не логично смотреть хотя о чем я хотя б потрудились узнать что это вообще такое.!
48. VmvLer 27.01.20 11:16 Сейчас в теме
(47) курсовую вчера сдали на 5?
если нет, то мне не о чем говорить с троешником!
49. logarifm 1073 27.01.20 11:19 Сейчас в теме
(48) какую курсовую о чем Вы? Хотя б на возраст в инфо можна было б посмотреть!
50. logarifm 1073 27.01.20 11:24 Сейчас в теме
Автору советую если уж решили продолжать. То постарайтесь писать статьи развернуто как например делает это Пермитин Юрий четко изложен материал абсолютно с примерами 1С , оптимизация, план запроса и т.д. К такому материалу тяжело даже вопрос задать. А к вашему материалу тяжело не то что его читать он теряет связку. Подумайте над изложением своих мыслей и все-таки превратите домыслы в факты. А если это Ваши домыслы то хотя бы не лишайте аудиторию новичков знать об этом - эксперты и так с Вами сходу не согласяться во многом. Хотя знаяэтих людей они эту публицистику крайне редко читают, а если и читают то просто обойдут комментарии из-за тактичности или мягко намекнут автору в том, что он вот тут немножко не прав.
51. acanta 73 27.01.20 11:33 Сейчас в теме
(50) представьте себе, что в файловой версии 1с этого нет. Написание такого же функционала по источникам МС или даже Юрия Пермитина (при всем моем уважении) это прямое нарушение авторских прав МС.
А МС это не Вася с инфостарта, тем более, когда 1с хочет как то выходить на международный рынок.
Поэтому основой для новых разработок может быть только мат часть и статьи именно вот такого, авторского наполнения, чему собственно говоря и учат в современных вузах.
52. logarifm 1073 27.01.20 12:35 Сейчас в теме
(51) файловая база только для вузов и пригодится больше не начто советую учиться в вузах , что такое клиень-серверный вариант!
53. acanta 73 27.01.20 12:49 Сейчас в теме
(52) и что же такое клиент-серверный вариант?
В контексте разработок фирмы 1с?
54. logarifm 1073 27.01.20 13:59 Сейчас в теме
(53)Я абсолютно утратил интерес к даной и что главное безсмысленной беседе.
56. buganov 144 28.01.20 03:44 Сейчас в теме
(51) на самом деле у двух топовых СУБД, с которыми работает 1С очень схож функционал и в некотором роде даже алгоритмы. Да, дьявол кроется в деталях, но по сути, что в MSSQL, что в PG есть данные в таблицах, есть индексы, есть статистики, есть планировщик и оптимизатор запросов. И последние оперируют как раз данными, а если быть точнее, то распределением этих данных в статистике. По крайней мере пока план по этому запросу не закеширован. Потом parameter sniffing сделает свое черное дело.

И, если взять одну и ту же базу, разместить на MSSQL и PG, выполнив некоторые запросы, то в большинстве случаев можно заметить, что планы очень похожи, за некоторым исключением.

А в файловой версии тоже есть своя в некотором роде СУБД, хоть и очень порезанная.

И претензия к автору не в том, что он не Юрий Пермитин, а, лично у меня, к стилю изложения, очень спорные моменты, которые никак не подтверждены документацией. Хотя, достаточно было бы развернутых наглядных и исчерпывающих примеров. Тогда и споров бы было меньше. И опять же, написав статью, надо быть готовым, что набегут 1Сники и будут задавать вопросы
57. acanta 73 28.01.20 03:47 Сейчас в теме
(56) а по этой статье у 1сников вопросы возникают, но какие-то не такие? Не относящиеся к теме обсуждения...
58. buganov 144 28.01.20 04:34 Сейчас в теме
55. VmvLer 27.01.20 14:33 Сейчас в теме
что ж, абсолютно не обязательно что-то знать о клиенте специалистам с низкой социальной ответственностью.

пожалуй, можно продолжить беседу в контексте сервера.
logarifm; +1 Ответить
59. FIGOR 28.01.20 10:47 Сейчас в теме
Всегда удивляли попытки переделать программиста 1С в программиста не только 1С.
Еще больше интересует вопрос: почему то, что нам вроде бы надо, отсутствует в 1С?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Специалист внедрения и сопровождения 1С
Москва
зарплата от 80 000 руб.
Полный день

Product Owner (Менеджер по продукту 1С)
Москва
зарплата от 100 000 руб. до 170 000 руб.
Полный день