Каковы объективные причины предпочитать SQL Server 2016 более ранним версиям?

29

Поскольку Microsoft делает обновления версии SQL Server более частыми, начиная с дней SQL Server 2005 или 2008, многим компаниям трудно определить, когда обновление является «обязательным!» и когда обновление "приятно иметь"

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

(Этот вопрос о SQL Server 2012 по сравнению с SQL Server 2008, или этот вопрос о SQL Server 2012 по сравнению с SQL Server 2005 приходит на ум в качестве примеров сути этого вопроса. Ответы на них также расширяются по некоторым причинам, приведенным здесь для компании, начинающие с SQL Server 2008 или SQL Server 2005)

Майк Уолш
источник

Ответы:

36

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

Большая причина: многие функции доступны в стандартной версии сейчас

16 ноября 2016 года Microsoft объявила о выпуске пакета обновления 1 для SQL Server 2016. Наряду с этим объявлением они также объявили, что многие функции, ранее зарезервированные для клиентов Enterprise Edition, будут доступны во всех выпусках SQL Server - Standard, Express (с несколько исключений), Интернет в дополнение к Enterprise Edition.

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

По моему скромному мнению, за более чем 17 лет работы с SQL Server это делает SQL Server 2016 с пакетом обновления 1 (SP1), возможно, наиболее привлекательным обновлением, поскольку я начал работать с SQL Server в версии 6.5. (Не поймите меня неправильно, у 2000, 2005 и 2012 годов тоже были свои плюсы!)

Посмотрите на приведенный ниже список, но в качестве быстрого примера некоторых функций, которые теперь можно использовать в Standard Edition, у вас есть такие: сжатие, сбор данных изменений, детальный аудит, защита на уровне строк, всегда зашифрованные, разбиение на разделы, база данных Снимки, In-Memory OLTP, Columnstore.

Конкретные причины новых возможностей SQL Server 2016

Я пытаюсь привести причины, приведенные здесь, в этом разделе, к функциям, представленным только в SQL Server 2016. В этом ответе я также только описываю усовершенствования ядра, а не отчеты, аналитику, интеграцию данных и т. Д.

Связанные с безопасностью

Безопасность на уровне строк - у меня есть много клиентов, которые хотят внедрить защиту по строкам. Msgstr "Пользователь x может просматривать данные в этой строке, но не в этой строке". Многие из этих клиентов создали для этого функции и / или сложные структуры, основанные на представлении. В SQL Server 2016 есть встроенные предикаты и политики безопасности, доступные здесь. Вы можете прочитать больше о RLS здесь .

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

Всегда зашифрован - возможно, вы слышали о некоторых недостатках или проблемах с прозрачным шифрованием данных. Возможно, вы не хотите использовать TDE, опасаясь, что кто-то, имеющий доступ к SA, может определенно расшифровать, если захочет. Always Encrypted был выпущен как функция, предоставляющая возможность дешифрования / шифрования в руки приложения, обращающегося к SQL Server. Данные в состоянии покоя в SQL Server зашифрованы. В результате такого подхода данные в полете на SQL Server шифруются. Вы можете прочитать больше о Always Encrypted здесь .

HA / DR Особенности

Здесь появилось несколько особенностей. Одним из них является возможность использовать группы всегда в наличии в стандарте SQL Server - базовая группа доступности. Это было необходимо, поскольку зеркальное отображение устарело и не имело замены. Функциональность ограничена количеством реплик и подходом к синхронизации. Вы можете прочитать больше здесь .

Это не единственное изменение в группах доступности (которые, кстати, были введены в SQL Server 2012). Есть также несколько других изменений (вы можете увидеть полный список со ссылками на другие изменения здесь ):

  1. Групповые управляемые учетные записи поддерживаются.
  2. Распределенные транзакции поддерживаются (с некоторыми оговорками ).
  3. Соединения с намерением чтения могут быть сбалансированы по нагрузке между репликами только для чтения.
  4. Три реплики могут быть задействованы в автоматическом восстановлении после отказа.
  5. Зашифрованные базы данных теперь могут участвовать в группе доступности всегда.
  6. Повышение производительности - часть темы SQL Server 2016 - «это просто быстрее» - это раскрутка Microsoft Marketing, но она хорошо себя зарекомендовала на рынке. Несколько улучшений было внесено в производительность группы доступности.

Установщик исправляет некоторые распространенные ошибки

Установщик SQL Server, начиная с SQL Server 2016, исправляет некоторые распространенные ошибки, допущенные при настройке TempDB. Графический интерфейс настройки покажет вам лучшие настройки.

Query Store

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

Временные таблицы

Я часто вижу необходимость задать вопрос типа «Как выглядели эти данные на ту или иную дату». Временные таблицы являются одним из способов сделать это. Определенно есть некоторые варианты использования складирования. Подробнее здесь .

Улучшения в Columnstore

Три большие для меня улучшения здесь, среди пары других. Один из них - обновляемые некластеризованные индексы columnstore. SQL Server 2014 дал нам обновляемые кластеры, но теперь у нас есть обновляемые некластеризованные. SQL Server 2016 также позволяет использовать индексы columnstore для таблиц OLTP в памяти. А возможность размещения некластерного индекса традиционного B-дерева в кластеризованном индексе хранилища столбцов теперь существует в SQL Server 2016.

Улучшения в дополнительных функциях в памяти OLTP

Некоторые функции, которые не поддерживаются в таблицах In-Memory или в скомпилированных процедурах, теперь доступны. Некоторые дополнения (но см. Эту статью для большего количества): УНИКАЛЬНЫЕ Ограничения, Проверить Ограничения, предложение OUTPUT в DML, Внешнее Соединение, Подзапросы в списке выбора, ВЫБРАТЬ DISTINCT, UNION / UNION ALL и многое другое.

Общие улучшения производительности

SQL Server 2014 внес некоторые улучшения в производительность в нескольких ключевых областях, как и в каждом выпуске. SQL Server 2016 сделал дополнительные ключевые улучшения во всем продукте. Это включает в себя устранение для многих клиентов некоторых проблем, возникающих иногда при обновлении до SQL Server 2014 из-за изменений в оценке количества элементов. Несколько изменений в двигателе были сделаны для улучшения повседневной работы. Команда CSS из Microsoft ведет блог об этом в своем блоге. Вы можете просто найти «SQL Server 2016, он просто работает быстрее». Пример сообщения в блоге для этой серии здесь .

Я видел, как это разыгрывается на клиентах, которые обновились, и ожидают увидеть это все больше и больше.

Некоторые минусы

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

Обновления в целом - В целом, обновления означают, что вы вводите новые функциональные возможности. Вы должны быть в состоянии проверить их. Между версиями SQL Server различные функции устарели. Это не означает, что они уходят сразу, но это означает, что они могут в будущих выпусках, часто через три версии. Например, тип данных TEXT или выполнение внешних объединений в предложении where с помощью *=или=*синтаксис не поддерживается, если вы используете базу данных, работающую в режиме совместимости с SQL Server 2000. Говоря о режимах совместимости - они вернутся только на три версии. Поэтому, если у вас есть база данных, работающая в режимах совместимости 80 (SQL Server 2000) или 90 (SQL Server 2005), они не могут перейти в SQL Server 2016 таким образом. Так что, если вы избегаете этого теста и подкрадываетесь к уровням совместимости, пришло время рассчитывать.

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

Лицензирование - две вещи здесь:

  1. Основанный на ядре - если вы привыкли к предварительным условиям лицензирования SQL Server 2012, лицензии на ЦП были именно таковыми - лицензии на ЦП. Начиная с SQL Server 2012, лицензии на основе ЦП были основаны на ядре. Так что там есть период корректировки. Кроме того, Enterprise для новых лицензий (за некоторыми исключениями, которые были сделаны, когда 2012 год был впервые выпущен), должениметь лицензию на уровне ядра - нет сервера + клиентская лицензия для предприятия. Сияющая серебряная подкладка в этом облаке - это то, что я сказал о пакете обновления 1 (SP1), который позволяет использовать функции Enterprise в SKU других компаний. Если вам нужно более 128 ГБ оперативной памяти. Если вам нужны расширенные улучшения производительности сканирования. Если вам нужно более 32 ГБ ОЗУ для хранилища колонок или In-Memory, тогда вы смотрите на Enterprise. Если нет? И вам не нужны перестройки индекса онлайн? Стандарт может быть только для вас, и теперь он может быть больше для вас с этими функциями, недавно доступными для вас.
  2. Software Assurance (SA) - если вы не купили SA, вы должны купить новый. Так что, если вы работаете с SQL Server 2005 и беспокоитесь о том, что у вас нет основной поддержки, не так уж далеко от окончания расширенной поддержки и вы хотите, чтобы у вас были теперь доступны функции, вы не можете просто обновить как Service Pack. Если вы никогда не покупали SA, то ваше обновление является новой покупкой. Это нормально, это действительно того стоит. Но это то, что должно ударить по бюджету.

Резюме

Есть еще много причин, таких как поддержка JSON, введение R и т. Д. Но это лишь некоторые из причин, по которым я бы рассмотрел обновление. Наиболее важным моментом, опять же, является возможность использовать многие ранее доступные только для Enterprise Edition функции в Standard или даже Express. Я видел большие истории успеха среди своих клиентов, и я ожидаю увидеть больше.

И если вы используете SQL Server 2005 или 2008, список еще больше. Группы доступности AlwaysOn появились в 2012 году, индексы Columnstore в SQL Server 2012, OLTP в памяти в SQL Server 2014 и т. Д.

Не говоря уже о том, что вы все еще пользуетесь SQL Server 2005 или 2008, у вас нет поддержки со стороны мейнстрима.

Майк Уолш
источник
2
Все это + реальная бизнес-причина - самый длинный жизненный цикл. Люди, которые все еще работают на SQL2000, не могут обновить Windows, старые окна не установлены на новом сервере, и все эти проблемы растут одна за другой. Для бизнеса - JSON и другие, это всего лишь ИТ-игрушки ... прекратить поддержку, которую они понимают
a_vlad