Microsoft SQL Server — коммерческая реляционная СУБД от Microsoft, входящая в тройку ведущих наряду с Oracle Database и IBM DB2. Доминирует в экосистеме Microsoft: ASP.NET Core, C#, Azure — естественная среда для MS SQL. С 2016 года доступна на Linux.
Как работает SQL Server
SQL Server использует собственный диалект SQL — T-SQL (Transact-SQL). Движок хранения разделён на несколько компонентов: Buffer Manager управляет страницами данных в памяти, Lock Manager — блокировками, Transaction Manager — журналированием через WAL (Write-Ahead Logging). Максимальная страница данных — 8 КБ.
Always On Availability Groups (SQL Server 2012+) — технология high availability: первичная реплика принимает запись, вторичные — чтение или failover. Аналог PostgreSQL Streaming Replication, но встроен в коммерческую Enterprise-редакцию.
Редакции SQL Server
| Редакция | Стоимость | Лимиты |
|---|---|---|
| Express | Бесплатно | 10 ГБ на БД, 1 CPU socket, 1 ГБ RAM |
| Developer | Бесплатно | Только разработка, не для production |
| Standard | ~$3800/core | 128 ГБ RAM, 24 CPU cores |
| Enterprise | ~$14000/core | Без ограничений, Always On AG, in-memory OLTP |
T-SQL особенности
T-SQL содержит процедурные расширения SQL: BEGIN...END, IF...ELSE, WHILE, хранимые процедуры, триггеры, функции. Синтаксические отличия от PostgreSQL: TOP вместо LIMIT, GETDATE() вместо NOW(), ISNULL() вместо COALESCE(), NVARCHAR для Unicode-строк.
История
SQL Server создан совместно Sybase, Microsoft и Ashton-Tate для OS/2 в 1987–1989 годах. Microsoft выпустила SQL Server 1.0 для OS/2 в 1989 году. Полный разрыв с Sybase произошёл в 1994 году (SQL Server 6.0 разрабатывался независимо). SQL Server 7.0 (1998) — полная переработка движка хранения данных. В 2016 году Microsoft портировала SQL Server на Linux через проект «Helios». Azure SQL Database — fully managed облачная версия, запущенная в 2010 году как Windows Azure SQL Database.
MS SQL в хостинге
На виртуальном хостинге MS SQL встречается редко — лицензия платная. VPS под .NET-приложения с SQL Server требует Windows Server (отдельная лицензия) или Linux Server 2016+. Хостинги, специализирующиеся на Windows/.NET, предлагают MS SQL Express как опцию. Express-редакция бесплатна, но лимит в 10 ГБ на базу данных — серьёзное ограничение для production. Azure SQL Database — managed вариант с оплатой по потреблению и автоматическим резервным копированием.
SQL Server на Linux
С версии 2016 SQL Server работает на Ubuntu, Red Hat и SLES. Установка на Ubuntu 20.04:
curl -s https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
apt install mssql-server
/opt/mssql/bin/mssql-conf setup
Подключение через Nginx как reverse proxy для веб-приложений на .NET — стандартная практика: приложение слушает localhost:5000, Nginx проксирует HTTPS → HTTP. Docker-образ mcr.microsoft.com/mssql/server позволяет развернуть SQL Server Express бесплатно за 5 минут.