Pull to refresh
31
0
Евгений Бредня @bzq

IT

Send message
Ну нет, не годится. Даже мне, человеку довольно далёкому от оптимизации, ясно, что время работы будет зависеть много от чего, включая заполненность кэшей базы и особенности физического распределения данных по дискам (читай: от погоды на луне). То есть объективно сравнить два решения будет совершенно невозможно. Обычно оптимизацию хоть как-то меряют по количеству логических чтений. Это раз. А во-вторых, с точки зрения олимпиады, это уже не задача на SQL получается, а оптимизация работы некоей IT-системы.

Плюс, вопросы оптимизации они такие, мягко говоря не совсем простые по критериям. Обычно оптимизация ведётся до приемлемого уровня, планка которого для каждого конкретного случая выставляется в определённую конкретную величину, которую можно померять.

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

Вобщем тема оптимизации несомненно интересна и очень востребована, но олимпиада была по SQL. Как в SQL дать задачу на производительность мы придумали, см. задачи 8 и 9 финала. А аналитические хранилищи оптимизировать, это наверное не на олимпиаде, а на производстве с 09 до 18.
Парсер — это в калькуляторе? Специально так подбирали условие, чтобы от парсера там был один подзапрос с регулярным выражением. Не думаю, что это было проблемой хоть для кого-то, кто взялся за решение задачи.

А вот как Вы себе представляете задачу по ускорению аналитического запроса? Я без всяких шуток интересуюсь. Просто для меня миграция данных — это как взял лопату и «бери больше, кидай дальше», никаких сложностей сплошная рутина. Что тут оценивать-то?
Специфика есть, но она не особо существенная. Например, используются словарные объекты оракловой базы для получения информации типа DBA_TABLES, DBA_TAB_COLUMNS, DBA_DEPENDENCIES. В PostgreSQL должны быть свои аналогичные словарные таблицы. Оптимизация в оракловой базе явно отличается от других. И так далее. Но на другую базу переносимо. Другой вопрос в том, нужно ли это переносить на другую базу.
Анонсировать не могу. Сегодня мне уже на пальцах показали, что с таким только в корпоративных блогах можно, чуть учётку не заблокировали. Но Вы сами почитайте про олимпиаду. В этом году кто-то другой SQL готовит, но я вижу, что даже мою текстовку с правилами не поменяли, только даты другие.
А Вы не скромничайте и попробуйте сами. Это не так сложно, как кажется. Самое сложное, что там есть — это не совсем традиционное использование рекурсии. И уж точно тут нет никакой олимпиадной специфики. Подобные задачки время от времени рассматривают на sql.ru, посмотрите там на примеры разбора.
За конструктивный подход спасибо, так можно и подискутировать. Хотя я несколько опасаюсь Вашего «категорического несогласия» (цитата). Зачем же категорично так?

Английская Википедия тоже называет SQL специализированным языком
(DSL), используемым в программировании. По английски просто писать, что query language является ещё каким-то language — это толочь воду в ступе, название самоопредеяющее.

На самом деле порывшись в Википедии я так понимаю, что Вы различаете компьютерные языки и в них подкласс языков программирования, а я все компьютерные языки называю ЯП. Если честно, не знаю насколько это сложившаяся терминология, даже несморя на профильное образование и десятилетия работы в области ИТ.

В моём представлении компьютерным языком можно назвать вообще что угодно, связанное с языком и компьютером. Например то, что мне какая-то работающая на компьютере программа покажет на экране. Текстовый вывод любой программы, особенно если он человеко-подобный (типа введите число) можно назвать компьютерным языком. Или все эти текстовые протоколы, на которых общаются сами программы (http, smtp и прочее). Сюда же, кстати, SQL вписывается. Короче слишком общо, мне не нравится. Хотя да, языки разметки в ЯП записывать тоже не совсем корректно. С третьей стороны на том же XML есть XSLT и это уже ЯП в самом что ни на есть программистском понимании. Да и на CSS порой такой интерактив делают, что ой. Так что по крайней мере не всё так однозначно.

И ещё хочу пару слов в защиту Википедии сказать. Почему-то её принято походу пинать, что она не является авторитетом. Почему ж не является? Ещё как является. Истиной в последней инстанции не является, а энциклопедическим изданием является и весьма неплохим. В Hitchhikers Guide to the Galaxy ляпов куда как больше.
А надо? Если делать разбор задачи, то нужно по статье на каждую. Просто опубликовать ответы, на мой вкус, неинтересно, их никто тогда не будет и пробовать решать. Ну и я не вижу никакой запредельной сложности в этих задачах.
Не совсем согласен с Вами.

Если честно, то для меня язык программирования (ЯП) — это всё, на чём человек может объяснить компьютеру, что тот должен делать. Так что, IMNSHO, SQL — это несомненно язык программирования. Специализированный. И Википедия тоже со мной согласна. Да, если бы язык имел устоявшееся название СЯЗ (Структурированный язык запросов), то с точки зрения русского языка его бы чаще называли языком запросов, как это и происходит в английском. А так, все формальные языки, придуманные для программирования ЭВМ, вполне корректно называть ЯП.

PL/SQL это как бы не SQL с дополнениями ЯП, а совершенно самостоятельный язык программирования с встроенной возможностью использовать в нём SQL. Тоже, кстати, довольно специализированный. Возможно, название было взято по аналогии с PL/I, который был популярен во время появления на рынке PL/SQL, хотя корнями PL/SQL ближе к ADA.

У меня просьба к коментаторам: если Вам кажется, что в тексте ошибка, то лучше в личные сообщения.
Дело не в любви к теории заговоров, а в чрезмерной агрессивности яндексных сервисов в сочетании с известными фактами о невидимом стуке. Я вот тоже регулярно смотрю на что-то яндексное из приложений и так же регулярно сношу, так как лезет яндекс в мою личную жизнь через мобильные приложения куда как наглее, чем я готов стерпеть. Nothing personal, как говорится.
Добавил дополнительные материалы по теме, которые не попали в статью.
Ничего, Воронеж справится. Вот Вам хорошо. Хозяев Алиса слушает внимательно, а у меня забывает всё напрочь. Реакция на предыдущую фразу у меня бывает только если повторяю Ваши примеры. А у меня только так:


И ещё странно, что Алиса всё норовит в поиск послать. Пусть бы сама искала и озвучивала. Если не может от своего имени, то пусть отвечает типа «В этих ваших интернетах говорят ...»
Когда Алиса появилась впервые, её зачем-то назвали ИИ. Было конечно интересно. Первое, что я сделал — проверил её на интеллект нехитрым тестом:
Я: Дважды два.
А: Четыре.
Я: Прибавь два.
А несёт какой-то бред.

Суть теста такая, что любая интеллектуальная деятельность должна иметь контекст и память того, что было только что. У Алисы этого нет. В этой статье с интересом увидел, что оказывается есть, причём, если верить статье, используется повсеместно, вроде как любое произнесённое заполняет информацию в некоторой виртуальной «форме». И ещё эта, как её, анафора. Со второй попытки я сумел повторить пример с Эверестом из статьи, в первый раз моя фраза распозналась не совсем верно, и оно не сработало. Тогда я попробовал вызвать подобное поведение ещё хоть где-то. Не могу. Не выходит:
Я: Погода на завтра.
А: Завтра в Москве…
Я: А в Воронеже?
А: А ты где живёшь?

Короче, пока Алиса постоянно забывает нить разговора и не помнит даже предыдущей моей фразы, она в лучшем случае похожа на дауна. Человек, который не помнит предыдущей фразы ни своей, ни собеседника в реальной жизни производит пугающее впечатление.

Я думаю, что нужно сделать так, чтобы Алиса как раз всё-всё помнила и отвечала на вопросы только в контектсе предыдущих реплик. Пусть они забываются со временем (через несколько часов), пусть сбрасываются на специальные фразы типа «Так, давай всё с начала», но контекст забывать нельзя.

А болталка — прикольно, но совершенно бесполезно.
Да, так тоже можно, но мне не очень нравится. Потому что в итоге получится:
image
По моему личному мнению в любой вводной статье по ITSM или ITIL просто необходимо разъяснить чем связаны и чем отилчаются эти два невнятных набора букв.
Да, это тот самый принцип «паритета заинтересованности сторон» в действии.
Бэклог — это грубо говоря то, что ещё осталось сделать. И относиться может как к поддержке, так и к развитию. Я вот сегодня три запроса закрыл, ещё пять осталось. Вот пять запросов — это мой бэклог и есть.
Первую картинку в принципе нарисовал сам, но идея цельнотянутая с пикабу. ДПВ же.
Несрочно — это 4й, он же Низкий приоритет.

Откидывать нужно то, что никому особо ненужно.
—Но ведь не работает же?
—Ну и пусть не работает, всего в мире не исправить.

А что бэклог? И почечму он опять?
С самым главным понятно. Требуется добавить ещё кое-что для большей скукиэффективности. А именно планирование расходов (в виде бюджетирования) и контроль исполнения бюджета.

Приведённая в статье схема хорошо работает, если мы тратим все доходы в ноль, пусть даже откладывая что-то в резерв. Если же сделать бюджет и организовать контроль его соблюдения, то можно быть значительно гибче, устанавливая планку расходов на любой желаемый уровень. Это может быть полезно в разных случаях: для максимально быстрого накопления денег, на периоды, когда расходы превышают доходы (например, делаем капремонт) или при нерегулярных доходах и т.п…

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity