stringtranslate.com

Microsoft SQL-сервер

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

История

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

Вехи

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

По состоянию на февраль 2024 года Microsoft поддерживает следующие версии:

Начиная с SQL Server 2016, продукт поддерживается только на процессорах x64 и должен иметь процессор с тактовой частотой не менее 1,4 ГГц, рекомендуется 2,0 ГГц или выше. [7]

Текущая версия — Microsoft SQL Server 2022, выпущенная 16 ноября 2022 года. Версия RTM — 16.0.1000.6. [8]

Издания

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

Основные издания

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

Специализированные издания

Лазурный
База данных Microsoft Azure SQL — это облачная версия Microsoft SQL Server, представленная в виде платформы как услуги на платформе Microsoft Azure .
Лазурный MPP
Хранилище данных Azure SQL — это облачная версия 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 сделала эту версию бесплатной для общественности. [16]
Встроенный (SSEE)
SQL Server 2005 Embedded Edition — это специально настроенный именованный экземпляр ядра базы данных SQL Server Express, доступ к которому могут получить только определенные службы Windows.
Оценка
SQL Server Evaluation Edition, также известный как Trial Edition , обладает всеми функциями Enterprise Edition, но ограничен 180 днями, после чего инструменты продолжат работать, но службы сервера будут остановлены. [17]
Ускоренный путь
SQL Server Fast Track специально предназначен для хранения данных в масштабах предприятия и обработки бизнес-аналитики и работает на оборудовании с референтной архитектурой, оптимизированном для Fast Track. [18]
Локальная БД
Представленная в SQL Server Express 2012, LocalDB представляет собой минимальную версию SQL Server, доступную по требованию, которая предназначена для разработчиков приложений. [19] Ее также можно использовать как встроенную базу данных. [20]
Аналитическая платформа системы (APS)
Ранее Parallel Data Warehouse (PDW) — устройство SQL Server с массивно-параллельной обработкой (MPP), оптимизированное для крупномасштабного хранения данных , например, сотен терабайт. [21]
Издание Datawarehouse Appliance
Предварительно установлен и настроен как часть устройства в партнерстве с Dell & HP на базе архитектуры Fast Track. Эта редакция не включает SQL Server Integration Services, Analysis Services или Reporting Services. SQLCMD

Снятые с производства издания

Microsoft Data Engine
Версия 1.0 основана на SQL Server версии 7.0. [22] Впоследствии она была заменена на Microsoft SQL Server Data Engine.
Microsoft SQL Server Data Engine
Также называется Desktop Engine, Desktop Edition, основан на SQL Server 2000. Предназначен для использования в качестве компонента приложения, не включает в себя инструменты управления GUI. Позже Microsoft также предоставила инструмент веб-администрирования. Включен в некоторые версии Microsoft Access , инструменты разработки Microsoft и другие редакции SQL Server. [23] После SQL Server 2000 он был заменен на SQL Server 2005 Express Edition.
Персональное издание
SQL Server 2000. Имели ограничения на рабочую нагрузку или подключение, как MSDE, но не имели ограничений на размер базы данных. Включает стандартные инструменты управления. Предназначен для использования в качестве мобильного/отключенного прокси-сервера, лицензирован для использования с SQL Server 2000 Standard edition. [23] Аналогично Standard Edition в SQL Server 2000, но полнотекстовый поиск не работает в Windows 98, транзакционная репликация ограничена подписчиком. [24]
Центр обработки данных
SQL Server 2008 R2 Datacenter — это полнофункциональная версия SQL Server, разработанная для центров обработки данных, которым требуется высокий уровень поддержки приложений и масштабируемости. Она поддерживает 256 логических процессоров и практически неограниченную память и поставляется с версией StreamInsight Premium. [25] Версия Datacenter была упразднена в SQL Server 2012; все ее функции доступны в SQL Server 2012 Enterprise Edition. [13]
Издание Windows CE
Представлен в SQL Server 2000 [26] и был заменен SQL Server 2005 Mobile Edition.
SQL Server 2005 Мобильная версия
Заменен на SQL Server 2005 Compact Edition после 1 выпуска.
SQL Server 2005 Компактная версия
Заменен на SQL Server Compact 3.5 после 1 выпуска.

Дополнительные пакеты

Инструменты, опубликованные Microsoft, включают:

  • Образцы: [27] Northwind и pubs Образцы баз данных, обновленные образцы для SQL Server 2000.
  • Инструменты: инструменты стресс-тестирования и анализа производительности (Read80Trace и OSTRESS), утилита сбора данных PSSDIAG, службы уведомлений (до пакета обновления 1), инструменты безопасности, Best Practices Analyzer 1.0, службы отчетов (до пакета обновления 2), пакеты отчетов служб отчетов, драйвер SQL Server 2000 для JDBC (до пакета обновления 3), SQLXML 3.0 (до пакета обновления 3).
  • Документация: [28] Электронная документация по SQL Server 2000, Карта системных таблиц SQL Server 2000, Комплект ресурсов, SQL Server 2000 — Руководство по началу работы.

Архитектура

Уровень протокола реализует внешний интерфейс к 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 также предоставляется через веб-службы . [10]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

T-SQL

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

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

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

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

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

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

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

Услуга

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

Услуги машинного обучения

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

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

Брокер услуг

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

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

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

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

Услуги репликации

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

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

Аналитические услуги

SQL Server Analysis Services (SSAS) добавляет возможности OLAP и интеллектуального анализа данных для баз данных SQL Server. Механизм OLAP поддерживает режимы хранения данных MOLAP , ROLAP и HOLAP . Analysis Services поддерживает стандарт XML для анализа в качестве базового протокола связи. Доступ к данным куба можно получить с помощью запросов MDX и LINQ [46] . [47] Специфическая функциональность интеллектуального анализа данных предоставляется через язык запросов DMX . Analysis Services включает в себя различные алгоритмы — деревья решений , алгоритм кластеризации, наивный байесовский алгоритм, анализ временных рядов, алгоритм кластеризации последовательностей, линейный и логистический регрессионный анализ и нейронные сети — для использования в интеллектуальном анализе данных. [48]

Отчетные услуги

SQL Server Reporting Services (SSRS) — это среда генерации отчетов для данных, собранных из баз данных SQL Server. Она администрируется через веб-интерфейс. Reporting Services имеет интерфейс веб-сервисов для поддержки разработки пользовательских приложений для создания отчетов. Отчеты создаются в виде файлов RDL . [49]

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

Службы уведомлений

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

Интеграционные услуги

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

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

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

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

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

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

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, которые были функционально эквивалентны в том, что касается выполнения T-SQL, и многие параметры командной строки идентичны, хотя SQLCMD добавляет дополнительную универсальность.

Визуальная Студия

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

Студия управления SQL-сервером

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

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

Студия данных Azure

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

Он был выпущен в общедоступную версию в сентябре 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). [67] Для SQL Server 2012 и более поздних версий эта IDE была переименована в SQL Server Data Tools (SSDT).

Смотрите также

Ссылки

  1. ^ "Изучите возможности SQL Server 2022" . Получено 6 января 2023 г. .
  2. ^ Последние обновления и история версий SQL Server
  3. ^ Lextrait, Vincent (июль 2010 г.). "The Programming Languages ​​Beacon, v10.3". Архивировано из оригинала 30 мая 2012 г. Получено 5 сентября 2010 г.
  4. ^ "Загрузить Microsoft SQL Server 2008 R2". Центр оценки Microsoft . Корпорация Microsoft . Получено 18 июля 2011 г.
  5. ^ «Руководство по установке SQL Server на Linux». microsoft.com . 21 декабря 2017 г. Получено 1 февраля 2018 г.
  6. ^ «Что нового в SQL Server 2019 (15.x)». microsoft.com/ . 6 апреля 2022 г. . Получено 11 мая 2022 г. .
  7. ^ «Требования к установке SQL Server 2016». docs.microsoft.com . msdn.microsoft.com. 2 мая 2016 г. Получено 28 июля 2016 г.
  8. ^ "Заметки о выпуске SQL Server 2022". learn.microsoft.com . Получено 14 февраля 2023 г. .
  9. ^ "Сравнение изданий". Домашняя страница SQL Server . Microsoft Corporation . Получено 3 декабря 2007 г.
  10. ^ abcdefghi Кален Делани (2007). Внутри Microsoft SQL Server 2005: Механизм хранения . Microsoft Press . ISBN 978-0-7356-2105-3.
  11. ^ "SQL Server 2008: Editions". Microsoft . Получено 21 июля 2011 г. .
  12. ^ "Система баз данных | Производительность и масштабируемость | SQL Server 2012 Business Intelligence Editions". Microsoft.com . Получено 15 июня 2013 г.
  13. ^ ab SQL Server 2012 Лицензионное описание и часто задаваемые вопросы (март 2012 г.)
  14. ^ "Ограничение размера базы данных SQL Server 2008 R2 Express увеличено до 10 ГБ" . Получено 23 апреля 2010 г.
  15. ^ "Что происходит с выпусками SQL Server 2008 Express" . Получено 15 августа 2008 г. .
  16. ^ "Developer Edition". Домашняя страница SQL Server . Microsoft Corporation . Получено 18 июля 2011 г.
  17. ^ "SQL Server 2008 Trial Software". Microsoft . Получено 26 марта 2009 г.
  18. ^ "Microsoft SQL Server 2008: Fast Track Data Warehouse". Microsoft . Получено 26 марта 2009 г. .
  19. ^ "SQL Server Express LocalDB". SQL Server. Microsoft Docs . Получено 2 августа 2021 г.
  20. ^ «Представляем LocalDB, улучшенный SQL Express». SQL Server Express WebLog. Microsoft Docs . 12 июля 2011 г. Получено 2 августа 2021 г.
  21. ^ "Microsoft Analytics Platform System". Microsoft . Получено 29 апреля 2015 г. .
  22. ^ Выбор редакции SQL Server 2000
  23. ^ ab "IT Pro".
  24. ^ Функции, поддерживаемые выпусками SQL Server 2000
  25. ^ "Выбор версии StreamInsight". MSDN . Microsoft Corporation . Получено 18 июля 2011 г. .
  26. ^ "Глава 3 - Выбор редакции SQL Server 2000". 1 ноября 2010 г. Архивировано из оригинала 1 ноября 2010 г. Получено 4 ноября 2022 г.
  27. ^ SQL Server 2000 - Загрузки
  28. ^ Документация по продукту SQL Server 2000
  29. ^ "Страницы и экстенты" . Получено 2 декабря 2007 г.
  30. ^ "Организация таблиц и индексов" . Получено 2 декабря 2007 г.
  31. ^ "Управление буфером" . Получено 2 декабря 2007 г.
  32. ^ "Обработка одного оператора SQL" . Получено 3 декабря 2007 г.
  33. ^ "Основы хранимых процедур" . Получено 3 декабря 2007 г.
  34. ^ "Transact-SQL Reference" . Получено 3 декабря 2007 г. .
  35. ^ "Возможности собственного клиента SQL Server" . Получено 3 декабря 2007 г. .
  36. ^ "Доступно сегодня: предварительный выпуск драйвера SQL Server ODBC для Linux". Блог команды SQL Server. 28 ноября 2011 г. Получено 15 июня 2013 г.
  37. ^ ab "Обзор интеграции CLR" . Получено 3 декабря 2007 г.
  38. ^ "Поддержка XML в SQL Server" . Получено 5 сентября 2008 г.
  39. ^ "Что такое службы машинного обучения SQL Server". Домашняя страница SQL Server . Microsoft Corporation . Получено 10 апреля 2018 г.
  40. ^ "Представляем сервис-брокера" . Получено 3 декабря 2007 г.
  41. ^ abc Клаус Ашенбреннер (2011). «Представляющий сервис-брокер». Pro SQL Server 2008 Service Broker (1-е изд.). Вена: Апресс . стр. 17–31. ISBN 978-1-4302-0865-5. Получено 15 декабря 2019 г. .
  42. ^ "Обзор типов репликации" . Получено 3 декабря 2007 г. .
  43. ^ "Обзор репликации транзакций" . Получено 3 декабря 2007 г.
  44. ^ "Обзор репликации слиянием" . Получено 3 декабря 2007 г. .
  45. ^ "Обзор репликации моментальных снимков" . Получено 3 декабря 2007 г. .
  46. ^ "SSAS Entity Framework Provider" . Получено 29 сентября 2011 г.
  47. ^ "Архитектура служб анализа" . Получено 3 декабря 2007 г.
  48. ^ "Концепции интеллектуального анализа данных" . Получено 3 декабря 2007 г.
  49. ^ "SQL Server Reporting Services" . Получено 3 декабря 2007 г.
  50. ^ "Невозможно открыть файл SQL Reporting Services .rptproj | Microsoft Connect". Connect.microsoft.com. Архивировано из оригинала 3 февраля 2012 г. Получено 4 сентября 2011 г.
  51. ^ Библиотека MSDN: Метод визуализации служб Reporting Services
  52. ^ Настройки информации об устройстве
  53. ^ Настройки информации об устройстве изображения
  54. ^ "Введение в службы уведомлений SQL Server". 3 сентября 2002 г. Получено 14 ноября 2008 г.
  55. ^ "Службы уведомлений SQL Server удалены из SQL Server 2008". Архивировано из оригинала 16 октября 2008 г. Получено 17 сентября 2008 г.
  56. ^ "Прекращенная функциональность в службах отчетов SQL Server 2008" . Получено 17 сентября 2008 г. .
  57. ^ "Введение в службы уведомлений SQL Server" . Получено 3 декабря 2007 г. .
  58. ^ "Обзор служб интеграции" . Получено 3 декабря 2007 г.
  59. ^ "Введение в полнотекстовый поиск". 19 ноября 2007 г. Получено 3 декабря 2007 г.
  60. ^ "Запрос SQL Server с использованием полнотекстового поиска" . Получено 3 декабря 2007 г.
  61. ^ ab "Архитектура полнотекстового поиска" . Получено 3 декабря 2007 г.
  62. ^ "MSDN: Знакомство с SQL Server Management Studio". Msdn.microsoft.com . Получено 4 сентября 2011 г. .
  63. ^ "SQL Server Management Studio Express". Microsoft.com. 18 апреля 2006 г. Получено 4 сентября 2011 г.
  64. ^ "MSDN: Использование обозревателя объектов". Msdn.microsoft.com . Получено 4 сентября 2011 г. .
  65. ^ "SQL Server 2005 Management Tools". Sqlmag.com. 19 июля 2005 г. Получено 4 сентября 2011 г.
  66. ^ "Что такое Microsoft SQL Operations Studio (предварительная версия)?". docs.microsoft.com . Получено 19 января 2018 г. .
  67. ^ "Представляем Business Intelligence Development Studio" . Получено 3 декабря 2007 г.

Дальнейшее чтение

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