Microsoft SQL Server

Its name is entirely descriptive, it being server software that responds to queries in the SQL language.

[9] Microsoft makes SQL Server available in multiple editions, with different feature sets and targeting different users.

These editions are:[10][11] Tools published by Microsoft include: The protocol layer implements the external interface to SQL Server.

All operations that can be invoked on SQL Server are communicated to it via a Microsoft-defined format, called Tabular Data Stream (TDS).

Initially designed and developed by Sybase Inc. for their Sybase SQL Server relational database engine in 1984, and later by Microsoft in Microsoft SQL Server, TDS packets can be encased in other physical transport dependent protocols, including TCP/IP, named pipes, and shared memory.

Microsoft SQL Server also allows user-defined composite types (UDTs) to be defined and used.

In addition to tables, a database can also contain other objects including views, stored procedures, indexes and constraints, along with a transaction log.

[11] Storage space allocated to a database is divided into sequentially numbered pages, each 8 KB in size.

While a fine-grained locking system allows more users to use the table or index simultaneously, it requires more resources, so it does not automatically yield higher performance.

SQL Server also includes two more lightweight mutual exclusion solutions—latches and spinlocks—which are less robust than locks but are less resource intensive.

SQL Server also monitors all worker threads that acquire locks to ensure that they do not end up in deadlocks—in case they do, SQL Server takes remedial measures, which in many cases are to kill one of the threads entangled in a deadlock and roll back the transaction it started.

If the other request is an update statement, it will result in two different versions of the rows—both of them will be stored by the database, identified by their respective transaction IDs.

In such case, SQL Server chooses the plan that is expected to yield the results in the shortest possible time.

Also because the code need not be sent from the client every time (as it can be accessed by name), it reduces network traffic and somewhat improves performance.

The SQL Server Native Client can also be directly used, bypassing the generic data access layers.

Managed code is compiled to CLI assemblies and after being verified for type safety, registered at the database.

[38] However, only a subset of the Base Class Library is available, when running code under SQL CLR.

It also provides access to the XML features in SQL Server, including XQuery support.

These enhancements are also available in T-SQL Procedures in consequence of the introduction of the new XML Datatype (query, value, nodes functions).

The SQL Server Machine Learning services operates within the SQL server instance, allowing people to do machine learning and data analytics without having to send data across the network or be limited by the memory of their own computers.

For cross-instance applications, Service Broker communicates over TCP/IP and allows the different components to be synchronized, via exchange of messages.

This can be an XML object, plain text or binary data, as well as a null message body for notifications.

They are internally implemented as tables by SQL Server, but do not support insert, update, or delete functionality.

[42] Also, service broker supports security features like network authentication (using NTLM, Kerberos, or authorization certificates), integrity checking, and message encryption.

Once created, RDL files can be rendered in a variety of formats,[52][53] including Excel, PDF, CSV, XML, BMP, EMF, GIF, JPEG, PNG, and TIFF,[54] and HTML Web Archive.

Once the text is extracted, the Filter Daemon process breaks it up into a sequence of words and hands it over to the indexer.

SQL Server itself includes a Gatherer component that monitors changes to tables and invokes the indexer in case of updates.

Its predecessor for earlier versions was OSQL and ISQL, which were functionally equivalent as it pertains to T-SQL execution, and many of the command line parameters are identical, although SQLCMD adds extra versatility.

[11] Azure Data Studio is a cross platform query editor available as an optional download.

It is based on the Microsoft Visual Studio development environment but is customized with the SQL Server services-specific extensions and project types, including tools, controls and projects for reports (using Reporting Services), Cubes and data mining structures (using Analysis Services).

The SQL Server Full Text Search service architecture