Мы побеседовали с Константином Тарановым, разработчиком и администратором баз данных в компании Газэкономика, подразделения Газпром. Профессиональный стаж Константина составляет более 10 лет, в течение которых он поработал со всеми ключевыми реляционными СУБД, в результате чего остановил свой выбор на MS SQL Server. Константин обьяснил, почему SQL Server так привлекателен для решаемых в компании Газэкономика задач, и рассказал о наиболее полном в рунете наборе инструментов и полезных материалов для работы с SQL Server.



PG Day: Константин, расскажи немного о себе. Как давно ты работаешь в профессии, какие профессиональные проблемы доводилось решать на жизненном пути?

КТ: Кратко о себе: окончил МИФИ, по образованию я – инженер-физик, специализация – реакторное материаловедение. Уже на четвертом курсе я понял, что это не совсем мое призвание, поэтому решил переквалифицироваться в IT-специалиста. Тогда был очень сильный тренд в сторону Oracle, страна была относительно на подъеме, много вакансий в IT и банковской сфере. Мне удалось без опыта и бэкграунда устроиться в РДТех. Там я работал в одном из крупнейших на то время проектов – построении хранилища данных для банка ВТБ24. Последующие пять лет прошли в тесной работе с Oracle. В 2012 году я пришел в Газэкономику. Главная задача нашего центра – это прогнозирование спроса на газ, уголь и другие топливные ресурсы не только по России, но и в мире.

Mы работаем с различными источниками данных, которые зачастую не согласованы между собой, из-за этого приходится регулярно проводить проверки и сопоставление данных. Как сейчас модно говорить, data science.

В Газэкономике исторически использовался Microsoft SQL Server. На тот момент это был 2008, но буквально с моим приходом мы обновились на 2012. Сейчас планируем переходить на 2017. Наконец-то вышел CTP 2.1, Microsoft обещает релиз для конечного использования 31 мая. Также у нас есть небольшие информационные системы для внутреннего использования, которые крутятся на PostgreSQL. Соответственно, за 10 лет в IT я познакомился, с многими реляционными базами данных, потому что, помимо PostgreSQL, Oracle и SQL Server, мне пришлось активно работать и с MySQL.

PG Day: Ты уже много лет работаешь с реляционными базами данных. Почему, на твой взгляд, реляционные БД не теряют своей актуальности?

КТ: Сейчас очень много NoSQL и big data. Это интересный круг задач, но я считаю, что это узкая ниша. У нас закуплено очень много источников из различных информационных агентств. Все эти агентства очень дорого стоят, подписки достигают сотен тысяч долларов. То есть, казалось бы, информация есть готовая, бери и используй. Но на деле выходит, что она очень “грязная” и зачастую не соответствует действительности. Нельзя просто взять эти данные и использовать, писать алгоритмы машинного обучения, строить модели. 70% времени мы проводим, верифицируя эти данные и сопоставляя их между собой. Даже справочник «Страны» и понятие “страны” у разных информационных агентств отличается. Яркий пример – United Kingdom. Некоторые информационные агентства включают туда только Шотландию, Англию, Уэльс (3 страны), а Северную Ирландию и различные подчиненные островные государства не включают, некоторые – наоборот. Соответственно, суммарная статистика по этим данным расходится.

В чем сила реляционных баз данных? Это технология, которая проверена десятками лет. Она была создана очень давно и в ее основе лежит сложная математика. Потратив время на создание правильной структуры базы данных, проведя очень подробный первичный анализ, обработку, верификацию, на выходе получаешь готовые данные, которые можно уже передавать в любую модель, любой алгоритм и получать хорошие результаты. Если у тебя плохие данные, ты, конечно, можешь обучить нейронную сеть или построить еще более сложный алгоритм, но на выходе они дают плохие результаты. Это неоднократно проверено на нашем примере. Мы используем для решения так называемых оптимизационных транспортных задач язык R. У нас работает 3 математика, и им R сразу пришелся по душе, так как он максимально близок к их структуре мышления.

Также у нас не было проблем с производительностью. Все работает очень хорошо и быстро. За последние три года мы ушли с С#, бизнес-логику полностью перенесли в R и еще ни разу об этом не пожалели.

PG Day: Чтобы ты мог посоветовать тем, кто планирует заниматься базами данных, с чего начать, в какую сторону “копать”?

КТ: Крайне рекомендую пройти курс Стэнфорда по реляционным базам данных. Он много времени уделяет азам, в свое время этот курс очень много открыл для меня. Данный курс показывает, что в основе реляционных баз данных – серьезная математика, реляционная алгебра, за которой стоят годы исследований. Без NoSQL тоже сейчас никуда, потому что, все-таки, большие объемы информации, гигабайты данных, иногда лучше обрабатывать другими решениями. Не пытаться их засунуть в реляционную базу данных, если не понятна структура отношений между данными, или ее как таковой нет – черная дыра, которую нужно долго исследовать. Потом уже, когда ты знаешь, что находится внутри, есть смысл переносить структурированные данные в реляционную структуру.

PG Day: Допустим, у тебя возникла потребность выбрать хранилище данных для нового проекта, на чем бы ты остановился? Oracle, SQL Server, PostgreSQL?

КТ: Если бы я сейчас выбирал стек технологий, я бы с удовольствием выбрал SQL Server, но только для серьезных крупных проектов. Если бы мне пришлось делать собственный проект, то я бы остановился на PostgreSQL именно из-за бесплатности. Я не так хорошо знаком с PostgreSQL, чтобы советовать ее сразу применять в серьезной коммерческой системе. Минус PostgreSQL – это отсутствие поддержки. В Microsoft она тоже не идеальна, но она есть.

Почему не Oracle? Oracle очень дорог. Его нецелесообразно использовать, на тренинге я это покажу. За ту же функциональность, которую дает SQL Server, Oracle просит, в среднем, в 10 раз больше. Зачем платить больше? Это другой вопрос. Если у вас сервера куплены под Oracle или у вас очень много денег, конечно, можно выбрать Oracle. Но я рекомендовал бы SQL Server. За последние 5 лет он сделал огромный скачок. Я помню эту базу еще в 2008 году, когда у нас был в “проде” SQL Server 2005 и он производил гнетущее впечатление как в плане производительности, так и в плане клиента SQL Management Studio. Теперь SQL Management Studio – один из самых лучших инструментов для работы с SQL Server. У него единственный минус – это то, что он работает пока что только с SQL Server. Но это, пожалуй, лучшая бесплатная среда, которая обладает очень широким диапазоном возможностей для разработчиков.

Если вы действительно хотите получить удовольствие от разработки реляционных баз данных, то SQL Server + бесплатный SQL Management Studio – это сейчас самое то. Еще важная “плюшка” – лицензия SQL Server Developer для разработчика бесплатная. Раньше она стоила небольших денег (порядка 3000 рублей). Я для своих нужд покупал, это не дорого – вложение денег в свое обучение всегда окупается. Сейчас же это вообще стало бесплатно. Я считаю, что с приходом SQL Server на Linux, стоит потратить несколько часов и попробовать эту базу данных. Возможно, она вам очень понравится.

PG Day: Ты знаком с разработкой и администрированием SQL Server. Насколько трудно сочетать два различных амплуа? Насколько это распространено в мире SQL Server?

КТ: В мире SQL Server это две совершенно раздельные роли. Но у SQL Server есть два огромных преимущества. Во-первых, как уже упоминал раньше, SQL Management Studio. Это великолепный GUI, который можно использовать для администрирования, и он покрывает 95% всех задач администратора, это учитель и советчик в одном лице. SQL Management Studio дает возможность “генерить” на лету скрипт Transact-SQL. Выбрав в GUI всякие галочки, сделав предварительные настройки, тут же можешь получить работающий скрипт, который в дальнейшем будешь использовать напрямую. Или прикрутить job, который по расписанию будет запускать этот скрипт. Делай с ним что угодно. Отдай своим разработчикам, чтобы они его доработали.

Второй главный козырь – это очень хорошая поддержка PowerShell. Если у вас есть большое количество серверов, на которых необходимо проводить рутинные, повторяющиеся операции, то PowerShell – это отличный выбор. Он полностью интегрирован с SQL Server (одноименный модуль SqlServer, который постоянно развивается и улучшается), умеет делать абсолютно все тоже самое, что и Transact-SQL, даже лучше. Плюс, наконец-то появился в open source так называемый DBA Tools. Это набор функций и скриптов PowerShell для работы с SQL Server. На текущий момент он покрывает почти все, от резервного копирования до восстановления – весь цикл обслуживания SQL Server. Достаточно установить модуль PowerShell, изучить основные команды и функции, их параметры. Это делается буквально за 2 вечера.

И еще дополнительное преимущество PowerShell – вы получаете хорошую поддержку языка С#. Почти весь код, который работает на С#, можно встроить в PowerShell. Если у вас есть уже готовые решения на C#, вы можете их легко применить для работы с большим количеством серверов и баз данных, используя PowerShell. Если вам приходится заниматься бекапом, настройкой резервного копирования, проверкой и подобными задачами, есть инструменты и хранимые процедуры, которые позволяют это делать без затрат денег, не нужно покупать никакое стороннее решение. Есть смысл купить его, если вам действительно нужен удобный интерфейс и различные плюшки. Но все это можно сделать абсолютно бесплатно.

PG Day: Хочу перейти к твоему предстоящему выступлению на нашей конференции, которая пройдет летом в Санкт-Петербурге. Ты собираешься выступить с очень большим мастер-классом. Что сподвигло тебя принять участие в нашем мероприятии? Специалистов какого профиля ты ожидаешь увидеть на своём выступлении?

КТ: Прежде всего, у меня есть корыстный интерес к участию в конференции. Одна из задач на текущий год, которую мы себе поставили – это возможность переноса нашего решения на PostgreSQL, в случае если наши новые заказчики не захотят покупать лицензию на SQL Server. Необходимо оценить, насколько сложно будет перейти на PostgreSQL, как сделать первые шаги в этом направлении. У нас есть уже прототип, около 20% текущего решения работает с PostgreSQL в тестовом режиме. Мне интересно поучаствовать в такой большой конференции, послушать выступления других людей, узнать из первых уст, какие инструменты они используют, какие существуют ресурсы для обучения, какие объемы данных перерабатывают.

Идея сделать полноценный тренинг вынашивается уже более пяти лет. Года четыре назад, на курсах специалиста по разработке на TSQL мне жутко не понравилось, как читал материал лектор, словно по бумажке. Реальных “кейсов” использования SQL Server не было. Он просто взял программу Microsoft, вызубрил и прочитал ее. А у нас за пять лет накопилось много опыта, мы прошли все версии от SQL Server 2008 до SQL Server 2016. С каждой версией продукт обрастал возможностями, становился быстрее, надёжнее. Появилась поддержка выполнения кода R в SQL Server, что нам очень нравится, мы уже это используем, правда, есть проблемы с переходом на SQL Server 2016 у заказчика. У нас на тестовых средах все хорошо, но, чтобы мигрировать, надо показать заказчику все преимущества данного обновления (конкретно для него – это увеличение скорости работы системы и возможная экономия на железе). Работаем активно в этом направлении.

Соответственно, накопилось очень много практик, внутренних документов, скриптов, бесплатных решений, модифицированных под наши нужды. Все это есть в репозитории на Github, который мы поддерживаем и стараемся обновлять чуть ли не каждый день: пополняем его новыми статьями, ссылками на полезные ресурсы, скриптами, в том числе и для PowerShell. На текущий момент наш сайт sqlserver-kit.org – это, без ложной скромности, самый подробный ресурс по SQL Server, на котором находится исчерпывающая информация.

Мой тренинг является продолжением развития этого ресурса, только уже в виде конкретных check-листов, практик, которые я постараюсь донести до слушателя. Очень хочется, чтобы уровень аудитории был на уровне между entry-level и mid-level разработчиками, которые смогут в ответ внести свою лепту, указать, где стоит делать по-другому, чтобы получить максимально хороший результат от SQL Server.

Если есть желающие помочь, найти ошибки, неточности, свои скрипты добавить – всегда добро пожаловать, будем рады. Можно завести issue или pull request, на который мы очень быстро отреагируем. Материалы распространяются по лицензии MIT, любой человек может их скопировать и использовать, как ему вздумается, в том числе и в коммерческих целях.

PG Day: Продвижение собственных инструментов в open source – это очень позитивный шаг. Эксплуатация SQL Server на Linux, бесплатной open source среде, является одной из причин, которая подтолкнула нас к идее проведения этого мастер класса. Возможность возникла очень недавно, один из вопросов, который заинтересует слушателей – какие есть трудности и подводные камни, связанные с эксплуатацией SQL Server на Linux? Есть ли планы по разбору полетов в твоем мастер-классе?

КТ: Да, это один из главных козырей Microsoft в вечном споре, что выбрать: Oracle, PostgreSQL или MS SQL. Сейчас много разработчиков занимается адаптацией SQL Server, он уже работает почти так же, как и под Windows. Соответственно, я очень постараюсь адаптировать свое выступление соответствующим образом. Естественно, это будет виртуальная машина, SQL Server 2017, релиз которого запланирован на 31 мая. Если его вдруг перенесут, а такое вполне возможно, то это будет версия CTP 2.1.

Соответственно, в качестве дистрибутива Linux я рассматриваю CentOS. Сейчас я проверяю все скрипты, которые планирую показать на этом стеке. Если все пойдет как планировалось, то демонстрация и весь тренинг будут построены на стеке Linux + SQL Server, адаптированном под Linux. Если вдруг что-то пойдет не так, тогда будет Windows Server 2016 + SQL Server 2017.

PG Day: Продукты Microsoft – это целая экосистема, а не только SQL Server “в вакууме”. Ты можешь выделить особенности всей экосистемы в целом, которые тебе кажутся удобными и полезными с точки зрения именно эксперта по базам данных, которые ты бы хотел видеть на других платформах?

КТ: Я бы хотел в идеале, чтобы Management Studio работала со всеми базами данных, очень удобная штука. Что еще удобно в Windows? Пожалуй, это PowerShell, я его действительно полюбил, он сильно упрощает жизнь, в нем есть все что нужно. В нем можно строить графики, можно выводить grid-ы, которые фильтруются очень легко. Можно делать запросы тому же SQL Server, Postgres-у, получать данные в нужном виде, экспортировать в csv, делать импорт. В powershell каждая переменная – это объект. Заполняем его, преобразуем, делаем с ним, что угодно. Плюс, PowerShell стал open source – теперь это кросс-платформенный скриптовый язык с открытым кодом.

Единственный минус PowerShell – это отсутствие GUI, как странно это ни звучит. Все-таки, некоторые вещи удобно делать в GUI: смотреть планы выполнения запросов, например. Наглядность и наличие графиков играют важную роль. PowerShell может строить неплохие графики. если у вас под рукой ничего нет, вы всегда можете его установить и использовать как генератор графиков.

PG Day: Я, как постгресист с опытом, привык к тому, что любые адекватные действия с базой данных можно сделать только в консоли, в psql, а совсем хороших “гуевых” утилит не бывает. Это актуально для многих людей, работающих с open-source продуктами: никто не привык все делать в графическом интерфейсе. Планируется ли поддержка инструмента Management Studio, о котором ты очень хорошо отзываешься, под Linux? Насколько он подойдет людям, которые хотят использовать SQL Server под Linux, или же им все-таки придется что-то делать по-старинке, в консоли?

КТ: К сожалению, сроки выхода Management Studio под Linux пока не объявлены. Я не знаю, будут ли они переносить релиз. Поэтому пользователь Linux какое-то время будут обделены таким богатым интерфейсом. Конкретных сроков по миграции нет, но уже вышла Visual Studio (SSMS – это, фактически, форк Visual Studio, адаптированный под разработку SQL Server) под Mac, так что скорее всего в конце этого года или в следующем году SSMS станет кроссплатформенным. Что касается работы с командной строкой, то уже есть 2 утилиты, работающие под Linux: mssql-scripter и DBFC. Чтобы оценить, насколько много полезных инструментов для работы с SQL Server существует, достаточно ознакомиться с моим списком, в котором на текущий момент перечислено более 200 утилит и программ. Я думаю, что адаптация для Linux будет осуществлена вместе с выходом финальной версии. Пока что пользователям Linux придется потерпеть, подождать выхода Management Studio. И я уверен, что большинству разработчиков понравится, особенно тем, кто сталкивался с Visual Studio.

PG Day: Ты в своем мастер-классе запланировал посвятить очень большой раздел оптимизации запросов. На каких аспектах оптимизации ты собираешься остановиться? Какие задачи слушатели смогут решать вместе с тобой?

КТ: Да, эта часть материала просто огромна и под нее необходимо устраивать отдельный тренинг. Но в рамках доступного мне времени я покажу всю прелесть оптимизации запросов в SQL Server Management Studio. SSMS очень активно развивается, и она просто создана для оптимизации запросов. При этом каждые два месяца выходит новая версия с поддержкой новых фич SQL Server. “Киллер-фича”, которая появилась буквально полгода назад, и теперь экономит кучу времени – это просмотр плана выполнения запроса в реальном времени.

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

Начиная с версии 16.4, Management Studio умеет в реальном времени выдавать план выполнения запроса. Если у вас есть очень долгий запрос, который работает десятки минут, а то и часы, можно не ждать его окончания, чтобы увидеть, что план выполнения просто ужасен: не используется ни один из индексов, либо выбран неоптимальный join. Запрос можно тут же “убить”, с помощью хинтов изменить логику, получить более хороший план, и сразу его посмотреть, запустив еще раз запрос. Management Studio в отдельном окне покажет процесс построения исполняемого запроса, план примет законченный вид уже после выполнения. Это, по моему мнению, “убер-фича”. Раньше мне этого очень часто не хватало, особенно в Oracle, когда работали с большими банковскими системами, и запросы могли выполняться по 2-3 часа.

Помимо этого, у Management Studio есть отличная встроенная утилита для сравнения плана выполнения запросов. Можно выполнить два запроса на разных базах данных, экспортировать их в файл XML и потом с помощью Management Studio сравнивать. Они придумали отличный GUI для сравнения: все понятно, сразу видны проблемные места. Очень полезно, когда на продакшн-системе план выполнения запроса один, а на тестовой – другой. Приходится разбираться, в чем может быть дело, и этот инструмент очень сильно помогает.

Теме оптимизации запросов будет уделено очень большое внимание. Я постараюсь максимально подробно осветить распространенные проблемы в SQL Server, сделать акцент на индексы: какие они бывают, какие лучше использовать в тех или иных случаях. К слову, в 2012 версии SQL Server появился колоночный индекс, который помогает очень сильно ускорить запросы на больших хранилищах данных, где много столбцов. Мы все это посмотрим.

PG Day: Отлично. Это будет очень интересно – увидеть в динамике инсталляцию.

КТ: Да, безусловно. Все участники мастер-класса получат виртуальные машины в полное распоряжение. Если у них какие-то проблемы и вопросы будут возникать, то это будет оперативно решаться даже после окончания тренинга.

PG Day: Если кто-то еще захочет с тобой пообщаться, задать вопросы, как тебя можно найти в сети? Какие “паблики”, посвященные MS SQL Server, ты посоветуешь?

КТ: У меня есть личный сайт, на котором опубликованы мои координаты во всех социальных сетях, которые я посещаю: Stack Overflow, github, мессенджеры и т.д. Я периодически провожу небольшие консультации по SQL Server, всегда открыт, отвечу на любой вопрос, не обязательно участника конференции.

К слову, еще один плюс, почему стоит изучать именно SQL Server – это очень классное комьюнити. Англоязычное, правда, но уровень ответов и фидбека, который получаешь от него, просто колоссален. Твою проблему иногда могут решить такими способами и настолько эффективно, что тебе просто остается взять готовое решение и внедрить в свою систему.

Есть очень много каналов. Отдельные каналы в #slack, в twitter (все социальные ресурсы собраны здесь). На Github огромное количество проектов с открытым исходным кодом, посвященных улучшению работы с SQL Server, в которых участвуют одни из лучших профессионалов в области SQL Server – к ним всегда можно обратиться с вопросом.

Если в твиттере с хеш-тегом #sqlhelp написать свой вопрос, то всегда найдутся люди, которые очень оперативно и достойно ответят.

Прорекламирую sqlcom.ru: это сайт и telegram-чат, где можно задать вопрос по любому решению в мире SQL. В основном, там обитают специалисты по SQL Server, причем разной квалификации: есть и хорошие продвинутые администраторы баз данных, и серьезные разработчики С#, и т.д. Если ваша проблема грамотно описана и интересна, всегда найдется человек, который поможет вам, в том числе и я.



Надеемся, что интервью и обширный список полезных ресурсов для всех разработчиков MS SQL Server, предложенный Константином, будет для вас интересен. Ну а мы приглашаем вас принять участие в PG Day'17 Russia и посетить мастер-класс Константина, в рамках которого он расскажет все необходимое для эффективной эксплуатации SQL Server: как выбрать подходящую версию СУБД, установить под Linux или Windows, что в первую очередь настраивать, какими инструментами пользоваться и много другое!
Поделиться с друзьями
-->

Комментарии (79)


  1. SirEdvin
    31.05.2017 12:47
    +1

    Если у вас есть большое количество серверов, на которых необходимо проводить рутинные, повторяющиеся операции, то PowerShell – это отличный выбор.

    В целом, на этом можно и заканчивать :)


    1. kast218
      31.05.2017 13:33

      Какой-то комментарий немного "бесполый" — можно понять в чем его идейная составляющая?


      1. SirEdvin
        31.05.2017 13:37

        Очевидно, рекламировать консоль в тех случаях, когда вам нужен, например, rundeck очень странно.


        1. kast218
          31.05.2017 14:02

          Очевидно, рекламировать консоль в тех случаях, когда вам нужен, например, rundeck очень странно.

          Спасибо за ссылку на rundeck, интересно будет поближе его рассмотреть. Но в данном случае "реклама консоли" — это просто попытка сказать что с приходом SQL Server на Linux у него (SQL Server) там уже есть хороший друг и товарищ — Powershell, помогающий очень сильно облегчить администрирование этой базы данных.


        1. Guderian
          01.06.2017 15:06

          Powershell — это фреймворк, который, к примеру, позволяет создавать замечательные DSL для деплоймента SQL-проектов. Консоль — всего лишь один из возможных runtime для так называемого powershell host. Один и тот же cmdlet я могу запустить из консоли, напрямую в CLR, из IDE (e.g. Visual Studio), CI-сервера (e.g. TeamCity) и… упомянутого вами же rundeck. В общем powershell + rundeck/chef/puppet/Powershell DSC/Ansible /Teamcity/Jenkins замечательно решают вопросы развертывания комплексных проектов. Сам rundeck — это просто «runner», никаких преимуществ при работе с SQL Server не дающий.


          1. SirEdvin
            01.06.2017 20:19
            -1

            Существенных преимуществ сразу несколько:


            1. Вам не нужно логинится на хост.
            2. Вам не нужно хранить ваши скрипты на каждом хосте отдельно, что решает огромный пласт проблем.
            3. Ваши скрипты и джобы гораздо проще запускать.
            4. Вы можете гибко разделять кто и какие скрипты может запускать.
            5. Вы можете отслеживать запуск скриптов автоматически.

            Powershell — это фреймворк, который, к примеру, позволяет создавать замечательные

            Это вроде была командная оболочка. Довольно слабая альтернатива тому же bash с unix мира, хотя и с несколькими интересными штуками.


            Суть моего коммента была в том, что утверждать, что powershell — все что нужно нельзя, так как это далеко не так.


            1. Guderian
              02.06.2017 11:43
              +2

              Это вроде была командная оболочка. Довольно слабая альтернатива тому же bash с unix мира, хотя и с несколькими интересными штуками.

              Как вы сказали в первом комментарии: «В целом, на этом можно и заканчивать». С таким уровнем информированности и смешным списком преимуществ спорить очень сложно. Давайте я назову Powershell «командной оболочкой» для SQL Server? А почему нет:

              PS> Import-Module sqlps
              PS> cd SQLSERVER:/SQL/<host>/<instance>/Databases/<db>
              PS> ls Tables | %{ $_.RebuildIndexes(); $_.UpdateStatistics(); }
              PS> ls LogFiles | %{  if ($_.UsedSpace -gt 1GB) { $_.Shrink() }}
              

              Сколько у вас уйдет времени, чтобы написать похожий джоб для rundeck? На bash?

              Весь ваш список преимуществ в большинстве кейсов закроется однострочником вроде

              PS> Invoke-Command -ComputerName (cat servers.txt) -ScriptBlock {  ls Tables | … } -JobName "SqlJobA" -ThrottleLimit 16 -AsJob
              

              , где Invoke-Command -AsJob можно заменить на New-ScheduledTask и т.п., а «cat servers.txt», скажем, на красивый LDAP-запрос типа Get-AdComputer -Filter { SomeProperty -match SomeValue }.

              Я попробую привести пример, как это работает (при этом «командная оболочка» не используется НИ РАЗУ). Есть удобный DSL, который описывает SQL-проекты вроде:

              Revision 0.2.548 {
                  File "specific-script.sql"
                  Template -Crud -From SomeProject.SomeNamespace.SomePocoClass
                  Import -From somedata.csv -To SomeTable
                  ps {
                      cd ./<db>/Tables
                      ls | %{
                          $_.RebuildIndexes();
                          $_.UpdateStatistics();
                      }
                      ..
                  }
              }
              

              Этот DSL — Powershell. Есть другой стандартный DSL — Powershell DSC, который описывает инфраструктуру и он тоже Powershell.

              Configuration SomeConfig {
                  Node SQL1 {
                      SqlProject ProjectA {
                          …settings…
                      }
                      SqlProject ProjectB -Slave
                  }
              	
                  Node SQL1 {
                      SqlProject ProjectA -Slave
                      SqlProject ProjectB {
                          …settings…
                      }
                  }
              }
              

              Этот конфиг уходит на Powershell DSC pull server, откуда ноды его разбирают и конфигурируются. Снабжая меня отчетами через Powershell DSC report server. Вам, как рекламному агенту rundeck это должно что-то напоминать ;)

              Там, где-надо, я использую task-based DSL вроде PSake, где нужно — покрываю тестами на Pester. Это то, что в одиночку может «командная оболочка» Powershell. А дальше уже вопросы вкусов. Вы завернете в Rundeck, Вася, у которого приватное облако крутится на System Center Operations Manager, естественно использует его. Петя может прикрутить к Jenkins, поскольку он уже трудится на ниве continuous delivery и т.п.

              Конкретно для работы с SQL Server Powershell — очень хороший инструмент. И нигде смысловой сентенции, что «powershell — все что нужно» я у ТС не заметил.


              1. kast218
                02.06.2017 12:39

                Станислав, спасибо большое за развернутые комментарии.


                Не могли бы посоветовать статьи, конкретные примеры по использованию:


                удобный DSL, который описывает SQL-проекты вроде
                Revision 0.2.548 {
                File "specific-script.sql"
                Template -Crud -From SomeProject.SomeNamespace.SomePocoClass
                Import -From somedata.csv -To SomeTable


                1. Guderian
                  03.06.2017 16:09

                  Данный DSL — собственная разработка. Возможно, стоит её выложить на github :)


                  1. kast218
                    04.06.2017 13:24

                    Возможно, стоит её выложить на github :)

                    Если будет возможность и время сделайте пожалуйста, будет очень интересно изучить, обещаю pull requests.


          1. d_pa
            04.06.2017 09:52

            C# ведь тоже можно использовать для административных задач?
            Есть в чём-то у Powershell преимущество перед ним?
            ЗЫ Я для домашней автоматизации вообще VBS использую.


            1. Guderian
              05.06.2017 11:14

              Visual Basic/VBA тоже можно использовать для административных задач, но вы же используете VBS. Я думаю все преимущества REPL давно расписаны. Большинство мелких административных задач на Powershell сравнимы по трудоемкости с вызовом одного только MSBuild, чтобы скомпилировать ваше приложение, а его ещё надо написать.


    1. Fortop
      31.05.2017 14:05
      +4

      Заканчивать нужно было пораньше. Сразу после

      Соответственно, за 10 лет в IT я познакомился, фактически, со всеми реляционными базами данных, потому что, помимо PostgreSQL, Oracle и SQL Server, мне пришлось активно работать и с MySQL.

      список RDBMS

      Возможно не так активно как интервьюируемый, но лично довелось поработать кроме 4-х вышеуказанных БД с
      * Firebird
      * SQL Anywhere
      * dBase
      * SQLite

      И ощущение что познакомился «фактически, со всеми реляционными базами данных» — не возникло.


      1. alexkunin
        31.05.2017 15:23
        +2

        По вашей же ссылке в самом верху есть упоминание «DB-Engines Ranking of Relational DBMS», верхушка списка выглядит так:

        Oracle — 1354.31
        MySQL — 1340.03 (лично я бы добавил сюда и 50.98 от MariaDB)
        MS SQL — 1213.80
        PostgreSQL — 365.91
        DB2 — 188.84

        Даже DB2 уже выглядит аутсайдером в этом рейтинге. Так что если поправить исходную фразу, то автор знаком с «фактически, со всеми самыми распространенными реляционными базами данных». Не очень-то он душой покривил, чесговоря. Ну, это если согласиться с методикой подсчета в этом рейтинге.


        1. Fortop
          31.05.2017 15:34

          Для «распространенности» нужно принять во внимание число инсталляций?
          Ну так Microsoft Access и SQLite побьют, пожалуй, всех в этом списке.

          Я не знаю что означают эти цифры в рейтинге. И значит ли это что PostgreSQL в 4 раза реже встречается в работе?


          1. alexkunin
            31.05.2017 15:38

            Там по ссылке можно прочитать про эти цифры. Продублирую: Method of calculating the scores of the DB-Engines Ranking, и заодно процитирую:

            DB-Engines Ranking does not measure the number of installations of the systems


            1. Fortop
              31.05.2017 15:43
              +1

              Ну читать-то и я умею.

              Другой вопрос, читали ли вы это, прежде чем писать о

              самыми распространенными


              1. alexkunin
                31.05.2017 15:45

                Ну да, читал. Если вы говорите о тонкой разнице между «распространенностью» и «популярностью», то я ее не вижу.


                1. Fortop
                  31.05.2017 15:49

                  Ок, я вам объясню.

                  Красивые девушки очень популярны, но не очень распространены.

                  Такая аналогия доступна для понимания?


                  1. alexkunin
                    31.05.2017 15:54

                    Очень плохая аналогия, т.к. вы сравниваете копируемые (установки БД) и некопируемые (девушки) объекты.


                    1. Fortop
                      31.05.2017 15:59

                      Ну то есть вы не читали. И не понимаете разницу между бегающими и кричащими «вау» и теми кто реально работает с этими продуктами.

                      На этом можно ветку закруглить и мнение ваше более в расчет не принимать.


                      1. kast218
                        31.05.2017 16:05

                        Вы уводите спор в совершенно другое русло (кстати что вы в итоге пытаетесь доказать — что вы круче всех в мире реляционных баз данных, а я вам даже в подметки не гожусь? Если да, то отлично, я с вами согласен.). Каким образом можно сравнивать SQL Server и SQLite — данные 2 продукта находятся в совершенно разных весовых категориях и используются для решения разных задач.


                        1. Fortop
                          31.05.2017 16:14
                          -1

                          Нет никакого спора. Есть неудачник неразбирающийся в терминах «популярный» и «распространенный».

                          Что касается опыта в работе с БД, то я не DBA.

                          Если вам требуется квалифицированное мнение, то обратитесь на sql.ru. Там имеются специалисты более чем с 20-тилетним опытом работы с разными БД.

                          P.S. MySQL и SQL Server тоже находятся в разных весовых категориях, но вас это сравнение не смутило.


                          1. kast218
                            31.05.2017 16:20
                            +1

                            Нет никакого спора. Есть неудачник неразбирающийся в терминах «популярный» и «распространенный».

                            А я думаю все откуда такая агрессия, теперь понятно.


                            Побольше вам добрых и светлых моментов в жизни и самое главное терпения по отношению к новичкам и "неудачникам" (а то слишком много злобы у вас в комментариях) — нельзя же сразу стать таким же "зубром" в мире баз данных как вы, для этого нужно много времени.


                      1. alexkunin
                        31.05.2017 16:13

                        Похоже, вы сами не читали — не утверждаю, что так и есть, только говорю, что похоже на то. Процитирую:

                        «Number of mentions of the system on websites», «General interest in the system» и «Relevance in social networks» — то, что вы охарактеризовали как «вау».

                        «Frequency of technical discussions about the system» — профильные Q&A сайты вроде стаковерфлоу.

                        «Number of job offers, in which the system is mentioned» — востребованность навыков на рынке труда.

                        «Number of profiles in professional networks, in which the system is mentioned» — наличие навыков в профилях профессионалов.

                        Честно говоря, не могу понять, как можно делать настолько противоположные выводы из одного и того же текста (разве что вы все-таки не прочитали — хотя вы утверждаете обратное, оснований вам не верить у меня нет).

                        На этом можно ветку закруглить и мнение ваше более в расчет не принимать.
                        Нужно было сразу глянуть на ваши предыдущие комментарии — я бы тогда и не пытался высказывать свое мнение в ответах к вашим комментариям.


      1. kast218
        31.05.2017 16:01

        Спасибо за комментарий, действительно слишком пафосно фраза была построена, заменили на другую. По поводу вашего списка из википедии: с тем что вы привели в качестве своего дополнительного портфолио я тоже работал (SQLite так вообще огромный помощник в любом начинании) + еще DB2, Access (сколько он крови продолжает пить), FoxPro и прочие SAP творения, а вот остальные 3 (SQL Anywhere, dBase, Firebird) надо бы уже похоронить и не использовать в новых проектах (если вам повезло столкнуться с жестким легаси — сочувствую, понимаю эту боль).


      1. SirEdvin
        31.05.2017 22:16

        Возможно, я заблуждаюсь, но кроме этих 4 баз данных, остальные на рынке представлены крайне мало, а SQLite вообще не нуждается в администрировании (файлик же).


        На остальные можно в целом забить, как на погрешность.


        1. Fortop
          31.05.2017 22:21

          Вы все же заблуждаетесь.


          Остальные едят свой кусок пирога и пока умирать не собираются.


          Даже прадедушка dBase, диалектом которого является Foxpro и о чем, к удивлению, не знает местный специалист по БД


          1. kast218
            31.05.2017 23:12
            -1

            Господин Fortop (к сожалению не знаю вашего имени) я уже признал ваше величие и мудрость, будьте снисходительны как вы любите выражаться к неудачникам. Мера моего незнания — бесконечна, не унижайте меня больше пожалуйста вашим бодрящим и искрометным сарказмом, для этого есть ресурс избранных sql.ru, который вы рьяно продвигаете. Вот лет через 10 если меня также сильно обидит жизнь я буду продолжать неустанно практиковаться, то может быть мне удастся влиться в сообщество мудрых, но самое главное добрых и отзывчивых людей, ярким представителем которого вы являетесь.

            А еще лучше пойдите на встречу и сделайте первый шаг — начните Open Source проект, который поможет людям лучше разбираться в мире реляционных баз данных, выложите свой код на Github, чтобы было на что равняться или просто хотя бы улыбнитесь.


            1. Fortop
              01.06.2017 02:23

              Когда закончите паясничать, тогда и поговорим.

              Пока вы просто подтвердили свое качество специалиста своим шутовством и апломбом.

              Начните с написания действительно полезных технических статей.
              И будут вам почёт и уважение.

              P.S. Ну и, да, профиль на github гуглится легко.
              Правда вам это не поможет


          1. SirEdvin
            31.05.2017 23:15

            Остальные едят свой кусок пирога и пока умирать не собираются.

            Cobol все еще ест свой кусок пирога и умирать не собиратся. Prolog тоже.


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


            1. Fortop
              01.06.2017 02:33

              Просто для информации MS Access вполне себе файловая СУБД, как вы изволили выразиться.
              И даже по непонятным рейтингам опережает SQLite.


              1. SirEdvin
                01.06.2017 08:55

                Я могу ошибатся, но MS Access скорее всего используются в тех же местах, что и MS Excel, просто что бы сделать excel с формочками.


                Я за свою не очень долгую жизнь пока видел только такое применение. В IT проектах MS Excel как-то не видел.


                1. Fortop
                  01.06.2017 13:05

                  Есть большое число «мелких» IT проектов где Excel это основной инструмент.

                  Что касается более крупных вещей, то практически каждая CRM/ERP система предусматривает выгрузку данных в него для дальнейшего анализа


                  1. SirEdvin
                    01.06.2017 13:07

                    Мне кажется довольно странным, когда вместо того, что бы использовать функционал CRM/ERP, ребята будут делать цепочку CRM/ERP -> Excel -> MS Access и нанимать для него еще разработчиков.


                    MS Access занимает только одну нишу — когда у вас нет CRM/ERP систем и вам не хочется тратить на нее деньги. В других случаях какой смысл его выбирать?


                    1. VolCh
                      01.06.2017 13:43

                      CRM/ERP система есть, но функциональность не устраивает до конца, доработка очень дорога, а возможность импорта/экспорта есть.


                      1. SirEdvin
                        01.06.2017 13:44

                        CRM/ERP, но не дорабатывается под нужны бизнеса, с большой долей вероятности — ее нет.


                        Ну или вам повезло)


                        1. VolCh
                          01.06.2017 13:54

                          Доработки могут быть очень дорогими и(или) не оперативными, по крайне мере если соблюдать лицензионные соглашения.


                          1. SirEdvin
                            01.06.2017 14:01

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


                            1. VolCh
                              01.06.2017 14:17

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


                    1. Fortop
                      01.06.2017 14:49

                      В других случаях какой смысл его выбирать?

                      Тогда когда эти системы избыточны для ваших нужд.

                      Инвентарный учет в мелком складе.
                      Частный предприниматель с его задачами и т.д. и т.п.
                      Да большинство мелких компаний с количеством работников до 100 человек.

                      Мне кажется довольно странным, когда вместо того, что бы использовать функционал CRM/ERP, ребята будут делать цепочку CRM/ERP -> Excel

                      Вот на этой цепочке и остановитесь.

                      Excel это чрезвычайно гибкий инструмент учета и анализа на низком уровне.


                      1. SirEdvin
                        01.06.2017 20:16

                        Да большинство мелких компаний с количеством работников до 100 человек.

                        У вас тут уже нужен онлайн-документ. Иначе будет больно)


                        Excel это чрезвычайно гибкий инструмент учета и анализа на низком уровне.

                        Против него я ничего не имею, но это не база данных. Зачем же MS Access?


                        1. Fortop
                          02.06.2017 11:39

                          Иначе будет больно

                          Как ни странно, но не будет.

                          Зачем же MS Access?


                          Затем что сам Excel при удобстве анализа и обработки предоставляет крайне слабые возможности по контролю целостности и корректности данных.
                          Access в этом плане намного мощнее


                          1. VMichael
                            02.06.2017 12:16

                            Заметил, что за бугром используют Access шире, чаще чем у нас. И не комплексуют по этому поводу. Просто закрывают бизнес потребности подходящим инструментом.


                            1. Fortop
                              02.06.2017 12:59

                              Достаточно сравнить стоимость «полноценной БД» и Access и свои нужды.
                              Очень часто мелкому и даже среднему бизнесу возможностей последнего достаточно. А разница в цене это практически годовая зарплата инженера достаточно неплохой квалификации.

                              Так что какие тут комплексы, если деньги :)


      1. InChaos
        01.06.2017 08:13

        Мне всегда странно читать такие заявления. Я c 2005 года работаю с СУБД, с остальными поверхностно — могу установить, настроить, написать запросы и т.д. С MS SQL работаю очень плотно и как а дмин и как разработчик и архитектор. И даже за 12 лет я как то не могу считать что я его на 100% ЗНАЮ. Там столько ньюнсов, а практика обычно столько не затрагивает, и даже узнав что то, но не используя в практике это забывается. А тут за 10 лет распыление на все БД. У меня вон замечательная память, и если я за месяц прочитаю кучу книг, то тоже смогу вести лекции, да тем более с готовыми примерами. А вот проявить себя как спец на практике уже вряд ли.


        1. WarFollowsMe
          01.06.2017 14:10
          +1

          в тексте сказано «познакомился», а не «на все 100% знаю». Странная ветка. Придрались к фразе и развели пустую демагогию.


        1. kast218
          02.06.2017 12:55
          -1

          И даже за 12 лет я как то не могу считать что я его на 100% ЗНАЮ

          Я же нигде такого не утверждал.


          А тут за 10 лет распыление на все БД

          Вы либо очень долго работаете на одном проекте, либо сами решаете какую базу данных использовать. Когда я начинал меня никто не спрашивал с какой БД работать, все определяли более опытные люди и это правильно. В текущих же условиях когда наметился сильный тренд на уход баз данных в облака опыт работы только с одной реляционной базой является слабым конкурентным преимуществом на рынке труда, неужели не интересно что происходит по ту сторону баррикад?


  1. VolCh
    31.05.2017 13:35
    +1

    То есть если нет и не планируется Windows, SSMS, PowerShell и C#, то переход на MS SQL приведёт к значительному усложнению разработки и администрирования СУБД?


    По опыту работы с продуктами других вендоров, которые с большой задержкой стали делать Linux-версии, на помощь комьюнити тоже мало надежды. Оно зачастую даже не понимает абсолютно корректно и исчерпывающе поставленного вопроса типа "как подключить к системе XXX версии 8.3 с СУБД YYY версии 9.4 как внешний источник данных СУБД YYY версии 9.4. Всё под ОС ZZZ 7.0 крутится" — начинают рассказывать про "Пуск", реестр и т. п.


    1. kast218
      31.05.2017 13:51
      +1

      То есть если нет и не планируется Windows, SSMS, PowerShell и C#, то переход на MS SQL приведёт к значительному усложнению разработки и администрирования СУБД?

      Я так понял вопрос касается эксплуатации SQL Server только в среде Linux? Если да, то:


      • Powershell уже как год кроссплатформенный (так что администрирование, которое очень удобно именно через Powershell за исключением некоторых ньюансов будет тем же)
      • SSMS с высокой долей вероятности портируют под Linux (как только это будет сделано для Visual Studio), также существуют альтернативы SSMS и под Linux

      В целом же, согласен что на текущий момент времени разработка на Linux под SQL Server менее удобна чем в среде Windows, но Microsoft прикладывает огромные усилия для улучшения данной ситуации (например, совсем не давно вышли 2 новые утилиты DBFS и mssql-scripter


      По опыту работы с продуктами других вендоров, которые с большой задержкой стали делать Linux-версии, на помощь комьюнити тоже мало надежды. Оно зачастую даже не понимает абсолютно корректно и исчерпывающе поставленного вопроса типа "как подключить к системе XXX версии 8.3 с СУБД YYY версии 9.4 как внешний источник данных СУБД YYY версии 9.4. Всё под ОС ZZZ 7.0 крутится" — начинают рассказывать про "Пуск", реестр и т. п.

      А вот здесь, как не странно, все очень и очень не плохо. В последнее время обозначился очень активный тренд переноса всех наработок в области SQL Server в Open source в целом и на Github в частности (в статье есть ссылка на список очень хороших и полезных проектов на Github). Также сообщество у SQL Server очень отзывчивое, всегда придут на помощь и охотно делятся информацией.


      1. VolCh
        31.05.2017 17:26

        Я так понял вопрос касается эксплуатации SQL Server только в среде Linux?

        Правильно поняли. Но я не об использовании портированных с Windows инструментов, а об использовании классических для Linux подходов к администрированию — (ba)sh, конфиги и т. п. А так не удивлюсь, если MS вместе с MS SQL Server и Powershell MS портировала как их зависимости в каком-то виде и реестр, и (D)COM, и .Net, так что администрирование SQL будет не "ещё один SQL сервер под Linux", а "MS SQL Server под какой-то странной, но бесплатной Windows" :)


        1. kast218
          31.05.2017 18:56
          +2

          Да они (Microsoft) вроде наоборот Linux на Windows перетаскивают) Подробнее о принципах портирования SQL Server написано здесь — https://blogs.technet.microsoft.com/dataplatforminsider/2016/12/16/sql-server-on-linux-how-introduction/


          Ну и разве не классно что теперь можно:


          sudo apt-get install -y mssql-server


          1. SirEdvin
            31.05.2017 23:21
            +1

            Судя по статье (я, конечно, прочитал ее только мельком) там все именно так, как и опасается VolCh.


            . Creating SQLPAL enabled the existing Windows dependencies to be used on Linux with the help of parts of the Drawbridge design focused on OS abstraction while leaving the key OS services to SOS. We are also changing the SQL Server database engine code to by-pass the Windows libraries and call directly into SQLPAL for resource intensive functionality.

            Они завезли свой шабаш с идеологически неправильной конфигурацией и, скорее всего, next-next-кликингом.


            Может я и ошибаюсь, но пока похоже на это


          1. VolCh
            01.06.2017 13:52

            apt мелочь по сравнению с конфигурированием. И да, по вашей ссылке получается, что они запускают SQL Server под прокладкой типа WINE, частично реализующей, частично транслирующей вызовы Win32 и ко в Линукс.


            1. kast218
              01.06.2017 14:28

              Но а что в этом плохого? Все равно SQL Server закрытый продукт, так что в любом случае это черный ящик, который хорошо должен делать свою работу, какая разница как он это будет делать в среде Linux если на выходе у конечного пользователя будет нужный результат?


              1. VolCh
                01.06.2017 14:30

                Кроме конечного пользователя есть ещё разработчики и эксплуатация.


      1. SirEdvin
        31.05.2017 23:17
        +1

        А вот здесь, как не странно, все очень и очень не плохо.

        Open Source — не панацея, к сожалению. Основная проблема в сообществе, которое будет все равно советовать варианты в духе "Поставь powershell и вжух-вжух-вжух" и так далее, которые работают на Windows.


        1. VolCh
          01.06.2017 13:55

          Это хорошо если сообразят, что powershell вообще ставить нужно.


  1. osipov_dv
    31.05.2017 14:37

    Если кратно —

    парни, очень хочется получить MVP по MS SQL
    :)


    1. kast218
      31.05.2017 16:14

      Хочется, но для этого надо сделать гораздо больше всего, мне это еще долго не светит, но желание бесспорно имеется)


      Есть такой замечательный профессионал в мире SQL Server — Дмитрий Пилюгин (крайне советую его грандиозный блог по внутренностям SQL Server — http://www.queryprocessor.com/, есть русская версия http://www.queryprocessor.ru, но она к сожалению реже обновляется в связи с низким интересом в зоне .ru к SQL Server), так вот он проделывает огромную работу по анализу и популяризации SQL Server и у него все 3 MVP (всего — потому что у него больше половины статей заслуживают звания MVP).


      1. osipov_dv
        31.05.2017 19:05
        +2

        У вас ошибочное понимание звания MVP. Это не признание знаний, это признание активности…
        К сожалению, ценность данного звания не очень высока. Есть люди без этого звания, с грандиозными знаниями в этой области — например, Brent Ozar.


        1. kast218
          31.05.2017 19:19

          Есть люди без этого звания, с грандиозными знаниями в этой области — например, Brent Ozar.

          Brent Ozar очень не удачный пример — у него аж 7 MVP на текущий момент (это конечно сильно меньше чем 20 у легендарного в определенных кругах Aaron Bertrand), и да, они очень крутые (это не совсем один человек — это команда под его именем для тех кто не в теме), чего стоят только их статьи и курсы, я уже не говорю про SQL Server First Responder Kit.


          К сожалению, ценность данного звания не очень высока

          Ценность в данном случае понятие относительное — статус MVP не сделает тебя богатым или знаменитым, это признание твоих заслуг со стороны людей, для которых стэк Microsoft помогает зарабатывать деньги. И я не в коем случае не причисляю себя к данным людям, просто стараюсь по мере своих сил вести популяризацию SQL Server, т.к. данная база лично мне помогает уже более 5 лет выполнять мои служебные обязанности.


          Еще полезный список SQL Server профессионалов я веду здесь или без сортировки и поиска на github: удобно сразу вставить твиттер или блог если надо сослаться на кого-то из них.


          1. osipov_dv
            31.05.2017 20:20
            +1

            Это признание исключительно со стороны MS, стоит тебе поругать MS или что-то с ним связанное и твое звание отзовут.
            С Брентом вышел промах, согласен… Кстати, такое ощущение что люди там меняются, мне казалось что там раньше была Kenda Little.


            1. kast218
              31.05.2017 22:44

              Это признание исключительно со стороны MS, стоит тебе поругать MS или что-то с ним связанное и твое звание отзовут.

              Ну насчет этого не знаю, не слышал чтобы кого-то лишали звания MVP, интересно было бы прочитать про такое событие.


              Кстати, такое ощущение что люди там меняются, мне казалось что там раньше была Kenda Little.

              Да, она и еще Jeremiah Peschka более года назад покинули его команду. Kenda Little помимо своего интересного блога пробует запустить собственный проект по обучению SQL Server и он пока до конца года абсолютно бесплатен — https://sqlworkbooks.com, а Peschka ударился в Rust и выпал из моего поля зрения. Но к ним на замену пришли очень хорошие специалисты — Tara Kizer и Richie Ramp (https://www.brentozar.com/team/), последний кстати один из главных создателей PasteThePlan — удобного сервиса по обмену планов выполнения запросов SQL Server.


  1. osipov_dv
    31.05.2017 20:20

    Это признание исключительно со стороны MS, стоит тебе поругать MS или что-то с ним связанное и твое звание отзовут.
    С Брентом вышел промах, согласен… Кстати, такое ощущение что люди там меняются, мне казалось что там раньше была Kenda Little.


  1. omegik
    01.06.2017 11:10
    +1

    По поводу тезиса «Oracle сильно дороже MSSQL» — неплохо-бы какие-то цифры привести, т.к. в последнее время с ростом функционала MS сильно поднимал и цены — на сегодня я не уверен в его «дешевизне».


    1. kast218
      01.06.2017 11:51
      -1

      По поводу тезиса «Oracle сильно дороже MSSQL» — неплохо-бы какие-то цифры привести

      Спасибо за замечание. Я не занимаюсь отслеживанием динамики цен на данные продукты, но мою оценку я взял из этой статьи Please, Please Stop Complaining about SQL Server Licensing Costs and Complexity от августа 2016 года. Также есть похожая статья, но уже сравнение DB2 с Oracle: Tired of Oracle’s exorbitant pricing? Try IBM’s DB2 v10.5 on Power8!, поверхностно посмотрев цены Microsoft я сделал вывод что они сопоставимы с DB2. Oracle я подробно не разбирал, доверившись цифрам приведенным в статьях.


      1. zlexxx
        01.06.2017 13:26

        Крайне некорректное сравнение.
        Да, Oracle лицензирует все опции отдельно, но по факту все они редко когда нужны. А к MS SQL нужно автоматом добавлять и стоимость Windows.
        В базе — лицензия Oracle дороже в два раза в пересчете на ядро, но при лучшей производительности, при возможности работать на более быстрых ядрах (в сравнении с Intel) разница не просто нивелируется, но и наоборот.


        Во вторых, опции сравнивать один в один нельзя, они не являются идентичными.
        Ну и в-третьих, если переформулировать, то при тех же возможностях, что и Oracle DB, MSSQL… пока еще не придумал аналогов (например, оптимизация SW и HW на низком уровне).


        В общем, считать на стоимость ядра нужно, а стоимость решения аналогичной задачи.
        И в этом случае перевес может быть как в сторону MS SQL, так и в сторону Oracle, MySQL, PosgreSQL и пр.


        1. kast218
          01.06.2017 14:18
          +1

          Крайне некорректное сравнение.

          После такого начала ждешь ссылки на проведенные исследования, чей-то подробно описанный опыт, когда Oracle оказался по цене сопоставим с SQL Server или DB2, а получаешь дальше вот что:


          Да, Oracle лицензирует все опции отдельно, но по факту все они редко когда нужны.

          А если все таки нужны?


          А к MS SQL нужно автоматом добавлять и стоимость Windows.

          Может быть вы немного пропустили, но вот уже есть SQL Server 2017 (правда пока только CTP 2.1), цель которого как раз оказать конкуренцию Oracle и PostgreSQL на Linux. Но даже не в этом суть, вы же наверное посмотрели цифры, приведенные в моих ссылках (или сразу минус влепили — про минус это мое предположение)? В первой из них стоимость SQL Server Core Engine (16 cores) — $109,980.00, Oracle Database Engine — $380,000.00, стоимость лицензии на Windows Server 2016 — в районе ?40,000 (можно округлить до $3,000 если нужно много CAL), внимание вопрос: не кажется ли что стоимость Windows Server в большинстве случаев настолько мала по сравнению со стоимостью базы данных, что ею можно пренебречь?


          Во вторых, опции сравнивать один в один нельзя, они не являются идентичными.

          Абсолютно согласен что в один в один нельзя, но почему оценочно нельзя сравнивать? Если мне допустим для проекта просто жизненно необходим Columnstore, то разве это не аргумент оценочно равный $184,000.00 в пользу SQL Server?


          В общем, считать на стоимость ядра нужно

          Я посчитал чуть выше (основываясь не на своих цифрах, но по мне они близки к реальности), можете привести свой расчет?


          Ну и в-третьих, если переформулировать, то при тех же возможностях, что и Oracle DB, MSSQL… пока еще не придумал аналогов (например, оптимизация SW и HW на низком уровне).

          Про оптимизация SW и HW на низком уровне в Oracle ничего толкового не знаю, не могли бы вы дать больше информации (насколько они сильно помогают)? И какие еще уникальные возможности есть в Oracle (интересно было бы прочитать про их выгоду на реальных проектах), оправдывающие его цену?


          а стоимость решения аналогичной задачи

          Помогите пожалуйста хотя бы ссылками как правильно сравнивать по стоимости разные базы данных (интересует четверка Oracle, MySQL, PostgreSQL, SQL Server), меня этот вопрос действительно интересует.


          В целом у вас очень выигрышная позиция: для каждой задачи нужно использовать свой инструмент (гвозди и молотки), я с ней абсолютно согласен. Но пожалуйста приведете таблицу обоснованных цифр, которые опровергнут мое высказывание Oracle сильно дороже MSSQL? Можно прям какой-нибудь очень специализированный проект где такое событие произошло.


          Я никак не связан с Microsoft и даже не знаю не одного человека, работающего в нем, мне действительно интересно почему в приведенных мною ссылках выше Oracle получается в среднем в 10 раз дороже DB2 и SQL Server?


          1. zlexxx
            01.06.2017 16:14

            пара комментов:
            1.
            стоимость MS SQL ~ 1,5 млк руб ~ $25 k (поправьте меня, но вроде ценник такой, там в рублях рост по 15% в год, если не ошибаюсь)
            16 ядер = 8 CPU = $200k
            это половина от стоимости Oracle

            2. Про Linux — ну вы же не серьезно. Пока это не боевой вариант, но скоро — да, будет альтернатива.
            ну а про Unix — это только в мечтах.
            поэтому платформы типа Sparc и Power — без варинтов.
            частота Sparс сейчас в два разы выше, памяти там тоже больше ощутимо.
            т.е. даже по физике они существенно обходят интел

            3. про интеграции SW и HW — вот можно почитать:
            https://habrahabr.ru/company/muk/blog/307082/
            это маркетинг, конечно, но суть верная
            а суть в том, что Oracle часть операций выполняет на сопроцессоре, и это ускоряет аналитические запросы, например, в десятки раз (опять же, просто физика)

            4. Базы сравнивать — дело неблагодарное, как и машины — кому-то седан, кому-то кроссовер.
            для сайта вы возьмете одну, для КХД — другую, под 1С — третью, для самописных изысканий — четвертую
            и всегда это будут лучшие варианты.


  1. d_pa
    01.06.2017 14:40

    Мы побеседовали с Константином Тарановым, разработчиком и администратором баз данных в компании Газэкономика ...

    Я думал, что разработчик БД и АБД в одном флаконе — это удел только микрокомпаний, чья основная деятельность далека от ИТ.


    1. VMichael
      02.06.2017 09:22

      Нет.
      Эти две роли постоянно пересекаются.


  1. VMichael
    02.06.2017 09:24

    А что не так с SQL.RU?
    Там неплохое сообщество.
    Есть какой то антагонизм?
    Почему почти все ссылки только на англоязычные ресурсы?


    1. kast218
      02.06.2017 13:17

      А тут за 10 лет распыление на все БД

      Все хорошо, большое сообщество, много профессионалов, особенно близко с ним не знаком (ищу всю информацию на английском), но многие из друзей отмечают зачастую агрессивное отношение к новичкам и много флуда, но все это субъективно.


      Есть какой то антагонизм?

      Нет. В данном топике был антагонизм по отношению к пользователю Fortop, т.к. он слишком грубо по моему субъективному мнению раздает ярлыки "неудачники" и непрофессионалы. Вот он как раз привел в пример хорошего сообщества sql.ru, что в совокупности с предыдущими отзывами привело к излишней агрессии с моей стороны.


      Почему почти все ссылки только на англоязычные ресурсы?

      Дайте мне ссылки на русские ресурсы, я с удовольствием их добавлю. Кроме русскоязычного блога Дмитрия Пилюгина (который он в свое время даже забросил из-за низкого интереса русскоязычных читателей) ничего толкового не находил (но это мое опущение, особо не старался найти, если вы посоветуете хорошие ресурсы, то буду очень благодарен). У меня сложилось впечатление, что SQL Server очень не популярен в России, что я и пытаюсь в меру своих сил немного исправить.


      Из того что мне удалось найти:



      1. Fortop
        02.06.2017 15:18

        Вот он как раз привел в пример хорошего сообщества sql.ru


        Ну-ну.
        А между тем я приводил его как место где легче можно найти профессионала в теме.

        Вы же умудрились прочитать про какую-то «хорошесть» сообщества. Что в очередной раз демонстрирует ваши личные когнитивные качества.


        1. akhmelev
          04.06.2017 05:42

          Для личных оскорблений отлично подходит личка. Соревнование в остроумности "завуалированных" оскорблений и выглядит нелепо, и приводит к результату прямо противоположному ожидаемому ;)


          1. Fortop
            04.06.2017 08:31

            Я даже стесняюсь спросить.


            Какой по вашему мнению я ожидал результат?


            1. akhmelev
              04.06.2017 16:44

              Со стороны больше всего похоже на банальнейший троллинг.
              Его цели слишком хорошо известны чтобы еще и их обсуждать.

              Сентенции «неудачник» «я не дба» «акцесс рулит» «идите на sql.ru» и наконец из последнего «Что в очередной раз демонстрирует ваши личные когнитивные качества.» ни малейшего отношения к тематике основного пиара статьи не имеют.

              Более того, боюсь вам все равно на кого изливать сие, так что заранее откланиваюсь.


              1. Fortop
                05.06.2017 00:22

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


                Не DBA — чёткое ограничение уровня уже моей компетенции.


                Access не рулит, но имеет свою весьма широкую область применения.
                Отрицать которую могут только недостаточно компетентные в этом вопросе люди.


                sql.ru профильный ресурс по базам данных с достаточно широким кругом хороших специалистов по обсуждаемой теме.


                И вам это все так не понравилось, что вы приняли это близко к сердцу? :)