Блог CEO, CIO Виктора Карабедянц Блог CEO, CIO Виктора Карабедянц
  • Обо мне
  • Навыки
  • Образование
  • Опыт
  • Проекты
  • Блог
  • CIO аутсорсинг
  • Контакты

Развитие T-SQL и проблемы SQL Server на современном предприятии

13 апреля 201912 апреля 2019 / By Виктор
  • Home
  • Развитие T-SQL и проблемы SQL Server на современном предприятии

С 2010 года я организовывал мероприятия Tech Outbound SQL Cruise — недельные учебные курсы с погружением, охваты­вающие всю платформу Microsoft Data целиком: Azure, машинное обучение, Power Bl и, конечно, SQL Server на предприятии.

Модель проста: обучение под руководством инструктора во время морского круиза. На стоянках в портах — развлечения, экскурсии; во время «офисных часов» предоставляются бесплатные консультации специалистов, присоединившихся к нам в роли технических лидеров.

Структура недельного курса такова, что между «участником» и «инструктором» нет границ. Это распро­страняется и на классные занятия, которыми руководит инструктор, занятия проходят в форме обсуждения, так как за 20 лет в роли специалиста по обработке данных я понял, что ни у кого нет ответов на все вопросы и мы все учимся друг у друга.

В последнем круизе с нами была замечательная группа технических лидеров, и я пригласил их по беседовать о ходе внедрения «облака», новшествах Т-SQL и оптимизации производительности SQL Server на предприятиях.

В дискуссии участвовали Джеес Борланд, главный инженер по эксплуатации в Microsoft; Ицик Бен-Ган, инструктор по T-SQL в компании SolidQ; Кевин Клайн, главный менеджер программы в компании SentryOne, и Джейсон Холл, президент по продуктам SentryOne. Для начала я предложил участникам беседы немного рассказать читателям о себе.

Ицик Бен-Ган. Я работаю в компании SolidQ, провожу большую часть времени в разъездах по миру, обучаю Т-SQL. Работаю с SQL и базами данных с начала 90-х.

Джес Борланд. Я работаю с SQL Server более 10 лет. Начинал как автор отчетов, работая с SSRS в SQL Server 2005, затем стал администратором баз данных, после занялся консультирова­нием, а теперь я главный инженер по эксплуатации в Microsoft. Мне нравится работать с разнообразны­ми клиентами в различных отраслях.

В основном я занимаюсь настройкой производительности, как локально, так и баз данных SQL Azure. С удо­вольствием наблюдал за тем, как совершенствовалась база данных SQL за последние пять лет, от версии vl 1 с ограниченной функциональностью до недавно выпущенной Managed Instances.

Кевин Клайн. Моя ИТ -карьера началась в 80-х. Я работал с Oracle и операционной системой VAX/VMS на мейнфреймах через интерфейсы с текстовым режимом. В начале 90-х я написал свою первую книгу о продуктах разработки Oracle для первого поколения операционных систем с графическими интерфей­сами. Я был членом ИТ-команды, выполнявшей бета-тестирование SQL Server при переносе на Windows NT. Поскольку NT в общем доступе не было, бета-тестирование приходилось выполнять с операционной системой IBM OS/2 Warp. С тех пор я углубленно занимаюсь SQL Server.

Джейсон Холл. Я начинал с SQL Server 6.5 как системный админи­стратор и унаследовал финансовое приложение с хранилищем данных на основе SQL Server. Очень скоро я убедился, что база данных — опор­ный элемент системы. Если пользо­ватели были недовольны системой, то обычно причиной была произ­водительность базы данных. Это было в 1998 году, и с тех пор я перепробовал почти все роли на каждой стороне сервера базы данных, пока не оказался в компании SentryOne (в то время SQL Sentry).

Тим Форд. Начнем с мониторинга производительности. Отличаются ли проблемы, которые были актуальны в прошлом, от сегодняшних?
Согласны ли вы с тем, что твердо­тельные накопители, виртуализация, стоимость оборудования и «облако» заметно смягчили одни проблемы, но обострили другие?

Кевин Клайн. Во времена, предше­ствовавшие появлению «облака», основной акцент при настройке систем корпоративного класса делался на настройку оборудования сервера и подсистемы ввода-вывода.

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

Трудоемкость настройки оборудования и ввода-вывода в последнее время снизилась, с рас­пространением виртуализации, сетей SAN и устройств SSD, и это даже не учитывая «облачных» поставщиков. Но в любом сценарии возникают узкие места из-за качества структуры базы данных, индексации и кода приложений.

В действительности, при использовании Azure и AWS код SQL с низкой производительностью и плохое проектирование повышают затраты, поскольку вы платите за ресурсы процессора, хранилища, а также входящий и исходящий трафик.

Джейсон Холл. Я вижу три основных аспекта, в следующем порядке:

  • Виртуализация. Сегодня виртуали­зация повсюду, и у многих специ­алистов по обработке данных нет возможности оценить производи­тельность на виртуальном уровне. Многие добиваются результатов, но в этой области все еще остаются недоработки.
  • Флеш-накопители. Стоимость флеш- массивов сейчас ниже, чем когда- либо раньше, и цены продолжают падать. Рабочие характеристики доставляют меньше проблем, чем 10 лет назад. К сожалению, во многих случаях некоторые забывают следить за флеш-накопителями. Общее положение дел улучшилось, но все же необходимо обратить внимание на производительность хранилища.
  • «Облако» и платформа как служба (PaaS). Многие компании двигаются к «облаку» и PaaS. Отслеживаемые параметры и средства, используемые для повышения производительности, смещаются в сторону проектируемо­го нами кода и стратегий, пригодных для использования внутри базы данных, замещая настройку на уровне служб и оборудования.

Тим Форд. Отсюда как раз вытекает мой следующий вопрос: что говорят ваши клиенты и коллеги о различиях в проблемах настройки производи­тельности локально и в «облаке»?

Джейсон Холл. В «облаке» у нас меньше контроля над доступными ресурсами и способами их использо­вания. Акцент сдвигается на запросы и индексацию. Кроме того, в силу важ н ости м и грац и и в течение нескольких следующ их лет нам потребуется разобраться в том, какие объекты подлежат миграции, каки­ми должны быть способы миграции и как эффективно управлять рас­ходами в «облаке».

Джес Борланд. Самые большие различия мы наблюдаем в автоматиза­ции и мониторинге. Инструментарий автоматизации глубоко укоренен на многих предприятиях и обеспе­чивает автоматизацию в широком спектре продуктов.

Для освоения нового набора инструментов, возможно, придется приложить допол­нительные усилия. Могут также возникнуть трудности при подготовке к работе существующих инструмен­тов мониторинга или поиске новых с той же функциональностью. Оба названных направления могут быть сопряжены с изменениями, но трудности преодолимы.

Кевин Клайн. Смена парадигмы определенно происходит. Однако я постоянно сталкиваюсь с тем обстоятельством, что освоить основы профессии в сфере обработки данных по-прежнему трудно.

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

Тим Форд. Поскольку разговор пошел в этом направлении, поговорим о внедрении «облака». Считаете ли вы, что сдвиг в «облако» наконец ускоряется? Достигнута ли точка перелома?

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

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

Джейсон Холл. В 2018 году я впервые получил сведения о крупных компаниях, принимающих решение о полном переходе в «облако» к концу 2019 года.

Тим Форд. И последний вопрос об «облаке», прежде чем перейти к другим темам: можете ли вы дать какие-либо рекомендации читателям, обдумывающим переход в «облако»?
Джес Борланд. Общий совет: перенос существующих приложений предпочтителен, если используется инфраструктура как служба (IaaS), а новые приложения, спроектиро­ванные в соответствии с заданными параметрами, будут лучшим вариантом в случае PaaS.

Современные приложения часто проектируются для использования всей функцио­нальности SQL Server и настроены для работы с традиционным физическим или виртуальным оборудова­нием. То же относится к SQL Server в виртуальной машине.

Однако варианты PaaS, такие как база данных SQL, обеспечивают ограниченный набор функций, поскольку они про­ектировались как хранилища данных, а не полноценные серверы.

Самое интересное — это новые функции, объединяющие перечисленные варианты, такие как управляемые экземпляры базы данных SQL.
Управляемые экземпляры позволяют восстановить базу данных SQL Server и обеспечивают почти стопроцент­ное соответствие функционально­сти.

Кроме того, у PaaS есть такие преимущества, как автоматическое резервное копирование, полностью интегрированные функции высокой доступности, удобное масштабиро­вание и первоочередная «облачная» разработка. Здесь соединяются достоинства обоих подходов.

Джейсон Холл. Мне приходилось слышать от многих, что финансовые преимущества от перехода в «облако» становятся полностью очевидными только после того, как задействованы особые возможности PaaS.

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

Тим Форд. Мы пока еще не рассмо­трели язык Microsoft SQL Server, T-SQL. Ицик, вы признанный экс­перт по Т-SQL. Какие особенности этого языка вызывают у вас инте­рес?
Ицик Бен-Ган. Мне нравятся головоломки, а задачи запросов, в сущности, те же логические головоломки. Учтите и то обстоятельство, что задача Т-SQL состоит не только в получении правильного результата, но и в оптимизации производитель­ности. Это еще более затрудняет ее.

Совершенствовать решения можно в течение многих лет. В этой области важна постоянная практика. И плюс большое пространство для творчества и самовыражения.

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

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

В частности, многие задачи можно решить с помощью нарастающих итогов как косвенного средства.

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

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

Тим Форд. Мы только что затронули аспект производительности оконных функций, и каждый из вас так или иначе упомянул о мониторинге. В чем, на ваш взгляд, будущее мониторинга производитель­ности?

Джейсон Холл. Определенно в машинном обучении и сложной аналитике. Речь не идет об удобной кнопке. Не думаю, что в ближай­шем будущем мы выйдем на уровень «запускаем, и оно работает быстрее», но следующий рубеж — устранить анализ, выполняемый специалистами поданным вручную.

Технические средства определят, что является нормой и, самое важное, что в последнее время не соответствует норме.

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

Кевин Клайн. Отрасль делится надвое: с одной стороны —люди, понимающие цену правильного ведения бизнеса, с другой — те, кто не понимает.

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

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

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

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

Тим Форд. Похоже, пора перевести разговор с аппаратного и программ­ного обеспечения в нашей отрасли и сосредоточиться на самом важном аспекте: людях, которые работают с тем, что производим мы. Иногда мне приходится выполнять функции администратора баз данных.

Это моя вторая карьера. Какой совет вы бы дали тем, кто начинает свою карьеру на платформе данных Microsoft?

Ицик Бен-Ган. Данные становятся все более критичными для успеха большинства компаний. Юваль Ной Харари хорошо описывает это явление в книге Homo Deus. Выбор этой сферы деятельности — уже неглупый ход.

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

Гордон, научил меня многим техническим хитростям, но особенно меня впечатлило, насколько бескорыстно он это делал. Другим наставником был Иехуда Пантанович. Я занимался годзюрю (разновидность карате, зародившаяся на Окинаве), и он был моим тренером. Я восхищался его целеустремленностью и ясностью взгляда на различные задачи.

Помню, я рассказал ему, как нервничаю, когда приходится выступать
перед большими аудиториями, и он посоветовал перед выходом на сцену сказать себе: «Это обычный разговор в офисе». На первый взгляд совсем простой прием, но он оказался дей­ствительно полезным для меня.

Тим Форд. Кевин, в сообществе SQL Server вас глубоко уважают как лидера, учителя и наставника. Можете ли вы назвать один-два не технических аспекта, в которых было бы полезно совершенствоваться специалисту по обработке данных?

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

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

Шлифуйте свои навыки в каждой из этих категорий; следите за своими достижениями, ставя перед собой конкретные, поддающиеся объективной оценке цели. Добивайтесь совер­шенства многократным повторением.
Второй совет — найдите наставника.

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

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

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

About The Author

Виктор

Leave a Comment

Cancel Reply

*Please complete all fields correctly

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

Категории
  • DevOps
  • Без рубрики
  • ИТ поддержка
  • Руководитель ИТ
Популярные статьи
  • 10 причин, по которым компании привлекают своих ИТ-директоров на аутсорсингВторник - 29 июня, 2021
  • Какие нужны знания, чтобы работать DevOps-инженером: основные навыкиЧетверг - 17 июня, 2021
  • Тренд на SASE: что это и зачем нужноСреда - 12 мая, 2021
  • Ключевые вызовы для ИТ-директоров при разработке корпоративного ПО в 2021…Среда - 21 апреля, 2021
  • 5 важных тезисов для CIO по работе с ИИСреда - 14 апреля, 2021
Tags
CIO DevOps service desk Безопасность ИТ директор ИТ менеджер Удаленный ИТ директор контейнеры
Комментарии
  • Поиск доступности в облаке Воскресенье - февраля 05, 2023 08:17 пп
  • Поиск доступности в облаке Воскресенье - февраля 05, 2023 06:50 пп
  • Поиск доступности в облаке Воскресенье - февраля 05, 2023 05:44 пп
  • Поиск доступности в облаке Воскресенье - февраля 05, 2023 04:58 пп
  • Поиск доступности в облаке Воскресенье - февраля 05, 2023 01:18 пп
© 2017 - 2019 Виктор Карабедянц
Posting....