Vasily
Чо ща
Vasily
Ссылку кинь
Ayrat
Ну комп включу
Vasily
ВСе время забываю, шо ты в другом часовом поясе
Андрей
кстати О'Дерзкий тоже с другими названиями играет https://github.com/lampepfl/dotty/pull/5458
Ayrat
https://github.com/dotnet/fsharp/tree/feature/witness-passing - это про вот это
https://github.com/dotnet/fsharp/pull/6810
https://github.com/dotnet/fsharp/tree/feature/ext - это про тайп экстеншны видимиые из других сборок
Vladislav
Ayrat
Vladislav
Anatoly
Хинтами
хинты - это признак плохого кода
Ayrat
там РФЦ есть
https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1071-witness-passing-quotations.md
Danil
Anatoly
Другое дело, что поднакопив статистику, например, "этот запрос выполнился 30 раз" можно прикинуть - а не переоптимизировать ли этот запрос
Nikolay
хинты - это признак плохого кода
Ну я не вижу ничего плохого, чтобы указать оптимизатору мол давай этот запрос хорошенько оптимизируй, я его часто дёргаю
Nikolay
В моём кейсе таких запросов на селект 95%
Nikolay
Vasily
Тэкс... witness - это про SRTP в quotations, походу
Vasily
Хотя стопэ
Vasily
Там в IL интересное
Ayrat
Там кстати в репе фшарпа подготовку начали к фшарпу 5. Бранч с новыми версиями завезли. Комп выключил если чо уже, позже кину
Возрадуемся, благая весть!
Ayrat
Четвертому уже сколько лет?
Nikolay
Ayrat
Четвертый вышел в январе 2016
Ayrat
Лол нет. В июле 2015
Ayrat
То есть 4 года уже
Anatoly
Выполняешь как обычно, так правильнее
нет, потому что мы обсуждаем с тобой оптимизатор с точки зрения его проектирования. т.е. для нас "как обычно" - нет, мы должны выбрать как это будет "как обычно".
Nikolay
нет, потому что мы обсуждаем с тобой оптимизатор с точки зрения его проектирования. т.е. для нас "как обычно" - нет, мы должны выбрать как это будет "как обычно".
Как сейчас это реализовано, так и выполняем. За исключением того, что если видим хинт в запросе, то проверяем, есть ли у нас уже более оптимальный построенный план для этого запроса, если есть, то используем его, если этого плана нет, то занимаемся его построением в фоне
Nikolay
Допустим, построили этот план через 10 минут, и снова прилетел этот запрос, мы для него уже используем оптимальный план
Anatoly
а что важнее, выполнение запросов или оптимизация их? у нас же сервер конкурентно обрабатывает запросы разных пользователей к разным субд?
Nikolay
Anatoly
Nikolay
Ну для оптимизатора есть различные настройки, так? И вот ты можешь дописать эту настройку пользовательскую
Anatoly
для начала мне надо определиться с тем, как будет работать "обычно"
Nikolay
Есть же настройка, которая собирает статистику по таблицам в maintenance window, почему нельзя заняться в это же время поиском оптимальных планов
Anatoly
и попасть в примерно 80% кейсов
Nikolay
Anatoly
Так, как сейчас работает, ничего не трогая
как сложно с программистами, которые не могут представить себе ситуацию "оптимизатор не написан, нам надо его написать". я, пожалуй, удалюсь из дискуссии
Vasily
@Dolfik ты не очень прав
Nikolay
Vasily
Проблема скорее всего не в запросах
Vasily
А в том, как ты их используешь
Vasily
Плюс какая структура базы
Nikolay
структуре*
Nikolay
Но, это нельзя быстро и легко исправить, и нам с этим жить
Nikolay
И таким кейсом можно облегчить нашу жизнь
Vasily
Ты понимаешь, что этот кейс слабо исполним?
Vasily
Или тебе пока не хватает опыта это понять?
Vasily
Тут это "не лезь, оно тебя сожрет" (с)
Nikolay
Vasily
По той причине, что в большинстве случаев это NP полная задача
Nikolay
потому что у оптимизатора конфликтующие требования:
- время оптимизации при компиляции запроса
- время выполнения запроса
Nikolay
и надо выбирать баланс
Nikolay
Изначально речь была об этом
Vasily
Ты пытаешься не ту проблему решить
Nikolay
🤷♂️
Vasily
Это проблема из серии "Почему отверткой гвозди не закручиваются"
Vasily
Ты нашел следствие
Vasily
Но не причину
Ayrat
Я вот работал как-то с топовым базистом, он тоже топил за выбрасывание хинтов из кода, а я тоже не понимал чо плохого. До сих пор не понял, но я плохой базист.
Смотрю на базы как на хранилище - чем проще, тем лучше. 90% кейсов у меня - кивалуе, но особенности редиса того же знать надо, да. Чтобы не блочить его поток своими сканами, например
Ayrat
Была у нас хранимка, где через tvp прилетало от 1 до 5к ентитей.
Я ее обмазал хинтами чтобы оптимизнуть самый плохой случай
Он пришёл, сказал что я мудак и сделал две хранимки без хинтов, одна с ограниченным набором аргументов (до пяти ентитей) и вторая с твп (для более пяти).
Сказал что так будет лучше и хинты мои убрал
Не сказать что я постиг глубину глубин, но ебало умное сделал
Vasily
Умное ебало - залог успеха в жизни
Vasily
Я вот, например, умное ебало не умею делать
Vasily
Поэтому я , white male man, в Москве, а всякие башкиры в Ирландии
Anatoly
Anatoly
это как пистолет у военного
Ayrat
Anatoly
если в настоящем бою военному пришлось применять пистолет, ну он его применит, но значит явно что-то пошло не так
Anatoly
Nikolay
Поменяв ручками порядок джоинов в запросе, получилось в два раза уменьшить cost 🌚
Romɑn
Anatoly
Anatoly
ты можешь потратить день-два на играние с порядком джойнов, а оптимизатор - нет