Microsoft SQL Server

редактировать
Семейство программного обеспечения для баз данных
Microsoft SQL Server
Разработчик (и) Microsoft
Первоначальный выпуск24 апреля 1989 г.; 31 год назад (1989-04-24), как SQL Server 1.0
Стабильный выпуск SQL Server 2019 / 2019-11-04
Написано наC, C ++
Операционная система Linux, Microsoft Windows Server, Microsoft Windows
Доступно наанглийском, китайском, французском, немецком, итальянском, японском, корейском, португальском (Бразилия), русский, Испанский и индонезийский
Тип Система управления реляционными базами данных
Лицензия Собственное программное обеспечение
Веб-сайтwww.microsoft.com / sql-server

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

Содержание

  • 1 История
    • 1.1 Основные этапы развития
    • 1.2 Текущие
  • 2 редакции
    • 2.1 Специализированные редакции
    • 2.2 Специализированные редакции
    • 2.3 Снятые с производства
  • 3 Архитектура
  • 4 Хранение данных
    • 4.1 Управление буфером
    • 4.2 Параллелизм и блокировка
  • 5 Получение данных и возможность программирования
    • 5.1 T-SQL
    • 5.2 Собственный клиент SQL Server (также известный как SNAC)
    • 5.3 SQL CLR
  • 6 Службы
    • 6.1 Машинное обучение Службы
    • 6.2 Service Broker
    • 6.3 Службы репликации
    • 6.4 Службы Analysis Services
    • 6.5 Службы Службы Reporting Services
    • 6.6 Службы Службы Notification Services
    • 6.7 Службы Службы Integration Services
    • 6.8 Служба полнотекстового пои ска
    • 6.9 SQLCMD
    • 6.10 Visual Studio
    • 6.11 SQL Server Management Studio
    • 6.12 SQL Server Operations Studio
    • 6.13 Business Intelligence Development Studio
  • 7 См. Также
  • 8 Ссылки
  • 9 Дополнительная литература
  • 10 Внешние ссылки

История

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

Основные этапы развития

  • MS SQL Server для OS / 2 начался как проект по переносу Sybase SQL Server на OS / 2 в 1989 году Sybase, Ashton-Tate и Microsoft.
  • 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 2017, выпущенный в 2017 году, периферийная поддержка Linux для этих платформ Linux: Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Ubuntu и Docker Engine.

В настоящее время

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

  • SQL Server 2012
  • SQL Server 2014
  • SQL Server 2016
  • SQL Server 2017
  • SQL Server 2019

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

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

Редакции

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

Основные выпуски

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

Specialized editions

SQL Server 2005 Developer Edition установочный диск
Azure
База данных SQL Microsoft Azure - это облачная версия Microsoft SQL Server, представленная как платформа как услуга, предлагаемая в Microsoft Azure.
Azure
Хранилище данных SQL Azure, является облачная версия Microsoft SQL Server в системе MPP ( массовая параллельная обработка) для аналитических рабочих нагрузок, представленная как платформа как услуга в Microsoft Azure.
Compact (SQL CE)
compact edition - это встроенный механизм базы данных. В отличие от других выпусков SQL Server, механизм SQL CE основан на SQL Mobile (предназначен для использования с портативными устройствами) и не использует одни и те же двоичные файлы. Из-за своего небольшого размера (размер DLL 1 МБ) он имеет расширенный набор функций по сравнению с другими выпусками. Например, он поддерживает подмножество стандартных типов данных, не поддерживает хранимые процедуры, пакеты с установленными условиями (среди других ограничений). Он ограничен максимальным размером базы данных 4 ГБ и не может быть запущен как служба Windows, Compact Edition должен размещаться в приложении, использующем его. Версия 3.5 включает поддержку служб синхронизации ADO.NET. SQL CE не поддерживает подключение ODBC, за исключением собственно SQL Server.
Developer
SQL Server Developer Edition включает те же функции, что и SQL Server Enterprise Edition, но ограничивается использованием только как система разработки и тестирования, а не как рабочий сервер. С начала 2016 года Microsoft сделала этот выпуск бесплатный для всех.
Embedded (SSEE)
SQL Server 2005 Embedded Edition - это специально настроенный именованный экземпляр Ядро базы данных SQL Server Express, доступное только для определенных служб Windows.
Evaluation
Пробная версия SQL Server Evaluation Edition, также известная как Trial Edition, имеет все функции Enterprise Edition, но ограничен 180 днейми, по истечении которых инструменты продолжат работу, но службы сервера остановятся.
Fast Track
SQL Server Fast Track предназначен для хранилищ данных в корпоративном масштабе и обработки бизнес-аналитики и работает на оборудовании с эталонной архитектурой, оптимизированном для Fast Track.
LocalDB
Представленный в SQL Server Express 2012, LocalDB представляет собой минимальную версию SQL по запросу. Сервер, предназначенный для разработчиков приложений. Его также можно использовать в встроенной базы данных.
Analytics Platform System (APS)
Ранее Parallel Data Warehouse (PDW) A массово-параллельная обработка (MPP) SQL Server, оптимизированное для крупномасштабного хранилища данных, например, для сотен терабайт.
Datawarehouse Appliance Edition
Предварительно установлено и настроено как часть устройства в партнерстве с Dell и База HP на мощности Fast Track. В этот выпуск не входят службы SQL Server Integration Services, Analysis Services или Reporting Services. Sqlcmd

Снятые выпуски

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

Архитектура

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

Хранилище данных

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

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

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

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

Управление буфером

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

Параллелизм и блокировка

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

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

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

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

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

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

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

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. Связанные серверы позволяют обрабатывать операции, выполняемые на нескольких серверах, с помощью одного запроса.

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

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

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

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 и после проверки на безопасность типа регистрируется в базе данных. После этого их можно будет вызывать, как и любую другую процедуру. Однако при запуске кода в среде SQL CLR доступна только часть библиотеки базовых классов . Большинство API, относящихся к функциональности пользовательского интерфейса, недоступны.

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

Службы

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

Службы машинного обучения

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

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

Service Broker

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

Службы Service Broker состоят из следующих частей:

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

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

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

Службы репликации

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

Репликация транзакции
Каждая транзакция, сделанная в базе данных издателя (главная база данных), синхронизируется с подписчиками, которые обновляют свои базы данных с помощью транзакции. Репликация транзакций синхронизирует базы данных почти в реальном времени.
Репликация слиянием
Отслеживаются изменения, сделанные как в базах данных издателя, так и подписчика, и периодически изменения синхронизируются в двустороннем порядке между издателем и подписчиками. Если одни и те же данные были изменены по-разному как в базах данных издателя, так и в базах данных подписчика, синхронизация приведет к конфликту, который необходимо разрешить вручную или с помощью заранее определенных политик. needs to be configured on a column if merge replication is configured.
Snapshot replication
Snapshot replication publishes a copy of the entire database (the then-snapshot of the data) and replicates out to the subscribers. Further changes to the snapshot are not tracked.

Analysis Services

SQL Server Analysis Services adds OLAP and data mining capabilities for SQL Server databases. The OLAP engine supports MOLAP, ROLAP and HOLAP storage modes for data. Analysis Services supports the XML for Analysis standard as the underlying communication protocol. The cube data can be accessed using MDX and LINQ queries. Data mining specific functionality is exposed via the DMX query language. Analysis Services includes various algorithms—Decision trees, clustering algorithm, Naive Bayes algorithm, time series analysis, sequence clustering algorithm, linear and logistic regression analysis, and neural networks —for use in data mining.

Reporting Services

SQL Server Reporting Services is a report generation environment for data gathered from SQL Server databases. It is administered via a web interface. Reporting services features a web services interface to support the developm ent приложений для создания отчетов. Отчеты создаются как файлы RDL.

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

Notification Services

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

Службы интеграции

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

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

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

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

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

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

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 - это инструмент GUI, включенный в SQL Server 2005 и более поздних версий, для, управления и администрирования всех компонентов в Microsoft SQL Server.. Инструмент включает в себя как скрипты, так и графические инструменты, которые работают с объектами и функциями сервера. SQL Server Management Studio заменяет собой основной интерфейс управления для Microsoft SQL Server с SQL Server 2005. Версия SQL Server Management Studio также доступна для SQL Server Express Edition, для которого она известна как SQL Server Management Studio Express (SSMSE).

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

SQL Server Operations Studio

SQL Server Operations Studio (предварительная версия) - это редактор межплатформенных запросов, доступный в качестве дополнительного скачивания. Инструмент позволяет пользователям писать запросы; экспорт результатов запроса; фиксировать сценарии SQL в репозиториях Git и выполнять базовую диагностику сервера. SQL Server Operations Studio поддерживает системы Windows, Mac и Linux.

Он стал общедоступным в сентябре 2018 г., после чего он также был переименован в Azure Data Studio. Функционал был прежним.

Business Intelligence Development Studio

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

См. Также

Ссылки

Дополнительная литература

Внешние ссылки

На Wikimedia Commons есть материалы, связанные с Microsoft SQL Server.
Викиучебники имеют книгу по темам: Microsoft SQL Server
Последняя правка сделана 2021-05-30 10:13:55
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте