Из Википедии, бесплатной энциклопедии
  (Перенаправлено с SQL Server 2014 )
Перейти к навигации Перейти к поиску

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

История [ править ]

История Microsoft SQL Server начинается с первого продукта Microsoft SQL Server - SQL Server 1.0, 16-разрядного сервера для операционной системы OS / 2 в 1989 году - и продолжается до сегодняшнего дня.

Вехи [ править ]

  • MS SQL Server для OS / 2 начался как проект Sybase , Ashton-Tate и Microsoft по переносу Sybase SQL Server на OS / 2 в 1989 году .
  • SQL Server 4.2 для NT выпущен в 1993 году, став входом в Windows NT .
  • SQL Server 6.0 выпущен в 1995 году, положив конец сотрудничеству с Sybase ; Sybase продолжит разработку собственного варианта SQL Server , Sybase Adaptive Server Enterprise , независимо от Microsoft.
  • SQL Server 7.0 выпущен в 1998 году, что ознаменовало преобразование исходного кода с C на C ++.
  • SQL Server 2005, выпущенный в 2005 году, завершает полную ревизию старого кода Sybase в код Microsoft.
  • SQL Server 2012, выпущенный в 2012 году, добавляет столбчатое хранилище в памяти, также известное как xVelocity.
  • SQL Server 2017, выпущенный в 2017 году, добавляет поддержку Linux для следующих платформ Linux: Red Hat Enterprise Linux , SUSE Linux Enterprise Server , Ubuntu и Docker Engine . [4]

В настоящее время [ редактировать ]

По состоянию на май 2020 года Microsoft поддерживает следующие версии:

  • SQL Server 2012 [5]
  • SQL Server 2014
  • SQL Server 2016
  • SQL Server 2017 г.
  • SQL Server 2019

Начиная с SQL Server 2016, продукт поддерживается только на процессорах x64. [6]

Текущая версия - Microsoft SQL Server 2019, выпущенная 4 ноября 2019 г. RTM-версия - 15.0.2000.5. [7]

Редакции [ править ]

Microsoft делает SQL Server доступным в нескольких редакциях, с разными наборами функций и ориентированными на разных пользователей. Эти выпуски: [8] [9]

Основные выпуски [ править ]

Предприятие
SQL Server Enterprise Edition включает как ядро ​​базы данных, так и дополнительные службы, а также ряд инструментов для создания кластера SQL Server и управления им. Он может управлять базами данных размером до 524 петабайт и адресовать 12 терабайт памяти и поддерживает 640 логических процессоров (ядер ЦП). [10]
Стандарт
Версия SQL Server Standard включает ядро ​​базы данных вместе с автономными службами. Он отличается от выпуска Enterprise тем, что поддерживает меньшее количество активных экземпляров (количество узлов в кластере) и не включает некоторые функции высокой доступности, такие как горячее добавление памяти (позволяющее добавлять память, пока сервер все еще работает) и параллельные индексы.
Интернет
SQL Server Web Edition - это вариант с низкой совокупной стоимостью владения для веб-хостинга.
Бизнес-аналитика
Представлен в SQL Server 2012 и ориентирован на самообслуживание и корпоративную бизнес-аналитику. Он включает в себя возможности Standard Edition и инструменты бизнес-аналитики: PowerPivot, Power View, семантическую модель бизнес-аналитики, Master Data Services, Data Quality Services и аналитику в памяти xVelocity. [11]
Рабочая группа
SQL Server Workgroup Edition включает основные функции базы данных, но не включает дополнительные службы. Обратите внимание, что этот выпуск был удален в SQL Server 2012. [12]
выражать
SQL Server Express Edition - это уменьшенная бесплатная версия SQL Server, которая включает ядро ​​базы данных. Хотя нет никаких ограничений на количество поддерживаемых баз данных или пользователей, оно ограничено использованием одного процессора, 1 ГБ памяти и 10 ГБ файлов базы данных (файлы базы данных 4 ГБ до SQL Server Express 2008 R2). [13] Он предназначен для замены MSDE . Два дополнительных выпуска предоставляют расширенный набор функций, которых нет в исходном экспресс-выпуске. Первый - это SQL Server Express с инструментами , в который входит SQL Server Management Studio Basic. SQL Server Express с расширенными службами добавляет возможности полнотекстового поиска и службы отчетов. [14]

Специализированные издания [ править ]

Установочный диск SQL Server 2005 Developer Edition
Лазурь
База данных Microsoft Azure SQL - это облачная версия Microsoft SQL Server, представленная как платформа как сервисное предложение в Microsoft Azure .
Лазурь
Хранилище данных SQL Azure - это облачная версия Microsoft SQL Server с архитектурой MPP (массовая параллельная обработка) для аналитических рабочих нагрузок, представленная как платформа как предложение услуги в Microsoft Azure .
Компактный (SQL CE)
Компактное издание представляет собой встроенный движок базы данных. В отличие от других выпусков SQL Server, механизм SQL CE основан на SQL Mobile (изначально разработан для использования с портативными устройствами) и не использует одни и те же двоичные файлы. Из-за своего небольшого размера (размер DLL 1 МБ) он имеет значительно меньший набор функций по сравнению с другими выпусками. Например, он поддерживает подмножество стандартных типов данных, не поддерживает хранимые процедуры, представления или пакеты с несколькими операторами (среди других ограничений). Он ограничен максимальным размером базы данных 4 ГБ и не может быть запущен как служба Windows, Compact Edition должен размещаться в приложении, использующем его. Версия 3.5 включает поддержку служб синхронизации ADO.NET. SQL CE не поддерживает подключение ODBC, в отличие от собственно SQL Server.
Разработчик
SQL Server Developer Edition включает в себя те же функции, что и SQL Server Enterprise Edition, но ограничен лицензией на использование только в качестве системы разработки и тестирования, а не в качестве рабочего сервера. С начала 2016 года Microsoft сделала эту версию бесплатной. [15]
Встроенный (SSEE)
SQL Server 2005 Embedded Edition - это специально сконфигурированный именованный экземпляр ядра СУБД SQL Server Express, доступ к которому могут получить только определенные службы Windows.
Оценка
SQL Server Evaluation Edition, также известный как Trial Edition , имеет все функции Enterprise Edition, но ограничен 180 днями, после которых инструменты продолжат работу, но службы сервера остановятся. [16]
Быстрый трек
SQL Server Fast Track специально предназначен для хранения данных в корпоративных хранилищах и обработки бизнес-аналитики и работает на оборудовании с эталонной архитектурой, оптимизированном для Fast Track. [17]
LocalDB
Представленный в SQL Server Express 2012, LocalDB - это минимальная версия SQL Server по запросу, предназначенная для разработчиков приложений. [18] Его также можно использовать как встроенную базу данных. [19]
Система платформы аналитики (APS)
Ранее называвшееся Parallel Data Warehouse (PDW) Устройство SQL Server с массово-параллельной обработкой (MPP), оптимизированное для крупномасштабных хранилищ данных, таких как сотни терабайт. [20]
Выпуск Datawarehouse Appliance
Предварительно установлен и настроен как часть устройства в партнерстве с Dell и HP на основе архитектуры Fast Track. В этот выпуск не входят службы интеграции SQL Server, службы аналитики или службы отчетов. Sqlcmd

Прекращенные выпуски [ править ]

MSDE
Microsoft SQL Server Data Engine / Desktop Engine / Desktop Edition. SQL Server 7 и SQL Server 2000. Предназначенный для использования в качестве компонента приложения, он не содержал инструментов управления графическим интерфейсом пользователя. Позже Microsoft также сделала доступным инструмент веб-администрирования. Включен в некоторые версии Microsoft Access , средства разработки Microsoft и другие выпуски SQL Server. [21]
Персональное издание
SQL Server 2000. Имел ограничения на рабочую нагрузку или количество подключений, такие как MSDE, но без ограничения размера базы данных. Включает стандартные инструменты управления. Предназначен для использования в качестве мобильного / отключенного прокси-сервера, лицензирован для использования с SQL Server 2000 Standard edition. [21]
Дата центр
SQL Server 2008 R2 Datacenter - это полнофункциональная версия SQL Server, предназначенная для центров обработки данных, которым требуется высокий уровень поддержки и масштабируемости приложений. Он поддерживает 256 логических процессоров и практически неограниченный объем памяти и поставляется с выпуском StreamInsight Premium. [22] Выпуск Datacenter больше не используется в SQL Server 2012; все его функции доступны в SQL Server 2012 Enterprise Edition. [12]

Архитектура [ править ]

Уровень протокола реализует внешний интерфейс для SQL Server. Все операции, которые могут быть вызваны на SQL Server, передаются ему через определенный Microsoft формат, называемый потоком табличных данных (TDS). TDS - это протокол прикладного уровня, используемый для передачи данных между сервером базы данных и клиентом. Первоначально спроектированные и разработанные Sybase Inc. для ядра реляционной базы данных Sybase SQL Server в 1984 году, а затем Microsoft в Microsoft SQL Server, пакеты TDS могут быть заключены в другие протоколы, зависящие от физического транспорта, включая TCP / IP , именованные каналы и общие память . Следовательно, доступ к SQL Server доступен по этим протоколам. Кроме того, API SQL Server также доступен черезвеб-сервисы . [9]

Хранение данных [ править ]

Хранилище данных - это база данных , которая представляет собой набор таблиц с типизированными столбцами. SQL Server поддерживает различные типы данных, включая примитивные типы, такие как Integer , Float , Decimal , Char (включая символьные строки), Varchar (символьные строки переменной длины), binary (для неструктурированных BLOB- объектов данных), Text (для текстовых данных) и другие. . Округление поплавков для целых чисел используется либо Симметричный арифметическое округление или Симметричный округлить ( починки ) в зависимости от аргументов: SELECT Round(2.5, 0)дает 3.

Microsoft SQL Server также позволяет определять и использовать определяемые пользователем составные типы (UDT). Он также делает статистику сервера доступной в виде виртуальных таблиц и представлений (называемых динамическими представлениями управления или DMV). Помимо таблиц, база данных может также содержать другие объекты, включая представления , хранимые процедуры , индексы и ограничения , а также журнал транзакций. База данных SQL Server может содержать не более 2 31 объекта и может охватывать несколько файлов уровня ОС с максимальным размером файла 2 60 байт (1 эксабайт). [9] Данные в базе данных хранятся в первичных файлах данных с расширением .mdf. Файлы вторичных данных, помеченные значком.ndfрасширения, используются, чтобы данные одной базы данных могли быть распределены по нескольким файлам и, возможно, по нескольким файловым системам. Файлы журнала обозначаются .ldfрасширением. [9]

Пространство хранения, выделенное для базы данных, разделено на последовательно пронумерованные страницы размером 8 КБ каждая. Страница является основной единицей ввода / выводадля операций с SQL Server. Страница помечается 96-байтовым заголовком, в котором хранятся метаданные о странице, включая номер страницы, тип страницы, свободное место на странице и идентификатор объекта, которому она принадлежит. Тип страницы определяет данные, содержащиеся на странице. Эти данные включают в себя: данные, хранящиеся в базе данных, индекс, карту распределения, которая содержит информацию о том, как страницы распределяются по таблицам и индексам; и карту изменений, которая содержит информацию об изменениях, внесенных на другие страницы с момента последнего резервного копирования или регистрации, или содержит большие типы данных, такие как изображение или текст. Хотя страница является основной единицей операции ввода-вывода, на самом деле управление пространством осуществляется в терминах экстента.который состоит из 8 страниц. Объект базы данных может охватывать все 8 страниц в экстенте («единый экстент») или совместно использовать экстент еще с 7 объектами («смешанный экстент»). Строка в таблице базы данных не может занимать более одной страницы, поэтому ее размер ограничен 8 КБ. Однако, если размер данных превышает 8 КБ, а строка содержит данные varchar или varbinary , данные в этих столбцах перемещаются на новую страницу (или, возможно, последовательность страниц, называемую единицей распределения ) и заменяются указателем на данные. [23]

Для физического хранения таблицы ее строки разделены на несколько разделов (пронумерованных от 1 до n). Размер раздела определяется пользователем; по умолчанию все строки находятся в одном разделе. Таблица разбита на несколько разделов, чтобы распределить базу данных по кластеру компьютеров . Строки в каждом разделе хранятся либо в B-дереве, либо в структуре кучи . Если таблица имеет связанный кластеризованный индексчтобы обеспечить быстрое извлечение строк, строки хранятся в порядке, соответствующем их значениям индексов, при этом B-дерево предоставляет индекс. Данные находятся в листовом узле листьев и в других узлах, хранящих значения индекса для данных листа, доступных из соответствующих узлов. Если индекс не кластеризован, строки не сортируются в соответствии с ключами индекса. Индексированное представление имеет ту же структуру хранения, что и индексированная таблица. Таблица без кластерного индекса хранится в неупорядоченной структуре кучи. Однако таблица может иметь некластеризованные индексы, чтобы обеспечить быстрое извлечение строк. В некоторых ситуациях структура кучи имеет преимущества в производительности по сравнению с кластерной структурой. И кучи, и B-деревья могут охватывать несколько единиц распределения. [24]

Управление буфером [ править ]

SQL Server буферизует страницы в ОЗУ, чтобы минимизировать дисковый ввод-вывод. Любая страница размером 8 КБ может буферизоваться в памяти, а набор всех страниц, буферизованных в данный момент, называется буферным кешем. Объем памяти, доступной SQL Server, определяет, сколько страниц будет кэшировано в памяти. Буферным кешем управляет диспетчер буферов . При чтении или записи на любую страницу она копируется в буферный кеш. Последующие операции чтения или записи перенаправляются на копию в памяти, а не на версию на диске. Страница обновляется на диске диспетчером буферов только в том случае, если кэш-память в памяти не использовалась в течение некоторого времени. При записи страниц обратно на диск асинхронный ввод / выводиспользуется, когда операция ввода-вывода выполняется в фоновом потоке, поэтому другим операциям не нужно ждать завершения операции ввода-вывода. Каждая страница записывается вместе со своей контрольной суммой при записи. При обратном чтении страницы ее контрольная сумма вычисляется снова и сравнивается с сохраненной версией, чтобы гарантировать, что страница не была повреждена или подделана за это время. [25]

Параллелизм и блокировка [ править ]

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

Блокировки могут применяться на разных уровнях детализации - для целых таблиц, страниц или даже для каждой строки в таблицах. Для индексов он может находиться либо на всем индексе, либо на конечных точках индекса. Уровень детализации, который будет использоваться, определяется администратором базы данных для каждой базы данных. Хотя детализированная система блокировки позволяет большему количеству пользователей использовать таблицу или индекс одновременно, она требует больше ресурсов, поэтому автоматически не дает более высокой производительности. SQL Server также включает два более легких решения для взаимного исключения - защелки и спин-блокировки, которые менее надежны, чем блокировки, но менее ресурсоемки. SQL Server использует их для DMV и других ресурсов, которые обычно не заняты. SQL Server также отслеживает все рабочие потоки, которые получают блокировки, чтобы гарантировать, что они не попадут втупиковые ситуации - в этом случае SQL Server принимает меры по исправлению положения, которые во многих случаях заключаются в уничтожении одного из потоков, зашедших в тупик, и откате транзакции, которую он запустил. [9] Для реализации блокировки SQL Server содержит диспетчер блокировок . Диспетчер блокировок поддерживает таблицу в памяти, которая управляет объектами базы данных и блокирует их, если таковые имеются, вместе с другими метаданными о блокировке. Доступ к любому совместно используемому объекту обеспечивается диспетчером блокировок, который либо предоставляет доступ к ресурсу, либо блокирует его.

SQL Server также предоставляет механизм управления оптимистическим параллелизмом, аналогичный мультиверсионному управлению параллелизмом, используемому в других базах данных. Механизм позволяет создавать новую версию строки всякий раз, когда строка обновляется, в отличие от перезаписи строки, т. Е. Строка дополнительно идентифицируется идентификатором транзакции, создавшей версию строки. И старая, и новая версии строки сохраняются и обслуживаются, хотя старые версии перемещаются из базы данных в системную базу данных, обозначенную какTempdb. Когда строка находится в процессе обновления, любые другие запросы не блокируются (в отличие от блокировки), а выполняются в более старой версии строки. Если другой запрос является оператором обновления, это приведет к созданию двух разных версий строк - обе они будут храниться в базе данных, идентифицированные соответствующими идентификаторами транзакции. [9]

Получение данных и возможность программирования [ править ]

Основной способ получения данных из базы данных SQL Server - это запрос . Запрос выражается с использованием варианта SQL, называемого T-SQL , диалекта, который Microsoft SQL Server разделяет с Sybase SQL Server из-за его наследия. Запрос декларативно указывает, что нужно получить. Он обрабатывается процессором запросов, который определяет последовательность шагов, которые потребуются для получения запрошенных данных. Последовательность действий, необходимых для выполнения запроса, называется планом запроса . Может быть несколько способов обработать один и тот же запрос. Например, для запроса, содержащего оператор соединения и выборОператор, выполнение соединения для обеих таблиц и последующее выполнение выбора для результатов даст тот же результат, что и выбор из каждой таблицы с последующим выполнением соединения, но приведет к разным планам выполнения. В таком случае SQL Server выбирает план, который, как ожидается, даст результаты в кратчайшие сроки. Это называется оптимизацией запросов и выполняется самим обработчиком запросов. [9]

SQL Server включает оптимизатор запросов на основе затрат, который пытается оптимизировать затраты с точки зрения ресурсов, которые потребуются для выполнения запроса. Получив запрос, оптимизатор запросов просматривает схему базы данных , статистику базы данных и загрузку системы в это время. Затем он решает, в какой последовательности обращаться к таблицам, указанным в запросе, в какой последовательности выполнять операции и какой метод доступа использовать для доступа к таблицам. Например, если таблица имеет связанный индекс, следует ли использовать индекс или нет: если индекс находится в столбце, который не является уникальным для большинства столбцов (низкая "селективность"), может быть нецелесообразно использовать индекс для доступа к данным. Наконец, он решает, выполнять ли запрос одновременно.или нет. Хотя одновременное выполнение более затратно с точки зрения общего времени процессора, поскольку выполнение фактически разделено на разные процессоры, это может означать, что оно будет выполняться быстрее. После создания плана запроса он временно кэшируется. Для дальнейших вызовов того же запроса используется кэшированный план. Неиспользованные планы сбрасываются через некоторое время. [9] [26]

SQL Server также позволяет определять хранимые процедуры . Хранимые процедуры - это параметризованные запросы T-SQL, которые хранятся на самом сервере (и не выдаются клиентским приложением, как в случае с общими запросами). Хранимые процедуры могут принимать значения, отправленные клиентом, в качестве входных параметров и отправлять обратно результаты в качестве выходных параметров. Они могут вызывать определенные функции и другие хранимые процедуры, включая одну и ту же хранимую процедуру (до определенного количества раз). Им может быть выборочно предоставлен доступ к. В отличие от других запросов, хранимые процедуры имеют связанное имя, которое используется во время выполнения для преобразования в фактические запросы. Кроме того, поскольку код не нужно отправлять от клиента каждый раз (поскольку к нему можно получить доступ по имени), это снижает сетевой трафик и несколько повышает производительность. [27] Планы выполнения для хранимых процедур также при необходимости кэшируются.

T-SQL [ править ]

T-SQL (Transact-SQL) - это проприетарное расширение процедурного языка Microsoft для SQL Server. Он предоставляет инструкции REPL (Read-Eval-Print-Loop), которые расширяют стандартный набор инструкций SQL для инструкций по манипулированию данными ( DML ) и определению данных ( DDL ), включая специфичные для SQL Server настройки, безопасность и управление статистикой базы данных.

Он предоставляет ключевые слова для операций, которые могут выполняться на SQL Server, включая создание и изменение схем базы данных, ввод и редактирование данных в базе данных, а также мониторинг и управление самим сервером. Клиентские приложения, которые потребляют данные или управляют сервером, будут использовать функциональные возможности SQL Server, отправляя запросы и операторы T-SQL, которые затем обрабатываются сервером, а результаты (или ошибки) возвращаются клиентскому приложению. Для этого он предоставляет таблицы, доступные только для чтения, из которых можно читать статистику сервера. Функциональность управления предоставляется через определенные системой хранимые процедуры, которые можно вызывать из запросов T-SQL для выполнения операции управления. Также возможно создавать связанные серверы с помощью T-SQL. Связанные серверы позволяют обрабатывать операции, выполняемые на нескольких серверах, с помощью одного запроса.[28]

Собственный клиент SQL Server (также известный как SNAC) [ править ]

SQL Server Native Client - это собственная клиентская библиотека доступа к данным для Microsoft SQL Server версии 2005 и более поздних версий. Он изначально реализует поддержку функций SQL Server, включая реализацию потока табличных данных , поддержку зеркальных баз данных SQL Server, полную поддержку всех типов данных, поддерживаемых SQL Server, асинхронные операции, уведомления о запросах, поддержку шифрования , а также получение нескольких наборов результатов. за один сеанс базы данных. Собственный клиент SQL Server используется подключаемыми модулями SQL Server для других технологий доступа к данным, включая ADO или OLE DB . Собственный клиент SQL Server также можно использовать напрямую, минуя общие уровни доступа к данным. [29]

28 ноября 2011 г. был выпущен предварительный выпуск драйвера ODBC для SQL Server для Linux . [30]

SQL CLR [ править ]

Microsoft SQL Server 2005 включает компонент под названием SQL CLR («Common Language Runtime»), через который он интегрируется с .NET Framework . В отличие от большинства других приложений, использующих .NET Framework, на самом SQL Server размещается среда выполнения .NET Framework , т. Е. Требования .NET Framework к памяти, потокам и управлению ресурсами удовлетворяются самой SQLOS, а не базовой операционной системой Windows. SQLOS также предоставляет службы обнаружения и разрешения тупиковых ситуаций для кода .NET. С помощью SQL CLR хранимые процедуры и триггеры могут быть написаны на любом управляемом языке .NET , включая C # и VB.NET . Управляемый кодтакже может использоваться для определения UDT ( определяемых пользователем типов ), которые могут сохраняться в базе данных. Управляемый код компилируется в сборки CLI и после проверки на безопасность типов регистрируется в базе данных. После этого их можно вызывать, как и любую другую процедуру. [31] Однако при выполнении кода в среде SQL CLR доступна только часть библиотеки базовых классов . Большинство API-интерфейсов, относящихся к функциональности пользовательского интерфейса , недоступны. [31]

При написании кода для SQL CLR к данным, хранящимся в базах данных SQL Server, можно получить доступ с помощью API-интерфейсов ADO.NET, как и к любому другому управляемому приложению, которое обращается к данным SQL Server. Однако при этом создается новый сеанс базы данных, отличный от того, в котором выполняется код. Чтобы избежать этого, SQL Server предоставляет некоторые улучшения поставщика ADO.NET , которые позволяют перенаправлять соединение в тот же сеанс, в котором уже размещен выполняющийся код. Такие соединения называются контекстными соединениями и устанавливаются путем установки параметра в строку соединения. SQL Server также предоставляет несколько других улучшений ADO.NET.context connectiontrueAPI, включая классы для работы с табличными данными или отдельной строкой данных, а также классы для работы с внутренними метаданными о данных, хранящихся в базе данных. Он также обеспечивает доступ к функциям XML в SQL Server, включая поддержку XQuery . Эти улучшения также доступны в процедурах T-SQL в результате введения нового типа данных XML (запрос, значение, функции узлов). [32]

Услуги [ править ]

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

Службы машинного обучения [ править ]

Службы машинного обучения SQL Server работают в экземпляре SQL-сервера, позволяя людям выполнять машинное обучение и анализ данных без необходимости отправлять данные по сети или ограничиваться памятью своих компьютеров. Сервисы поставляются с дистрибутивами Microsoft R и Python, которые содержат часто используемые пакеты для науки о данных, а также некоторые проприетарные пакеты (например, revoscalepy , RevoScaleR , microsoftml), которые можно использовать для создания моделей машин в большом масштабе.

Аналитики могут либо настроить свой клиентский компьютер для подключения к удаленному серверу SQL и направить на него выполнение сценариев, либо они могут запускать сценарии R или Python как внешний сценарий внутри запроса T-SQL. Обученная модель машинного обучения может храниться в базе данных и использоваться для оценки. [33]

Сервисный брокер [ править ]

Используется внутри экземпляра, среды программирования. Для межэкземплярных приложений Service Broker обменивается данными по TCP / IP и позволяет синхронизировать различные компоненты посредством обмена сообщениями. Компонент Service Broker, работающий как часть ядра базы данных, обеспечивает надежную платформу обмена сообщениями и очередей сообщений для приложений SQL Server. [34]

Услуги сервисного брокера состоят из следующих частей: [35]

  • типы сообщений
  • контракты
  • очереди
  • сервисные программы
  • маршруты

Тип сообщения определяет формат данных, используемый для сообщения. Это может быть объект XML, простой текст или двоичные данные, а также пустое тело сообщения для уведомлений. Контракт определяет, какие сообщения используются в диалоге между службами и кто может помещать сообщения в очередь. Очередь действует как поставщик хранилища для сообщений. Они реализованы внутри SQL Server в виде таблиц, но не поддерживают функции вставки, обновления или удаления. Сервисная программа получает и обрабатывает сообщения сервис-брокера. Обычно служебная программа реализуется как хранимая процедура или приложение CLR . Маршруты - это сетевые адреса, по которым брокер услуг находится в сети. [35]

Кроме того, брокер служб поддерживает такие функции безопасности, как сетевая проверка подлинности (с использованием NTLM , Kerberos или сертификатов авторизации ), проверка целостности и шифрование сообщений . [35]

Услуги репликации [ править ]

Службы репликации SQL Server используются SQL Server для репликации и синхронизации объектов базы данных, либо целиком, либо подмножеством имеющихся объектов, между агентами репликации, которыми могут быть другие серверы баз данных в сети или кеши баз данных на стороне клиента. Службы репликации следуют модели издатель / подписчик, т. Е. Изменения отправляются одним сервером базы данных («издатель») и принимаются другими («подписчиками»). SQL Server поддерживает три различных типа репликации: [36]

Репликация транзакции
Каждая транзакция, сделанная в базе данных издателя (основная база данных), синхронизируется с подписчиками, которые обновляют свои базы данных с помощью транзакции. Репликация транзакций синхронизирует базы данных почти в реальном времени. [37]
Репликация слиянием
Изменения, сделанные как в базах данных издателя, так и подписчика, отслеживаются, и периодически изменения синхронизируются в двух направлениях между издателем и подписчиками. Если одни и те же данные были изменены по-разному как в базах данных издателя, так и в базах данных подписчика, синхронизация приведет к конфликту, который необходимо разрешить вручную или с помощью заранее определенных политик. rowguid необходимо настроить для столбца, если настроена репликация слиянием. [38]
Репликация снимка
Репликация моментальных снимков публикует копию всей базы данных (тогдашний моментальный снимок данных) и реплицирует ее подписчикам. Дальнейшие изменения снимка не отслеживаются. [39]

Службы аналитики [ править ]

SQL Server Analysis Services добавляет возможности OLAP и интеллектуального анализа данных для баз данных SQL Server. Механизм OLAP поддерживает режимы хранения данных MOLAP , ROLAP и HOLAP . Службы Analysis Services поддерживают стандарт XML для анализа в качестве основного протокола связи. Доступ к данным куба можно получить с помощью запросов многомерных выражений и LINQ [40] . [41] Специальные функции интеллектуального анализа данных доступны через язык запросов DMX . Службы Analysis Services включают в себя различные алгоритмы: деревья решений , алгоритм кластеризации, наивный байесовский алгоритм.алгоритм, анализ временных рядов, алгоритм кластеризации последовательностей, анализ линейной и логистической регрессии и нейронные сети - для использования в интеллектуальном анализе данных. [42]

Службы Reporting Services [ править ]

Службы отчетов SQL Server - это среда создания отчетов для данных, собранных из баз данных SQL Server. Он управляется через веб-интерфейс . Службы отчетов имеют интерфейс веб-служб для поддержки разработки пользовательских приложений отчетности. Отчеты создаются в виде файлов RDL . [43]

Отчеты можно создавать с использованием последних версий Microsoft Visual Studio (Visual Studio.NET 2003, 2005 и 2008) [44] с установленной Business Intelligence Development Studio или с включенным построителем отчетов . После создания файлы RDL могут отображаться в различных форматах [45] [46], включая Excel, PDF , CSV , XML , BMP , EMF , GIF , JPEG , PNG и TIFF , [47] и HTML Web Archive.

Службы уведомлений [ править ]

Первоначально представленные как надстройка после выпуска для SQL Server 2000 [48], службы Notification Services были объединены как часть платформы Microsoft SQL Server впервые и только в SQL Server 2005. [49] [50] Уведомление SQL Server. Службы - это механизм для создания уведомлений на основе данных, которые отправляются подписчикам служб Notification Services. Подписчик регистрируется для определенного события или транзакции (которая регистрируется на сервере базы данных как триггер); при возникновении события службы Notification Services могут использовать один из трех методов для отправки подписчику сообщения, информирующего о возникновении события. Эти методы включают SMTP, SOAP или запись в файл в файловой системе. [51] Службы Notification Services были прекращены Microsoft с выпуском SQL Server 2008 в августе 2008 года и больше не являются официально поддерживаемым компонентом платформы базы данных SQL Server.

Службы интеграции [ править ]

SQL Server Integration Services (SSIS) обеспечивает ETL возможности для SQL Server для импорта данных , интеграции данных и данных складских потребностей. Службы Integration Services включают инструменты с графическим интерфейсом пользователя для создания рабочих процессов, таких как извлечение данных из различных источников, запрос данных, преобразование данных, включая агрегирование, дедупликацию, де- / нормализацию и объединение данных, а затем экспорт преобразованных данных в целевые базы данных или файлы. [52]

Служба полнотекстового поиска [ править ]

Архитектура службы полнотекстового поиска SQL Server

Служба полнотекстового поиска SQL Server - это специализированная служба индексации и запросов для неструктурированного текста, хранящегося в базах данных SQL Server. Индекс полнотекстового поиска может быть создан для любого столбца с текстовыми данными на основе символов. Это позволяет искать слова в текстовых столбцах. Хотя это можно выполнить с помощью LIKEоператора SQL , использование службы полнотекстового поиска SQL Server может быть более эффективным. Полный допускает неточное совпадение исходной строки, обозначенной рангомзначение, которое может находиться в диапазоне от 0 до 1000 - более высокий ранг означает более точное соответствие. Это также позволяет лингвистическое сопоставление («флективный поиск»), то есть лингвистические варианты слова (например, глагол в другом времени) также будут соответствовать данному слову (но с более низким рангом, чем точное совпадение). Также поддерживается поиск по близости, т. Е. Если искомые слова не встречаются в той последовательности, в которой они указаны в запросе, но находятся рядом друг с другом, они также считаются совпадающими. T-SQL предоставляет специальные операторы, которые можно использовать для доступа к возможностям FTS. [53] [54]

Механизм полнотекстового поиска разделен на два процесса: процесс Filter Daemon ( msftefd.exe) и процесс поиска ( msftesql.exe). Эти процессы взаимодействуют с SQL Server. Процесс поиска включает индексатор (который создает полнотекстовые индексы) и обработчик полнотекстовых запросов. Индексатор просматривает текстовые столбцы в базе данных. Он также может индексировать двоичные столбцы и использовать iFilters для извлечения значимого текста из двоичного большого двоичного объекта (например, когда Microsoft Wordдокумент хранится как неструктурированный двоичный файл в базе данных). IFilters размещаются в процессе Filter Daemon. После извлечения текста процесс Filter Daemon разбивает его на последовательность слов и передает индексатору. Индексатор отфильтровывает шумовые слова , то есть такие слова, как A , And и т. Д., Которые встречаются часто и бесполезны для поиска. С оставшимися словами создается инвертированный индекс , связывающий каждое слово со столбцами, в которых они были найдены. Сам SQL Server включает компонент Gatherer, который отслеживает изменения в таблицах и вызывает индексатор в случае обновлений. [55]

Когда полнотекстовый запрос получен обработчиком запросов SQL Server, он передается обработчику запросов FTS в процессе поиска. Обработчик запросов FTS разбивает запрос на составные слова, отфильтровывает шумовые слова и использует встроенный тезаурус для поиска языковых вариантов для каждого слова. Затем слова запрашиваются по инвертированному индексу и вычисляется ранг их точности. Результаты возвращаются клиенту через процесс SQL Server. [55]

SQLCMD [ править ]

SQLCMD - это приложение командной строки, которое поставляется с Microsoft SQL Server и предоставляет функции управления SQL Server. Он позволяет писать и выполнять SQL-запросы из командной строки. Он также может действовать как язык сценариев для создания и выполнения набора операторов SQL в виде сценария. Такие сценарии хранятся в виде .sqlфайла и используются либо для управления базами данных, либо для создания схемы базы данных во время развертывания базы данных.

SQLCMD был представлен в SQL Server 2005 и продолжался в версиях SQL Server 2008, 2008 R2, 2012, 2014, 2016 и 2019. Его предшественником для более ранних версий были OSQL и ISQL, которые были функционально эквивалентны в части выполнения TSQL, и многие другие параметры командной строки идентичны, хотя SQLCMD добавляет дополнительную гибкость.

Visual Studio [ править ]

Microsoft Visual Studio включает встроенную поддержку программирования данных с помощью Microsoft SQL Server. Его можно использовать для написания и отладки кода, выполняемого SQL CLR. Он также включает дизайнер данных, который можно использовать для графического создания, просмотра или редактирования схем базы данных. Запросы можно создавать как визуально, так и с помощью кода. SSMS 2008 и более поздние версии также предоставляют intellisense для запросов SQL.

SQL Server Management Studio [ править ]

SQL Server Management Studio - это инструмент с графическим интерфейсом , включенный в SQL Server 2005 и более поздних версий, для настройки, управления и администрирования всех компонентов в Microsoft SQL Server. Инструмент включает в себя как редакторы скриптов, так и графические инструменты, которые работают с объектами и функциями сервера. [56] SQL Server Management Studio заменяет Enterprise Manager в качестве основного интерфейса управления для Microsoft SQL Server с SQL Server 2005. Версия SQL Server Management Studio также доступна для SQL Server Express Edition, для которого она известна как SQL Server Management Studio. Экспресс (SSMSE). [57]

Центральной функцией SQL Server Management Studio является обозреватель объектов, который позволяет пользователю просматривать, выбирать и действовать на любом из объектов на сервере. [58] Его можно использовать, среди прочего, для визуального наблюдения и анализа планов запросов и оптимизации производительности базы данных. [59] SQL Server Management Studio также можно использовать для создания новой базы данных, изменения любой существующей схемы базы данных путем добавления или изменения таблиц и индексов или анализа производительности. Он включает окна запросов, которые предоставляют интерфейс на основе графического пользовательского интерфейса для написания и выполнения запросов. [9]

Студия данных Azure [ править ]

Azure Data Studio - это кроссплатформенный редактор запросов, доступный для загрузки по желанию. Инструмент позволяет пользователям писать запросы; экспорт результатов запроса; фиксировать сценарии SQL в репозиториях Git и выполнять базовую диагностику сервера. Azure Data Studio поддерживает системы Windows, Mac и Linux. [60]

Он стал общедоступным в сентябре 2018 года. Перед выпуском предварительная версия приложения была известна как SQL Server Operations Studio.

Студия разработки бизнес-аналитики [ править ]

Business Intelligence Development Studio (BIDS) - это IDE от Microsoft, используемая для разработки решений для анализа данных и бизнес-аналитики с использованием Microsoft SQL Server Analysis Services , Reporting Services и Integration Services . Он основан на среде разработки Microsoft Visual Studio, но настроен с использованием специфичных для служб SQL Server расширений и типов проектов, включая инструменты, элементы управления и проекты для отчетов (с использованием служб Reporting Services), кубов и структур интеллектуального анализа данных (с использованием служб Analysis Services). [61] Для SQL Server 2012 и более поздних версий эта IDE была переименована в SQL Server Data Tools (SSDT).

См. Также [ править ]

  • Сравнение систем управления реляционными базами данных
  • Сравнение систем управления объектно-реляционными базами данных
  • Сравнение инструментов моделирования данных
  • Список систем управления реляционными базами данных
  • Соответствие SQL

Ссылки [ править ]

  1. ^ «Выпуски и поддерживаемые функции SQL Server 2019 (15.x)» . 4 ноября 2019 . Проверено 23 декабря 2020 года .
  2. ^ Lextrait, Винсент (июль 2010). "Маяк языков программирования, v10.3" . Архивировано из оригинального 30 мая 2012 года . Проверено 5 сентября 2010 года .
  3. ^ "Загрузить Microsoft SQL Server 2008 R2" . Центр оценки Microsoft . Корпорация Microsoft . Проверено 18 июля 2011 года .
  4. ^ «Руководство по установке SQL Server в Linux» . 21 декабря 2017 года . Проверено 1 февраля 2018 года .
  5. ^ «Объявление о новых возможностях SQL Server 2008» . 12 июля 2018 . Проверено 20 сентября 2018 года .
  6. ^ «Требования для установки SQL Server 2016» . msdn.microsoft.com. 2016-05-02 . Проверено 28 июля 2016 .
  7. ^ https://support.microsoft.com/en-us/help/4518398/sql-server-2019-build-versions
  8. ^ "Сравнить выпуски" . Домашняя страница SQL Server . Корпорация Microsoft . Проверено 3 декабря 2007 .
  9. ^ Б с д е е г ч я Kalen Delaney (2007). Внутри Microsoft SQL Server 2005: механизм хранения . Microsoft Press . ISBN 0-7356-2105-5.
  10. ^ «SQL Server 2008: редакции» . Проверено 21 июля 2011 .
  11. ^ «Система баз данных | Производительность и масштабируемость | Выпуски SQL Server 2012 Business Intelligence» . Microsoft.com . Проверено 15 июня 2013 .
  12. ^ а б [1]
  13. ^ «Максимальный размер базы данных SQL Server 2008 R2 Express увеличен до 10 ГБ» . Проверено 23 апреля 2010 .
  14. ^ «Что случилось с выпусками SQL Server 2008 Express» . Проверено 15 августа 2008 .
  15. ^ "Developer Edition" . Домой SQL Server . Корпорация Microsoft . Проверено 18 июля 2011 года .
  16. ^ «Пробное программное обеспечение SQL Server 2008» . Проверено 26 марта 2009 .
  17. ^ «Microsoft SQL Server 2008: Fast Track Data Warehouse» . Проверено 26 марта 2009 .
  18. ^ «SQL Server 2012 Express LocalDB» . msdn.microsoft.com . Проверено 11 марта 2013 года .
  19. ^ «Представляем LocalDB, улучшенный SQL Express» .
  20. ^ «Система платформы Microsoft Analytics» . Проверено 29 апреля 2015 .
  21. ^ а б http://sqlmag.com/database-development/msde-demystified
  22. ^ «Выбор StreamInsight Edition» . MSDN . Корпорация Microsoft . Проверено 18 июля 2011 года .
  23. ^ «Страницы и экстенты» . Проверено 2 декабря 2007 .
  24. ^ «Организация таблиц и указателей» . Проверено 2 декабря 2007 .
  25. ^ «Управление буфером» . Проверено 2 декабря 2007 .
  26. ^ «Обработка одного оператора SQL» . Проверено 3 декабря 2007 .
  27. ^ «Основы хранимых процедур» . Проверено 3 декабря 2007 .
  28. ^ «Справочник по Transact-SQL» . Проверено 3 декабря 2007 .
  29. ^ «Особенности собственного клиента SQL Server» . Проверено 3 декабря 2007 .
  30. ^ «Доступно сегодня: предварительная версия драйвера ODBC SQL Server для Linux» . Блог группы разработчиков SQL Server. 2011-11-28 . Проверено 15 июня 2013 .
  31. ^ a b «Обзор интеграции со средой CLR» . Проверено 3 декабря 2007 .
  32. ^ «Поддержка XML в SQL Server» . Проверено 5 сентября 2008 .
  33. ^ «Что такое службы машинного обучения SQL Server» . Домашняя страница SQL Server . Корпорация Microsoft . Проверено 10 апреля 2018 .
  34. ^ «Представляющий сервисный брокер» . Проверено 3 декабря 2007 .
  35. ^ a b c Клаус Ашенбреннер (2011). «Представляющий сервисный брокер». Pro SQL Server 2008 Service Broker . Вена: Апресс . С. 17–31. ISBN 978-1-4302-0865-5. Проверено 15 декабря 2019 .
  36. ^ «Обзор типов репликации» . Проверено 3 декабря 2007 .
  37. ^ «Обзор репликации транзакций» . Проверено 3 декабря 2007 .
  38. ^ «Обзор репликации слиянием» . Проверено 3 декабря 2007 .
  39. ^ «Обзор репликации снимков» . Проверено 3 декабря 2007 .
  40. ^ «SSAS Entity Framework Provider» . Проверено 29 сентября 2011 .
  41. ^ «Архитектура служб Analysis Services» . Проверено 3 декабря 2007 .
  42. ^ «Концепции интеллектуального анализа данных» . Проверено 3 декабря 2007 .
  43. ^ «Службы отчетов SQL Server» . Проверено 3 декабря 2007 .
  44. ^ «Не удается открыть файл .rptproj служб отчетов SQL | Microsoft Connect» . Connect.microsoft.com. Архивировано из оригинала 3 февраля 2012 года . Проверено 4 сентября 2011 .
  45. ^ Библиотека MSDN: метод визуализации служб Reporting Services
  46. ^ Настройки информации об устройстве
  47. ^ Настройки информации об устройстве изображения
  48. ^ «Введение в службы уведомлений SQL Server» . Проверено 14 ноября 2008 .
  49. ^ «Службы уведомлений SQL Server удалены из SQL Server 2008» . Архивировано из оригинала на 2008-10-16 . Проверено 17 сентября 2008 .
  50. ^ «Прекращенная функциональность в службах отчетов SQL Server 2008» . Проверено 17 сентября 2008 .
  51. ^ «Введение в службы уведомлений SQL Server» . Проверено 3 декабря 2007 .
  52. ^ «Обзор служб интеграции» . Проверено 3 декабря 2007 .
  53. ^ «Введение в полнотекстовый поиск» . Проверено 3 декабря 2007 .
  54. ^ «Запросы к SQL Server с использованием полнотекстового поиска» . Проверено 3 декабря 2007 .
  55. ^ a b «Архитектура полнотекстового поиска» . Проверено 3 декабря 2007 .
  56. ^ «MSDN: Введение в SQL Server Management Studio» . Msdn.microsoft.com . Проверено 4 сентября 2011 .
  57. ^ "SQL Server Management Studio Express" . Microsoft.com. 2006-04-18 . Проверено 4 сентября 2011 .
  58. ^ «MSDN: Использование обозревателя объектов» . Msdn.microsoft.com . Проверено 4 сентября 2011 .
  59. ^ «Инструменты управления SQL Server 2005» . Sqlmag.com. 2005-07-19 . Проверено 4 сентября 2011 .
  60. ^ "Что такое Microsoft SQL Operations Studio (предварительная версия)?" . docs.microsoft.com . Проверено 19 января 2018 .
  61. ^ «Знакомство со студией разработки бизнес-аналитики» . Проверено 3 декабря 2007 .

Дальнейшее чтение [ править ]

  • Лэнс Делано, Раджеш Джордж и др. (2005). Стартовый комплект Wrox SQL Server 2005 Express Edition (от программиста к программисту) . Microsoft Press . ISBN 0-7645-8923-7 . 
  • Делани, Кален и др. (2007). Внутри SQL Server 2005: настройка и оптимизация запросов . Microsoft Press . ISBN 0-7356-2196-9 . 
  • Бен-Ган, Ицик и др. (2006). Внутри Microsoft SQL Server 2005: программирование T-SQL . Microsoft Press . ISBN 0-7356-2197-7 . 
  • Клаус Элк (2018). SQL Server с C # . ISBN 1-7203-5867-2 . 

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • 2-й официальный сайт в Microsoft TechNet