Что такое sql server windows nt

Microsoft SQL Server is a proprietary relational database management system developed by Microsoft using Structured Query Language (SQL, often pronounced «sequel»). As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network (including the Internet). Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.

Microsoft SQL Server

Developer(s) Microsoft
Initial release April 24, 1989; 36 years ago, as SQL Server 1.0
Stable release

SQL Server 2022[1]  (CU18 16.0.4185.3)[2]
/ 16 November 2022; 2 years ago

Written in C, C++[3]
Operating system Linux, Microsoft Windows Server, Microsoft Windows
Available in English, Chinese, French, German, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Spanish and Indonesian[4]
Type Relational database management system
License Proprietary software
Website www.microsoft.com/sql-server

The history of Microsoft SQL Server begins with the first Microsoft SQL Server product—SQL Server 1.0, a 16-bit server for the OS/2 operating system in 1989—and extends to the current day. Its name is entirely descriptive, it being server software that responds to queries in the SQL language.

  • MS SQL Server for OS/2 began as a project to port Sybase SQL Server onto OS/2 in 1989, by Sybase, Ashton-Tate, and Microsoft.
  • SQL Server 4.2 for NT is released in 1993, marking the entry onto Windows NT.
  • SQL Server 6.0 is released in 1995, marking the end of collaboration with Sybase; Sybase would continue developing their own variant of SQL Server, Sybase Adaptive Server Enterprise, independently of Microsoft.
  • SQL Server 7.0 is released in 1998, marking the conversion of the source code from C to C++.
  • SQL Server 2000, released in 2000. SQL Server 2000 SQL Server 8 SQL Server 8.0 codename Shiloh Release date: 2000-11-30.
  • SQL Server 2005, released in 2005, finishes the complete revision of the old Sybase code into Microsoft code.
  • SQL Server 2008, released in 2008, supports hierarchical data, adds FILESTREAM and SPATIAL data types.
  • SQL Server 2012, released in 2012, adds columnar in-memory storage aka xVelocity.
  • SQL Server 2017, released in 2017, adds Linux support for these Linux platforms: Red Hat Enterprise Linux, SUSE Linux Enterprise Server, Ubuntu & Docker Engine.[5]
  • SQL Server 2019, released in 2019, adds Big Data Clusters, enhancements to the «Intelligent Database», enhanced monitoring features, updated developer experience, and updates/enhancements for Linux based installations.[6]
  • SQL Server 2022, released in 2022.

As of January 2025, the following versions are supported by Microsoft:[7]

  • SQL Server 2016
  • SQL Server 2017
  • SQL Server 2019
  • SQL Server 2022

From SQL Server 2016 onward, the product is supported on x64 processors only and must have 1.4 GHz processor as a minimum, 2.0 GHz or faster is recommended.[8]

The current version is Microsoft SQL Server 2022, released November 16, 2022. The RTM version is 16.0.1000.6.[9]

Microsoft makes SQL Server available in multiple editions, with different feature sets and targeting different users. These editions are:[10][11]

Enterprise
SQL Server Enterprise Edition includes both the core database engine and add-on services, with a range of tools for creating and managing a SQL Server cluster. It can manage databases as large as 524 petabytes and address 12 terabytes of memory and supports 640 logical processors (CPU cores).[12]
Standard
SQL Server Standard edition includes the core database engine, along with the stand-alone services. It differs from Enterprise edition in that it supports fewer active instances (number of nodes in a cluster) and does not include some high-availability functions such as hot-add memory (allowing memory to be added while the server is still running), and parallel indexes.
Web
SQL Server Web Edition is a low-TCO option for Web hosting.
Business intelligence
Introduced in SQL Server 2012 and focusing on Self Service and Corporate Business Intelligence. It includes the Standard Edition capabilities and Business Intelligence tools: Power Pivot, Power View, the BI Semantic Model, Master Data Services, Data Quality Services and xVelocity in-memory analytics.[13]
Workgroup
SQL Server Workgroup Edition includes the core database functionality but does not include the additional services. Note that this edition has been retired in SQL Server 2012.[14]
Express
SQL Server Express Edition is a scaled down, free edition of SQL Server, which includes the core database engine. While there are no limitations on the number of databases or users supported, it is limited to using one processor, 1 GB memory and 10 GB database files (4 GB database files prior to SQL Server Express 2008 R2).[15] It is intended as a replacement for MSDE. Two additional editions provide a superset of features not in the original Express Edition. The first is SQL Server Express with Tools, which includes SQL Server Management Studio Basic. SQL Server Express with Advanced Services adds full-text search capability and reporting services.[16]

Specialized editions


edit

Azure
Microsoft Azure SQL Database is the cloud-based version of Microsoft SQL Server, presented as a platform as a service offering on Microsoft Azure.
Azure MPP
Azure SQL Data Warehouse is the cloud-based version of Microsoft SQL Server in a MPP (massively parallel processing) architecture for analytics workloads, presented as a platform as a service offering on Microsoft Azure.
Compact (SQL CE)
The compact edition is an embedded database engine. Unlike the other editions of SQL Server, the SQL CE engine is based on SQL Mobile (initially designed for use with hand-held devices) and does not share the same binaries. Due to its small size (1 MB DLL footprint), it has a markedly reduced feature set compared to the other editions. For example, it supports a subset of the standard data types, does not support stored procedures or Views or multiple-statement batches (among other limitations). It is limited to 4 GB maximum database size and cannot be run as a Windows service, Compact Edition must be hosted by the application using it. The 3.5 version includes support for ADO.NET Synchronization Services. SQL CE does not support ODBC connectivity, unlike SQL Server proper.
Developer
SQL Server Developer Edition includes the same features as SQL Server Enterprise Edition, but is limited by the license to be only used as a development and test system, and not as production server. Starting early 2016, Microsoft made this edition free of charge to the public.[17]
Embedded (SSEE)
SQL Server 2005 Embedded Edition is a specially configured named instance of the SQL Server Express database engine which can be accessed only by certain Windows Services.
Evaluation
SQL Server Evaluation Edition, also known as the Trial Edition, has all the features of the Enterprise Edition, but is limited to 180 days, after which the tools will continue to run, but the server services will stop.[18]
Fast Track
SQL Server Fast Track is specifically for enterprise-scale data warehousing storage and business intelligence processing, and runs on reference-architecture hardware that is optimized for Fast Track.[19]
LocalDB
Introduced in SQL Server Express 2012, LocalDB is a minimal, on-demand, version of SQL Server that is designed for application developers.[20] It can also be used as an embedded database.[21]
Analytics Platform System (APS)
Formerly Parallel Data Warehouse (PDW) A massively parallel processing (MPP) SQL Server appliance optimized for large-scale data warehousing such as hundreds of terabytes.[22]
Datawarehouse Appliance Edition
Pre-installed and configured as part of an appliance in partnership with Dell & HP base on the Fast Track architecture. This edition does not include SQL Server Integration Services, Analysis Services, or Reporting Services. SQLCMD

Discontinued editions


edit

Microsoft Data Engine
Version 1.0 is based on SQL Server version 7.0.[23] Afterwards, it was replaced by Microsoft SQL Server Data Engine.
Microsoft SQL Server Data Engine
Also called Desktop Engine, Desktop Edition, it is based on SQL Server 2000. Included with some versions of Microsoft Access, Microsoft development tools, and other editions of SQL Server.[24] Intended for use with those management and development tools, it did not include any other GUI. Later, Microsoft also made available a web admin tool. After SQL Server 2000, it was replaced by SQL Server 2005 Express Edition.
Personal Edition
SQL Server 2000. Had workload or connection limits like MSDE, but no database size limit. Includes standard management tools. Intended for use as a mobile / disconnected proxy, licensed for use with SQL Server 2000 Standard edition.[24] Similar to Standard Edition in SQL Server 2000, but Full-Text Search not working in Windows 98, transactional replication limited to subscriber.[25]
Datacenter
SQL Server 2008 R2 Datacenter is a full-featured edition of SQL Server and is designed for datacenters that need high levels of application support and scalability. It supports 256 logical processors and virtually unlimited memory and comes with StreamInsight Premium edition.[26] The Datacenter edition has been retired in SQL Server 2012; all of its features are available in SQL Server 2012 Enterprise Edition.[14]
Windows CE Edition
Introduced in SQL Server 2000,[27] and was replaced by SQL Server 2005 Mobile Edition.
SQL Server 2005 Mobile Edition
Replaced by SQL Server 2005 Compact Edition after 1 release.
SQL Server 2005 Compact Edition
Replaced by SQL Server Compact 3.5 after 1 release.

Tools published by Microsoft include:

  • SQL Server 2000:
  • Samples:[28] Northwind and pubs Sample Databases, Updated Samples for SQL Server 2000.
  • Tools: Stress Testing and Performance Analysis tools (Read80Trace and OSTRESS), PSSDIAG Data Collection Utility, Notification services (up to service pack 1), Security Tools, Best Practices Analyzer 1.0, Reporting Services (up to Service Pack 2), Reporting Services Report Packs, SQL Server 2000 Driver for JDBC (up to service pack 3), SQLXML 3.0 (up to service pack 3).
  • Documentation:[29] SQL Server 2000 Books Online, SQL Server 2000 System Table Map, Resource Kit, SQL Server 2000 — Getting Started Guide.

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). TDS is an application layer protocol, used to transfer data between a database server and a client. 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. Consequently, access to SQL Server is available over these protocols. In addition, the SQL Server API is also exposed over web services.[11]

Data storage is a database, which is a collection of tables with typed columns. SQL Server supports different data types, including primitive types such as Integer, Float, Decimal, Char (including character strings), Varchar (variable length character strings), binary (for unstructured blobs of data), Text (for textual data) among others. The rounding of floats to integers uses either Symmetric Arithmetic Rounding or Symmetric Round Down (fix) depending on arguments: SELECT Round(2.5, 0) gives 3.

Microsoft SQL Server also allows user-defined composite types (UDTs) to be defined and used. It also makes server statistics available as virtual tables and views (called Dynamic Management Views or DMVs). In addition to tables, a database can also contain other objects including views, stored procedures, indexes and constraints, along with a transaction log. A SQL Server database can contain a maximum of 231 objects, and can span multiple OS-level files with a maximum file size of 260 bytes (1 exabyte).[11] The data in the database are stored in primary data files with an extension .mdf. Secondary data files, identified with a .ndf extension, are used to allow the data of a single database to be spread across more than one file, and optionally across more than one file system. Log files are identified with the .ldf extension.[11]

Storage space allocated to a database is divided into sequentially numbered pages, each 8 KB in size. A page is the basic unit of I/O for SQL Server operations. A page is marked with a 96-byte header which stores metadata about the page including the page number, page type, free space on the page and the ID of the object that owns it. The page type defines the data contained in the page. This data includes: data stored in the database, an index, an allocation map, which holds information about how pages are allocated to tables and indexes; and a change map which holds information about the changes made to other pages since last backup or logging, or contain large data types such as image or text. While a page is the basic unit of an I/O operation, space is actually managed in terms of an extent which consists of 8 pages. A database object can either span all 8 pages in an extent («uniform extent») or share an extent with up to 7 more objects («mixed extent»). A row in a database table cannot span more than one page, so is limited to 8 KB in size. However, if the data exceeds 8 KB and the row contains varchar or varbinary data, the data in those columns are moved to a new page (or possibly a sequence of pages, called an allocation unit) and replaced with a pointer to the data.[30]

For physical storage of a table, its rows are divided into a series of partitions (numbered 1 to n). The partition size is user defined; by default all rows are in a single partition. A table is split into multiple partitions in order to spread a database over a computer cluster. Rows in each partition are stored in either B-tree or heap structure. If the table has an associated, clustered index to allow fast retrieval of rows, the rows are stored in-order according to their index values, with a B-tree providing the index. The data is in the leaf node of the leaves, and other nodes storing the index values for the leaf data reachable from the respective nodes. If the index is non-clustered, the rows are not sorted according to the index keys. An indexed view has the same storage structure as an indexed table. A table without a clustered index is stored in an unordered heap structure. However, the table may have non-clustered indices to allow fast retrieval of rows. In some situations the heap structure has performance advantages over the clustered structure. Both heaps and B-trees can span multiple allocation units.[31]

SQL Server buffers pages in RAM to minimize disk I/O. Any 8 KB page can be buffered in-memory, and the set of all pages currently buffered is called the buffer cache. The amount of memory available to SQL Server decides how many pages will be cached in memory. The buffer cache is managed by the Buffer Manager. Either reading from or writing to any page copies it to the buffer cache. Subsequent reads or writes are redirected to the in-memory copy, rather than the on-disc version. The page is updated on the disc by the Buffer Manager only if the in-memory cache has not been referenced for some time. While writing pages back to disc, asynchronous I/O is used whereby the I/O operation is done in a background thread so that other operations do not have to wait for the I/O operation to complete. Each page is written along with its checksum when it is written. When reading the page back, its checksum is computed again and matched with the stored version to ensure the page has not been damaged or tampered with in the meantime.[32]

Concurrency and locking


edit

SQL Server allows multiple clients to use the same database concurrently. As such, it needs to control concurrent access to shared data, to ensure data integrity—when multiple clients update the same data, or clients attempt to read data that is in the process of being changed by another client. SQL Server provides two modes of concurrency control: pessimistic concurrency and optimistic concurrency. When pessimistic concurrency control is being used, SQL Server controls concurrent access by using locks. Locks can be either shared or exclusive. An exclusive lock grants the user exclusive access to the data—no other user can access the data as long as the lock is held. Shared locks are used when some data is being read—multiple users can read from data locked with a shared lock, but not acquire an exclusive lock. The latter would have to wait for all shared locks to be released.

Locks can be applied on different levels of granularity—on entire tables, pages, or even on a per-row basis on tables. For indexes, it can either be on the entire index or on index leaves. The level of granularity to be used is defined on a per-database basis by the database administrator. 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 uses them for DMVs and other resources that are usually not busy. 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.[11] To implement locking, SQL Server contains the Lock Manager. The Lock Manager maintains an in-memory table that manages the database objects and locks, if any, on them along with other metadata about the lock. Access to any shared object is mediated by the lock manager, which either grants access to the resource or blocks it.

SQL Server also provides the optimistic concurrency control mechanism, which is similar to the multiversion concurrency control used in other databases. The mechanism allows a new version of a row to be created whenever the row is updated, as opposed to overwriting the row, i.e., a row is additionally identified by the ID of the transaction that created the version of the row. Both the old as well as the new versions of the row are stored and maintained, though the old versions are moved out of the database into a system database identified as Tempdb. When a row is in the process of being updated, any other requests are not blocked (unlike locking) but are executed on the older version of the row. 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.[11]

Data retrieval and programmability


edit

The main mode of retrieving data from a SQL Server database is querying for it. The query is expressed using a variant of SQL called T-SQL, a dialect Microsoft SQL Server shares with Sybase SQL Server due to its legacy. The query declaratively specifies what is to be retrieved. It is processed by the query processor, which figures out the sequence of steps that will be necessary to retrieve the requested data. The sequence of actions necessary to execute a query is called a query plan. There might be multiple ways to process the same query. For example, for a query that contains a join statement and a select statement, executing join on both the tables and then executing select on the results would give the same result as selecting from each table and then executing the join, but result in different execution plans. In such case, SQL Server chooses the plan that is expected to yield the results in the shortest possible time. This is called query optimization and is performed by the query processor itself.[11]

SQL Server includes a cost-based query optimizer which tries to optimize on the cost, in terms of the resources it will take to execute the query. Given a query, then the query optimizer looks at the database schema, the database statistics and the system load at that time. It then decides which sequence to access the tables referred in the query, which sequence to execute the operations and what access method to be used to access the tables. For example, if the table has an associated index, whether the index should be used or not: if the index is on a column which is not unique for most of the columns (low «selectivity»), it might not be worthwhile to use the index to access the data. Finally, it decides whether to execute the query concurrently or not. While a concurrent execution is more costly in terms of total processor time, because the execution is actually split to different processors might mean it will execute faster. Once a query plan is generated for a query, it is temporarily cached. For further invocations of the same query, the cached plan is used. Unused plans are discarded after some time.[11][33]

SQL Server also allows stored procedures to be defined. Stored procedures are parameterized T-SQL queries, that are stored in the server itself (and not issued by the client application as is the case with general queries). Stored procedures can accept values sent by the client as input parameters, and send back results as output parameters. They can call defined functions, and other stored procedures, including the same stored procedure (up to a set number of times). They can be selectively provided access to. Unlike other queries, stored procedures have an associated name, which is used at runtime to resolve into the actual queries. 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.[34] Execution plans for stored procedures are also cached as necessary.

T-SQL (Transact-SQL) is Microsoft’s proprietary procedural language extension for SQL Server. It provides REPL (Read-Eval-Print-Loop) instructions that extend standard SQL’s instruction set for Data Manipulation (DML) and Data Definition (DDL) instructions, including SQL Server-specific settings, security and database statistics management.

It exposes keywords for the operations that can be performed on SQL Server, including creating and altering database schemas, entering and editing data in the database as well as monitoring and managing the server itself. Client applications that consume data or manage the server will leverage SQL Server functionality by sending T-SQL queries and statements which are then processed by the server and results (or errors) returned to the client application. For this it exposes read-only tables from which server statistics can be read. Management functionality is exposed via system-defined stored procedures which can be invoked from T-SQL queries to perform the management operation. It is also possible to create linked Servers using T-SQL. Linked servers allow a single query to process operations performed on multiple servers.[35]

SQL Server Native Client (a.k.a. SNAC)


edit

SQL Server Native Client is the native client side data access library for Microsoft SQL Server, version 2005 onwards. It natively implements support for the SQL Server features including the Tabular Data Stream implementation, support for mirrored SQL Server databases, full support for all data types supported by SQL Server, asynchronous operations, query notifications, encryption support, as well as receiving multiple result sets in a single database session. SQL Server Native Client is used under the hood by SQL Server plug-ins for other data access technologies, including ADO or OLE DB. The SQL Server Native Client can also be directly used, bypassing the generic data access layers.[36]

On November 28, 2011, a preview release of the SQL Server ODBC driver for Linux was released.[37]

Microsoft SQL Server 2005 includes a component named SQL CLR («Common Language Runtime») via which it integrates with .NET Framework. Unlike most other applications that use .NET Framework, SQL Server itself hosts the .NET Framework runtime, i.e., memory, threading and resource management requirements of .NET Framework are satisfied by SQLOS itself, rather than the underlying Windows operating system. SQLOS provides deadlock detection and resolution services for .NET code as well. With SQL CLR, stored procedures and triggers can be written in any managed .NET language, including C# and VB.NET. Managed code can also be used to define UDT’s (user defined types), which can persist in the database. Managed code is compiled to CLI assemblies and after being verified for type safety, registered at the database. After that, they can be invoked like any other procedure.[38] However, only a subset of the Base Class Library is available, when running code under SQL CLR. Most APIs relating to user interface functionality are not available.[38]

When writing code for SQL CLR, data stored in SQL Server databases can be accessed using the ADO.NET APIs like any other managed application that accesses SQL Server data. However, doing that creates a new database session, different from the one in which the code is executing. To avoid this, SQL Server provides some enhancements to the ADO.NET provider that allows the connection to be redirected to the same session which already hosts the running code. Such connections are called context connections and are set by setting context connection parameter to true in the connection string. SQL Server also provides several other enhancements to the ADO.NET API, including classes to work with tabular data or a single row of data as well as classes to work with internal metadata about the data stored in the database. 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).[39]

SQL Server also includes an assortment of add-on services. While these are not essential for the operation of the database system, they provide value added services on top of the core database management system. These services either run as a part of some SQL Server component or out-of-process as Windows Service and presents their own API to control and interact with them.

Machine Learning Services


edit

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. The services come with Microsoft’s R and Python distributions that contain commonly used packages for data science, along with some proprietary packages (e.g. revoscalepy, RevoScaleR, microsoftml) that can be used to create machine models at scale.

Analysts can either configure their client machine to connect to a remote SQL server and push the script executions to it, or they can run a R or Python scripts as an external script inside a T-SQL query. The trained machine learning model can be stored inside a database and used for scoring.[40]

Used inside an instance, programming environment. For cross-instance applications, Service Broker communicates over TCP/IP and allows the different components to be synchronized, via exchange of messages. The Service Broker, which runs as a part of the database engine, provides a reliable messaging and message queuing platform for SQL Server applications.[41]

Service broker services consists of the following parts:[42]

  • message types
  • contracts
  • queues
  • service programs
  • routes

The message type defines the data format used for the message. This can be an XML object, plain text or binary data, as well as a null message body for notifications. The contract defines which messages are used in an conversation between services and who can put messages in the queue. The queue acts as storage provider for the messages. They are internally implemented as tables by SQL Server, but do not support insert, update, or delete functionality. The service program receives and processes service broker messages. Usually the service program is implemented as stored procedure or CLR application. Routes are network addresses where the service broker is located on the network.[42]

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

Replication Services


edit

SQL Server Replication Services are used by SQL Server to replicate and synchronize database objects, either in entirety or a subset of the objects present, across replication agents, which might be other database servers across the network, or database caches on the client side. Replication Services follows a publisher/subscriber model, i.e., the changes are sent out by one database server («publisher») and are received by others («subscribers»). SQL Server supports three different types of replication:[43]

Transaction replication
Each transaction made to the publisher database (master database) is synced out to subscribers, who update their databases with the transaction. Transactional replication synchronizes databases in near real time.[44]
Merge replication
Changes made at both the publisher and subscriber databases are tracked, and periodically the changes are synchronized bi-directionally between the publisher and the subscribers. If the same data has been modified differently in both the publisher and the subscriber databases, synchronization will result in a conflict which has to be resolved, either manually or by using pre-defined policies.Rowguid needs to be configured on a column if merge replication is configured.[45]
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.[46]

SQL Server Analysis Services (SSAS) 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[47] queries.[48]
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.[49]

SQL Server Reporting Services (SSRS) 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 development of custom reporting applications. Reports are created as RDL files.[50]

Reports can be designed using recent versions of Microsoft Visual Studio (Visual Studio.NET 2003, 2005, and 2008)[51] with Business Intelligence Development Studio, installed or with the included Report Builder. 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.

Notification Services


edit

Originally introduced as a post-release add-on for SQL Server 2000,[55] Notification Services was bundled as part of the Microsoft SQL Server platform for the first and only time with SQL Server 2005.[56][57] SQL Server Notification Services is a mechanism for generating data-driven notifications, which are sent to Notification Services subscribers. A subscriber registers for a specific event or transaction (which is registered on the database server as a trigger); when the event occurs, Notification Services can use one of three methods to send a message to the subscriber informing about the occurrence of the event. These methods include SMTP, SOAP, or by writing to a file in the filesystem.[58] Notification Services was discontinued by Microsoft with the release of SQL Server 2008 in August 2008, and is no longer an officially supported component of the SQL Server database platform.

Integration Services


edit

SQL Server Integration Services (SSIS) provides ETL capabilities for SQL Server for data import, data integration and data warehousing needs. Integration Services includes GUI tools to build workflows such as extracting data from various sources, querying data, transforming data—including aggregation, de-duplication, de-/normalization and merging of data—and then exporting the transformed data into destination databases or files.[59]

Full Text Search Service


edit

 

The SQL Server Full Text Search service architecture

SQL Server Full Text Search service is a specialized indexing and querying service for unstructured text stored in SQL Server databases. The full text search index can be created on any column with character based text data. It allows for words to be searched for in the text columns. While it can be performed with the SQL LIKE operator, using SQL Server Full Text Search service can be more efficient. Full allows for inexact matching of the source string, indicated by a Rank value which can range from 0 to 1000—a higher rank means a more accurate match. It also allows linguistic matching («inflectional search»), i.e., linguistic variants of a word (such as a verb in a different tense) will also be a match for a given word (but with a lower rank than an exact match). Proximity searches are also supported, i.e., if the words searched for do not occur in the sequence they are specified in the query but are near each other, they are also considered a match. T-SQL exposes special operators that can be used to access the FTS capabilities.[60][61]

The Full Text Search engine is divided into two processes: the Filter Daemon process (msftefd.exe) and the Search process (msftesql.exe). These processes interact with the SQL Server. The Search process includes the indexer (that creates the full text indexes) and the full text query processor. The indexer scans through text columns in the database. It can also index through binary columns, and use iFilters to extract meaningful text from the binary blob (for example, when a Microsoft Word document is stored as an unstructured binary file in a database). The iFilters are hosted by the Filter Daemon process. Once the text is extracted, the Filter Daemon process breaks it up into a sequence of words and hands it over to the indexer. The indexer filters out noise words, i.e., words like A, And, etc., which occur frequently and are not useful for search. With the remaining words, an inverted index is created, associating each word with the columns they were found in. SQL Server itself includes a Gatherer component that monitors changes to tables and invokes the indexer in case of updates.[62]

When a full text query is received by the SQL Server query processor, it is handed over to the FTS query processor in the Search process. The FTS query processor breaks up the query into the constituent words, filters out the noise words, and uses an inbuilt thesaurus to find out the linguistic variants for each word. The words are then queried against the inverted index and a rank of their accurateness is computed. The results are returned to the client via the SQL Server process.[62]

SQLCMD is a command line application that comes with Microsoft SQL Server, and exposes the management features of SQL Server. It allows SQL queries to be written and executed from the command prompt. It can also act as a scripting language to create and run a set of SQL statements as a script. Such scripts are stored as a .sql file, and are used either for management of databases or to create the database schema during the deployment of a database.

SQLCMD was introduced with SQL Server 2005 and has continued through SQL Server versions 2008, 2008 R2, 2012, 2014, 2016 and 2019. 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.

Microsoft Visual Studio includes native support for data programming with Microsoft SQL Server. It can be used to write and debug code to be executed by SQL CLR. It also includes a data designer that can be used to graphically create, view or edit database schemas. Queries can be created either visually or using code. SSMS 2008 onwards, provides intellisense for SQL queries as well.

SQL Server Management Studio


edit

SQL Server Management Studio is a GUI tool included with SQL Server 2005 and later for configuring, managing, and administering all components within Microsoft SQL Server. The tool includes both script editors and graphical tools that work with objects and features of the server.[63] SQL Server Management Studio replaces Enterprise Manager as the primary management interface for Microsoft SQL Server since SQL Server 2005. A version of SQL Server Management Studio is also available for SQL Server Express Edition, for which it is known as SQL Server Management Studio Express (SSMSE).[64]

A central feature of SQL Server Management Studio is the Object Explorer, which allows the user to browse, select, and act upon any of the objects within the server.[65] It can be used to visually observe and analyze query plans and optimize the database performance, among others.[66] SQL Server Management Studio can also be used to create a new database, alter any existing database schema by adding or modifying tables and indexes, or analyze performance. It includes the query windows which provide a GUI based interface to write and execute queries.[11]

Azure Data Studio is a cross platform query editor available as an optional download. The tool allows users to write queries; export query results; commit SQL scripts to Git repositories and perform basic server diagnostics. Azure Data Studio supports Windows, Mac and Linux systems.[67]

It was released to General Availability in September 2018. Prior to release the preview version of the application was known as SQL Server Operations Studio.

Business Intelligence Development Studio


edit

Business Intelligence Development Studio (BIDS) is the IDE from Microsoft used for developing data analysis and Business Intelligence solutions utilizing the Microsoft SQL Server Analysis Services, Reporting Services and Integration Services. 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).[68] For SQL Server 2012 and later, this IDE has been renamed SQL Server Data Tools (SSDT).

  • Comparison of relational database management systems
  • Comparison of object–relational database management systems
  • Comparison of data modeling tools
  • List of relational database management systems
  • XLeratorDB
  1. ^ «Explore SQL Server 2022 capabilities». Retrieved January 6, 2023.
  2. ^ Latest updates and version history for SQL Server
  3. ^ «Download Microsoft SQL Server 2008 R2». Microsoft Evaluation Center. Microsoft Corporation. Retrieved July 18, 2011.
  4. ^ «Installation guidance for SQL Server on Linux». microsoft.com. December 21, 2017. Retrieved February 1, 2018.
  5. ^ «What’s new in SQL Server 2019 (15.x)». microsoft.com/. April 6, 2022. Retrieved May 11, 2022.
  6. ^ «SQL Server end of support options». learn.microsoft.com. learn.microsoft.com. January 2, 2025. Retrieved January 18, 2025.
  7. ^ «Requirements for Installing SQL Server 2016». docs.microsoft.com. msdn.microsoft.com. May 2, 2016. Retrieved July 28, 2016.
  8. ^ «SQL Server 2022 release notes». learn.microsoft.com. Retrieved February 14, 2023.
  9. ^ «Compare Editions». SQL Server homepage. Microsoft Corporation. Retrieved December 3, 2007.
  10. ^ a b c d e f g h i Kalen Delaney (2007). Inside Microsoft SQL Server 2005: The Storage Engine. Microsoft Press. ISBN 978-0-7356-2105-3.
  11. ^ «SQL Server 2008: Editions». Microsoft. Retrieved July 21, 2011.
  12. ^ «Database System | Performance & Scalability | SQL Server 2012 Business Intelligence Editions». Microsoft.com. Retrieved June 15, 2013.
  13. ^ a b SQL Server 2012 Licensing Datasheet and FAQ (March 2012)
  14. ^ «SQL Server 2008 R2 Express Database Size Limit Increased to 10GB». Retrieved April 23, 2010.
  15. ^ «What’s up with SQL Server 2008 Express editions». Retrieved August 15, 2008.
  16. ^ «Developer Edition». SQL Server home. Microsoft Corporation. Retrieved July 18, 2011.
  17. ^ «SQL Server 2008 Trial Software». Microsoft. Retrieved March 26, 2009.
  18. ^ «Microsoft SQL Server 2008: Fast Track Data Warehouse». Microsoft. Retrieved March 26, 2009.
  19. ^ «SQL Server Express LocalDB». SQL Server. Microsoft Docs. Retrieved August 2, 2021.
  20. ^ «Introducing LocalDB, an improved SQL Express». SQL Server Express WebLog. Microsoft Docs. July 12, 2011. Retrieved August 2, 2021.
  21. ^ «Microsoft Analytics Platform System». Microsoft. Retrieved April 29, 2015.
  22. ^ Choosing an Edition of SQL Server 2000
  23. ^ a b «IT Pro».
  24. ^ Features Supported by the Editions of SQL Server 2000[usurped]
  25. ^ «Choosing a StreamInsight Edition». MSDN. Microsoft Corporation. Retrieved July 18, 2011.
  26. ^ «Chapter 3 — Choosing an Edition of SQL Server 2000». November 1, 2010. Archived from the original on November 1, 2010. Retrieved November 4, 2022.
  27. ^ SQL Server 2000 — Downloads[usurped]
  28. ^ SQL Server 2000 Product Documentation[usurped]
  29. ^ «Pages and Extents». Retrieved December 2, 2007.
  30. ^ «Table and Index Organization». Retrieved December 2, 2007.
  31. ^ «Buffer Management». Retrieved December 2, 2007.
  32. ^ «Single SQL Statement Processing». Retrieved December 3, 2007.
  33. ^ «Stored Procedure Basics». Retrieved December 3, 2007.
  34. ^ «Transact-SQL Reference». Retrieved December 3, 2007.
  35. ^ «Features of SQL Server Native Client». Retrieved December 3, 2007.
  36. ^ «Available Today: Preview Release of the SQL Server ODBC Driver for Linux». SQL Server Team Blog. November 28, 2011. Retrieved June 15, 2013.
  37. ^ a b «Overview of CLR integration». Retrieved December 3, 2007.
  38. ^ «XML Support in SQL Server». Retrieved September 5, 2008.
  39. ^ «What is SQL Server Machine Learning Services». SQL Server homepage. Microsoft Corporation. Retrieved April 10, 2018.
  40. ^ «Introducing Service Broker». Retrieved December 3, 2007.
  41. ^ a b c Klaus Aschenbrenner (2011). «Introducing Service Broker». Pro SQL Server 2008 Service Broker (1st ed.). Vienna: Apress. pp. 17–31. ISBN 978-1-4302-0865-5. Retrieved December 15, 2019.
  42. ^ «Types of Replication Overview». Retrieved December 3, 2007.
  43. ^ «Transactional Replication Overview». Retrieved December 3, 2007.
  44. ^ «Merge Replication Overview». Retrieved December 3, 2007.
  45. ^ «Snapshot replication Overview». Retrieved December 3, 2007.
  46. ^ «SSAS Entity Framework Provider». Archived from the original on September 29, 2011. Retrieved September 29, 2011.
  47. ^ «Analysis Services Architecture». Retrieved December 3, 2007.
  48. ^ «Data Mining Concepts». Retrieved December 3, 2007.
  49. ^ «SQL Server Reporting Services». Retrieved December 3, 2007.
  50. ^ «Cannot open a SQL Reporting Services .rptproj file | Microsoft Connect». Connect.microsoft.com. Archived from the original on February 3, 2012. Retrieved September 4, 2011.
  51. ^ MSDN Library: Reporting Services Render Method
  52. ^ Device Information Settings
  53. ^ Image Device Information Settings
  54. ^ «An Introduction to SQL Server Notification Services». September 3, 2002. Retrieved November 14, 2008.
  55. ^ «SQL Server Notification Services Removed from SQL Server 2008». Archived from the original on October 16, 2008. Retrieved September 17, 2008.
  56. ^ «Discontinued Functionality in SQL Server 2008 Reporting Services». Retrieved September 17, 2008.
  57. ^ «Introducing SQL Server Notification Services». Retrieved December 3, 2007.
  58. ^ «Integration Services Overview». Retrieved December 3, 2007.
  59. ^ «Introduction to Full-Text Search». November 19, 2007. Retrieved December 3, 2007.
  60. ^ «Querying SQL Server using Full-Text Search». Retrieved December 3, 2007.
  61. ^ a b «Full-Text Search Architecture». Retrieved December 3, 2007.
  62. ^ «MSDN: Introducing SQL Server Management Studio». Msdn.microsoft.com. Retrieved September 4, 2011.
  63. ^ «SQL Server Management Studio Express». Microsoft.com. April 18, 2006. Retrieved September 4, 2011.
  64. ^ «MSDN: Using Object Explorer». Msdn.microsoft.com. Retrieved September 4, 2011.
  65. ^ «SQL Server 2005 Management Tools». Sqlmag.com. July 19, 2005. Retrieved September 4, 2011.
  66. ^ «What is Microsoft SQL Operations Studio (preview)?». docs.microsoft.com. Retrieved January 19, 2018.
  67. ^ «Introducing Business Intelligence Development Studio». Retrieved December 3, 2007.
  • Lance Delano, Rajesh George et al. (2005). Wrox’s SQL Server 2005 Express Edition Starter Kit (Programmer to Programmer). Microsoft Press. ISBN 0-7645-8923-7.
  • Delaney, Kalen, et al. (2007). Inside SQL Server 2005: Query Tuning and Optimization. Microsoft Press. ISBN 0-7356-2196-9.
  • Ben-Gan, Itzik, et al. (2006). Inside Microsoft SQL Server 2005: T-SQL Programming. Microsoft Press. ISBN 0-7356-2197-7.
  • Klaus Elk (2018). SQL Server with C#. ISBN 1-7203-5867-2.
  • Official website
  • 2nd official website at Microsoft TechNet

What does the sqlservr.exe file do?

The sqlservr.exe process is also known as SQL Server Windows NT (Version — 64 Bit) or, as the case may be, Microsoft SQL Server Desktop Engine (UPSWSDBSERVER) and is a part of Microsoft SQL Server (Version 2005 Express Edition, 2008 Database Engine, 2005, 2016 LocalDB, 2005 Tools Express, 2000) or, as the case may be, SQL Server (SQLEXPRESS). This software is produced by Microsoft (www.microsoft.com). An outdated or faulty version of sqlservr.exe can cause problems for your computer, ranging from slowness to error messages like these:

  • SQL Server Windows NT has stopped working. Windows is checking for a solution to the problem… (Windows 11, 10, 7)
  • SQL Server Windows NT has stopped working. A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available. (Windows 11, 10, 7)
  • sqlservr.exe has encountered a problem and needs to close.
  • Access violation at address FFFFFFFF in module sqlservr.exe. Read of address 00000000.


Special Offer

sqlservr.exe is not part of Windows, but it is important nonetheless. The file sqlservr.exe is found in a subdirectory of «C:\Program Files».
Frequently occurring are file sizes such as 13,179,660 bytes (66% of all these files), 7,520,337 bytes as well as 24 other variants.
It is the service «MSSQL$MOTORMSVR2».


Sqlservr.exe does not come from Microsoft and is not part of the operating system. The program executes in the background, and can only be terminated using Windows Task Manager. The file has a digital signature. This confirms that the producer has been registered with a certificate authority.
Sqlservr.exe is capable of track other applications as well as transmit information from computer to the Internet.
For this reason, 34% of all experts consider this file to be a possible threat. The probability that it can cause harm is high.

  • A sqlservr.exe file has a 68% certainty of being dangerous if it is found in a subdirectory of C:\Windows. In this case, the file size is usually 15,360 bytes (66% of all these files) or, as the case may be, 13,179,660 bytes.
    This process does not have a visible window, and does not appear on the taskbar. It does not come from Microsoft and is not part of the operating system. This file can be found in the Windows folder; however, it is not a Windows system file. There is no embedded description in this file. These days, this is rather unusual This particular software is initiated as part of Windows start-up (Registry: win.ini).

    Sqlservr.exe is capable of connect to the Internet as well as monitor other applications.

  • A sqlservr.exe file has a 44% certainty of being dangerous if it is found in in a subdirectory of the «My Documents» folder. In this case, the file size is usually 372,416 bytes.
    This sqlservr program can initiate a network connection—either to the Internet or on your LAN. This sqlservr.exe process does not have a visible window, and does not appear on the taskbar. The file is no part of Microsoft Windows. The producer of the file is registered with a certificate authority. This confirms the genuineness of the file.
    Sqlservr.exe is capable of monitor other applications.

If you see this file on your hard drive or in Windows Task Manager, please make sure that it is not a malicious variant. It’s a fact that many trojans try to cloak their true identity by calling themselves sqlservr.exe. With the above information or by using tools like Security Task Manager you can determine if, in your case, the file is an undesirable variant.

What do other computer users say about sqlservr?

Microsoft SQL Server (further information…)
Alexander Pichlbauer
Microsoft SQL Server service. Not dangerous
Dimitris Kavakopoulos
MSSQL Server
sql server service
Microsoft SQL Server service. Can eat up lots of memory due to a bug where it does not release resources correctly. Workarounds are available on the net.
Mr Know It All

Summary:

32 users consider sqlservr.exe essential and should not be removed.
6 users consider it harmless.

For this reason, 6 users have already removed sqlservr.exe.
source: file.net

How to uninstall Microsoft SQL Server or SQL Server

To remove SQL Server Windows NT from your computer, please follow the manual instructions below.

  1. Click the Windows Start Button. You can find it in the lower-left corner of the taskbar.
  2. Type ‘uninstall‘.
  3. Click Add or remove programs.
  4. Now locate Microsoft SQL Server or SQL Server in the list of displayed applications.
  5. Click the program, and then click Uninstall.

How to check if sqlservr.exe (SQL Server Windows NT) was uninstalled completely

After uninstalling, restart your computer. Then open Windows Explorer and check if a folder with the software name still exists under C:\Program Files. Also, check the Registry for remnants of SQL Server Windows NT. To do this, start Regedit, then look under HKEY_LOCAL_MACHINE > Software for: SQL Server Windows NT or the name of the producer. Keep in mind that only a computer professional should delete entries in the Windows Registry directly.

Microsoft SQL Server

Тип

Реляционная СУБД

Разработчик

Sybase,
Ashton-Tate,
Microsoft

Написана на

C, C++, C#

Операционная система

UNIX,
OS/2,
Windows

Последняя версия

SQL Server 2014 (22 мая 2014 год)

Лицензия

Microsoft EULA

Сайт

microsoft.com/sqlserver/en/us/default.aspx

 Microsoft SQL Server на Викискладе

Microsoft SQL Server — система управления реляционными базами данных (РСУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.

История выпусков SQL Server

Версия Год Название Кодовое имя
1.0 (OS/2) 1989 SQL Server 1.0 (16 bit) Ashton-Tate / MS SQL Server
1.1 (OS/2) 1991 SQL Server 1.1 (16 bit)
4.21 (WinNT) 1993 SQL Server 4.21 SQLNT
6.0 1995 SQL Server 6.0 SQL95
6.5 1996 SQL Server 6.5 Hydra
7.0 1998 SQL Server 7.0 Sphinx
1999 SQL Server 7.0 OLAP Tools Palato mania
8.0 2000 SQL Server 2000 Shiloh
8.0 2003 SQL Server 2000 64-bit Liberty
9.0 2005 SQL Server 2005 Yukon
10.0 2008 SQL Server 2008 Katmai
10.25 2010 Azure SQL DB Cloud Database or CloudDB
10.50 2010 SQL Server 2008 R2 Kilimanjaro (aka KJ)
11.0 2012 SQL Server 2012 Denali
12.0 2014 SQL Server 2014 SQL14
14 2016 SQL Server 2016

Содержание

  • 1 Предыстория (по 1986)
  • 2 Первые шаги (1985—1987)
  • 3 SQL Server 1.0 (1988—1989)
    • 3.1 Разработка
    • 3.2 Бета-версии
    • 3.3 Выход
  • 4 SQL Server 1.1 (1990)
  • 5 SQL Server 1.11 (1991)
  • 6 SQL Server 4.2 (1991—1992)
  • 7 SQL Server for Windows NT (1992—1993)
  • 8 SQL Server 6.0 (1993—1995)
  • 9 SQL Server 6.5 (1995—1996)
  • 10 SQL Server 7.0 (1996—1998)
    • 10.1 Разработка
    • 10.2 Бета-версии
    • 10.3 Выход
  • 11 SQL Server 2000 (1998—2000)
  • 12 SQL Server 2005 (2000—2005)
  • 13 SQL Server 2008 (2005—2008)
  • 14 SQL Server 2008 R2 (2008—2010)
    • 14.1 Разработка
    • 14.2 Бета-версии
    • 14.3 Выход
  • 15 SQL Server 2012 (2010—2012)
    • 15.1 Разработка
    • 15.2 Бета-версии
    • 15.3 Выход
  • 16 SQL Server 2014
  • 17 SQL Server 2016
  • 18 Примечания
  • 19 Литература
  • 20 Ссылки

Предыстория (по 1986)[править | править вики-текст]

Развитие клиент-серверных технологий во второй половине 80-х было обусловлено развитием двух ключевых направлений, активно разрабатываемых с конца 70-х годов: персональных компьютеров с одной стороны, и компьютерных сетей — с другой. Долгое время СУБД были доступны лишь для мэйнфреймов, и лишь благодаря росту производительности процессоров для домашних компьютеров и мини-ЭВМ разработчики СУБД (как, например, Oracle) начали создавать соответствующие версии своих продуктов. Одной из первых СУРБД для ПК стала Oracle v3, выпущенная в 1983 году. На тот момент немногочисленные владельцы ПК использовали их в основном для разработки приложений и тестирования[1].

Одним из ключевых этапов в развитии СУБД стал 1986 год. К этому времени появилось еще несколько компаний-разработчиков СУБД, одной из самых заметных из них стала компания Sybase, основанная двумя годами ранее. К 1986 году Sybase начала комплектовать интеллектуальные рабочие станции (как правило, разработки Sun Microsystems или Apollo Computer) с серверами базы данных (разработанных, например, Oracle). При этом сама клиент-серверная технология сделала возможным отделение модулей обработки информации (т. н. back end) от модулей интерфейса (т. н. front end). Учтя постоянный рост проникновения компьютерных сетей, поставщики решений перешли к задачам распределения остальных задач (например, форматирование отчётов, проверка данных и т. д.) среди рабочих станций сети, оставив серверу выполнять лишь задачи, требующие централизованного решения (хранение и защита данных, оптимизация потока выполнения запросов и т. д.)[1].

Существенную роль в переходе от иерархических БД к реляционным сыграли и сами разработчики СУБД. Так, IBM к этому времени уже постепенно переводила своих клиентов с иерархических СУБД (как, например, IMS) на СУРДБ DB2 и SQL/DS. Новые СУБД хотя и уступали в скорости IMS, но превосходили её в легкости программирования и обслуживания. Поставки DB2 быстро превзошли ожидания, захватив значительную долю рынка в первый же год продаж. В сентябре 1986 года Gupta Technologies представила свою разработку SQL Base, заключающую в себе концепт сервера базы данных для ПК, объединённых в сеть. Также Gupta одной из первых реализовала прозрачный доступ к мэйнфреймам IBM с запущенными на них DB2, предоставив прямой доступ к хранившимся там данным без необходимости скачивания файлов или таблиц на рабочую станцию пользователя[1].

К концу 1986 года использование языка SQL в качестве основного для работы с данными в СУБД стало практически повсеместным. IBM, Oracle, Sybase и Gupta использовали схожий синтаксис языка SQL для отправки сообщений от клиентской части СУБД (front end) к серверной (back end), что позволяло сочетать клиентские и серверные части разных производителей. В том же году Американский национальный институт стандартов утвердил версию языка SQL в качестве международного стандарта обработки данных, что поставило под угрозу благополучие СУБД, не обладавших поддержкой языка SQL. Так, например, компания Cullinet хотя и анонсировала поддержку языка SQL в своих СУБД для миникомпьютеров, но из-за задержки в её реализации потеряла свою долю рынка СУБД, уступив IBM и её продукту DB2[1].

Первые шаги (1985—1987)[править | править вики-текст]

К этому моменту все имевшиеся у Microsoft разработки были ориентированы исключительно на домашние компьютеры, а её самым прибыльным продуктом являлась операционная система MS-DOS. Клиент-серверная обработка данных на персональных компьютерах к 1986 году только набрала популярность и по этой причине лежала вне интересов компании [источник не указан 1364 дня]. Годом ранее, в июне 1985 года, IBM и Microsoft подписали соглашение о совместной разработке (англ. Joint Development Agreement, сокр. JDA), содержащее лишь общие положения о будущей кооперации. В августе 1985 года JDA был дополнен документом под кодовым обозначением «Этап II» (англ. Phase II), содержавшим в себе планы по разработке OS/2. На тот момент продукт указывался как CP/DOS (англ. Control Program/DOS в соответствии с политикой именования продуктов IBM для мэйнфреймов, Microsoft же указывала продукт как DOS 5. В конце 1986 — начале 1987 года проект был официально переименован в OS/2 для придания схожести названия с линейкой компьютеров IBM PS/2[2].

2 апреля 1987 года OS/2 была анонсирована (версия 1.0 согласно пресс-релизу должна была выйти в первом квартале 1988 года, но в конечном итоге была выпущена в декабре 1987 года)[2]. Согласно заявленным в апреле 1987 года планам, IBM планировала добавить функциональность СУБД в OS/2, причём с использованием концепции, разработанной компанией Gupta Technologies, и заключающуюся в отправке персональным компьютером SQL-запросов к хосту через сетевые маршрутизаторы и возврате в качестве ответа лишь результатов выполнения запроса. Несмотря на то, что на протяжении уже нескольких лет разработчики ОС включали некоторые функции СУБД в свои продукты, идея IBM о реализации полноценной СУБД, встроенной в ОС, заставила многих менеджеров пересмотреть свою точку зрения на ПК как подходящую платформу для реализации многопользовательских приложений и концепции клиент-серверной технологии[1].

Вскоре после объявления, IBM анонсировало ещё и специальную, усовершенствованную версию этой ОС — OS/2 Extended Edition. Эта версия должна была комплектоваться с СУБД OS/2 Database Manager и несколькими другими сетевыми и серверными решениями. И хотя Database Manager был более ориентирован на мейнфреймы, а не на персональные компьютеры, тем не менее, на базе их общей разработки IBM могла предложить покупателям более выгодный продукт, нежели конкуренты. Необходимость в собственных разработках в области управления базами данных стала для Microsoft очевидной и весьма актуальной.

Для решения этой проблемы Microsoft обратилась к Sybase, которая на тот момент ещё не выпустила коммерческую версию своего продукта DataServer (это произошло чуть позже, в мае 1987 года и только для рабочих станций Sun под управлением UNIX). Причиной обращения было то, что предрелизная версия DataServer хоть и не была продуктом, рассчитанным на широкое применение, тем не менее за счёт реализации новых идей (клиент-серверной архитектуры, в частности) новая СУБД получила весьма неплохие отзывы. В результате подобного соглашения Microsoft получила бы эксклюзивные права на версию DataServer для OS/2 и всех ОС, разработанных самой Microsoft, а Sybase помимо роялти от Microsoft получила бы доступ к части рынка, занимаемого продуктами Microsoft (в том числе и новой OS/2). Поскольку производительность домашних ПК невысока, то Sybase рассматривала данный сегмент рынка как основу для последующих продаж своего продукта для более производительных систем на базе ОС UNIX, тем более, что Microsoft благодаря своей налаженной сети дистрибьюции могла обеспечить значительно более высокие продажи DataServer, чем сама Sybase. 27 марта 1987 года президент Microsoft Джон Ширли (англ.) и один из основателей Sybase Марк Хофманн (англ.) (являвшийся на тот момент и президентом компании) подписали договор.

На тот момент львиную долю рынка СУБД для ПК занимала компания Ashton-Tate со своей dBASE. Поскольку DataServer обладал несколько иными возможностями по сравнению с dBASE, то данные продукты в качестве потенциальных конкурентов не рассматривались. Это позволило Microsoft заключить сделку с Ashton-Tate, согласно которой последняя должна была заняться продвижением DataServer среди сообщества пользователей её dBASE.

SQL Server 1.0 (1988—1989)[править | править вики-текст]

Разработка[править | править вики-текст]

13 января 1988 года в Нью-Йорке состоялась пресс-конференция, на которой было объявлено о союзе Ashton-Tate и Microsoft для разработки нового продукта, получившего название Ashton-Tate/Microsoft SQL Server. В этот же день был выпущен совместный пресс-релиз с анонсом нового продукта, основанного на разработках Sybase. Предварительной датой выхода продукта указывалась вторая половина 1988 года[3]. Что касается ролей компаний в разработке и продвижении продукта, то согласно пресс-релизу Ashton-Tate должна была отвечать за контроль разработки в области баз данных (а также предоставить собственные разработки в этой области), а Microsoft же была отведена аналогичная роль в области технологий для работы в локальных сетях. После выхода SQL Server Ashton-Tate должна была получить лицензию на продукт у Microsoft и заняться розничными продажами по всему миру (как в виде отдельного продукта, так и в комплекте с будущими версиями dBASE), а Microsoft — поставлять продукт для OEM-производителей аппаратного обеспечения[4].

SQL Server уже сразу позиционировался как реляционная СУБД с поддержкой языка SQL и возможностью работы по локальной сети. Кроме того, была заявлена поддержка совместной работы SQL Server с dBASE или любым другим ПО для рабочей станции. Большой упор делался на клиент-серверную архитектуру продукта, благодаря которой должны были разделиться функции клиента (англ. front-end), в котором пользователи будет видеть нужные ему данные, и сервера (англ. back-end), который эти данные будет хранить. Также Ashton-Tate и Microsoft заявляли о «трёх главных новшествах в области технологий реляционных баз данных»: поддержка хранимых процедур, компилируемых SQL Server и благодаря которым будет «значительно ускорена» выборка данных, а также поддерживаться целостность данных при работе в многопользовательской среде. Вторым новшеством была заявлена постоянная доступность ядра (не прерывая действий пользователей) для административных задач, таких как создание резервных копий данных (бэкап) и их восстановлений. Третьим новшеством была заявлена поддержка технологии, выполняющей роль моста между системами обработки онлайн-транзакций и базами данных на ПК. Сам же SQL Server должен был быть основан на архитектуре «открытой платформы», что дало бы возможность сторонним разработчикам ПО создавать прикладные программы, использующие сетевые и многопользовательские возможности SQL Server. При этом Билл Гейтс, на тот момент являвшийся председателем совета директоров Microsoft, назвал сеть «самой важной вычислительной платформой для новых и инновационных прикладных программ». Запускаться SQL Server должен был на любых сетевых серверах на базе OS/2, включая Microsoft OS/2 LAN Manaqer и IBM LAN Server, а взаимодействовать должен был с рабочими станциями под управлением OS/2, PC-DOS или MS-DOS[4].

Ashton-Tate рассматривала SQL Server как возможность завоевания рынка СУБД для домашних компьютеров, не отказываясь при этом от дальнейшего развития dBASE. При этом оба продукта должны были предлагаться и корпоративным заказчикам. Microsoft рассчитывала на продвижение SQL Server как основу транзакционно-ориентированных систем, включая различные системы учёта, библиотеки документов, системы управления исследованиями и другие. Для продвижения нового продукта обеими компаниями был намечен ряд различных семинаров и конференций, первой из которых стала конференция Microsoft Advanced Network Development Conference, назначенная на 30 марта-1 апреля в Сан-Франциско и 13-15 апреля в Нью-Йорке[4].

Sybase же, несмотря на то, что её название в наименовании нового продукта не фигурировало, являлась по сути главным разработчиком из всей троицы компаний. Вклад же Microsoft, напротив, был весьма невелик. В Sybase уже была сформирована небольшая команда, задачей которой было портирование движка DataServer на OS/2, а также перенос клиентского интерфейса DB-Library на MS-DOS и OS/2. Microsoft же отвечала за тестирование и проект-менеджмент, а также разработала несколько дополнительных утилит, облегчавших установку и администрирование SQL Server 1.0.

Новый продукт задумывался как порт Sybase DataServer на OS/2, продажами которого должны были заняться как Microsoft, так и Ashton-Tate. Параллельно разрабатываемая Ashton-Tate новая версия dBASE IV также должны была быть доступной в серверном варианте, что позволило бы использовать язык и средства разработки dBASE IV для создания клиентских приложений, способных работать с новым SQL Server. Новая клиент-серверная модель должна была дать возможность dBASE выйти на новый уровень производительности, предоставив возможность работать с данными гораздо большему количеству пользователей, чем это могла позволить распространённая на тот момент модель работы с общими файлами.

Бета-версии[править | править вики-текст]

Бета-версия Ashton-Tate/Microsoft SQL Server была выпущена 31 октября 1988 года в составе набора инструментов для сетевой разработки SQL Server Network Developer’s Kit (сокр. MDK). Данный набор содержал предрелизную версию SQL Server, документацию, программные библиотеки прикладного интерфейса для SQL Server, а также Microsoft OS/2 LAN Manager. Программные библиотеки были предназначены для компиляции (компилятором языка Си от самой Microsoft) MS-DOS-, Windows- или OS/2-приложений, предназначенных для работы с SQL Server по локальной сети. Набор продавался исключительно для разработки ПО, но при этом к нему прилагался специальный купон, позволявший покупателям обновить версию SQL Server до полноценной после её выхода[5].

MDK продавался напрямую Ashton-Tate на территории США и Канады (а также Microsoft на территории США) по сниженной цене. Microsoft при этом предлагала существенную скидку разработчикам, которые уже приобрели набор инструментов Microsoft OS/2 Software Developer’s Kit или посетили одну из конференций Microsoft Advanced Network Development Conference. В свою очередь, Ashton-Tate также предлагала аналогичную скидку разработчикам, посетившим в 1988 году конференцию Ashton-Tate Developer’s Conference[5].

MDK обладал большим количеством ошибок и недостатков, тем не менее он работал на домашних компьютерах (с процессором, например, Intel 80286 с частотой 10МГц, 6 Мб оперативной памяти и жёстким диском объёмом 50 Мб).

Выход[править | править вики-текст]

29 апреля 1989 года началась официальная продажа Ashton-Tate/Microsoft SQL Server 1.0. Члены команды, занимавшейся SQL Server, на специальном мероприятии по сертификации команд, проходившем в Торрансе, надели майки с надписью «Ashton-Tate SQL Server: сделал вовремя и горжусь этим» (англ. Ashton-Tate SQL Server: On-Time and Proud of it)[3].

Тесты журнала Infoworld показывали, что Ashton-Tate/Microsoft SQL Server 1.0 даже при работе в сети с 24 рабочими станциями справлялся с нагрузкой быстрее, чем обычная база данных с многопользовательским режимом (наиболее распространённый тип БД на тот момент), а при использовании хранимых процедур удавалось достичь скорости отклика менее двух секунд. Также журналисты отмечали лёгкость и удобство написания тестового кода[источник не указан 1367 дней].

Профильная пресса отзывалась достаточно положительно о новом продукте, тем не менее продажи были весьма невысокими. Кроме того, разочаровывали и продажи OS/2, поскольку многие пользователи не пожелали переходить с MS-DOS на OS/2. Картину довершала возможность создавать приложения для SQL Server лишь на языке Си, поскольку выход обещанного dBASE IV Server Edition от Ashton-Tate был отложен, и аналогичная ситуация была и со сторонними разработчиками инструментов для SQL Server[источник не указан 1387 дней]. Кроме того, свою роль сыграла и конкуренция: на рынке СУБД для ПК-платформ к этому времени уже существовали XDB от компании XDB, SQLBase от Gupta Technologies и OS/2 Extended Edition (в однопользовательском режиме) от IBM[3].

К 1990 году ситуация лучше не стала. Планы по совместному продвижению продукта, в результате чего SQL Server должен был завоевать позиции в большом сообществе dBASE-разработчиков, провалились. Несмотря на перенос сроков выхода десктопной версии dBASE IV (вышла в 1989 году), она всё же содержала большое количество ошибок, благодаря чему заслужила дурную репутацию. Серверная версия (Server Edition), которая должна была упростить разработку высокопроизводительных приложений для SQL Server так и не вышла. Разработка приложений в dBASE для SQL Server стала представлять собой проблему, поскольку разработка однопользовательского запись-ориентированного приложения кардинально отличалась от разработки многопользовательских приложений, для которых нужно ещё было решать возникающие проблемы с параллельным выполнением задач, корректной параллельной работой с данными, а также невысокой пропускной способностью тогдашних локальных сетей. Первые попытки соединить инструменты dBASE с SQL Server приводили к неэффективной совместной работе этих продуктов (так, например, построчный запрос данных превращался в проблему, а курсоров с произвольным переходом по строкам тогда ещё не существовало).

В результате, Ashton-Tate, двумя годами ранее занимавшая лидирующие позиции на рынке СУБД для домашних ПК, ныне была вынуждена бороться за своё существование, что в свою очередь вынудило её вновь переключиться на свой основной продукт dBASE. Microsoft же тем временем запустила в продажу OS/2 LAN Manager под собственной торговой маркой (тогда как изначально планировалось лишь поставлять OEM-версии), и ей необходимо было, чтобы SQL Server помог заложить фундамент для разработки клиент-серверных инструментов, способных работать с Microsoft LAN Manager и Microsoft OS/2. Всё это привело к принятию решения о прекращении совместного продвижения SQL Server, после чего данный продукт был немного изменён и представлен уже как Microsoft SQL Server.

SQL Server 1.1 (1990)[править | править вики-текст]

Ещё до выхода версии 1.1 официальные представители Microsoft (в отличие от независимых аналитиков) предсказывали резкий рост продаж новой версии продукта, однако их надежды не оправдались. Microsoft SQL Server 1.1 вышел в августе 1990 года как обновление и замена для Ashton-Tate/Microsoft SQL Server 1.0, продававшегося в 1989 году[6]. На момент выхода версии 1.1 Microsoft всё ещё не рассматривала SQL Server как продукт, способный приносить прибыль сам по себе — именно поэтому он являлся лишь одним из приложений к LAN Manager (Microsoft даже начала создавать для партнёров каналы продаж обоих продуктов, хотя ранее никогда не занималась продажами в розницу решений для ЛВС). Положительную роль должен был сыграть скорый выход клиентских приложений (англ. front ends) от Borland и DataEase International (англ.), тем более, что в течение года ожидалась ещё несколько подобных решений (на тот момент их условно называли «вторым поколением»). Но при этом, не менее важная часть SQL Server — пакет устанавливаемых протоколов — всё ещё находился в разработке. TCP/IP-версия библиотеки Net-Library, первая из данного пакета, всё ещё находилась на этапе альфа-тестирования, а её DEC-NET- и SPX-версии вообще находились на этапе разработке без каких-либо объявленных сроков выхода. Кроме того, очевидная сложность клиент-серверных вычислений и ещё продолжающаяся эволюция серверных и клиентских приложений привели к тому, что первые продажи SQL Server 1.1 были весьма невысокими[7].

Возможности SQL Server 1.1, в целом, были аналогичны возможностям версии 1.0, но при этом новая версия содержала множество исправлений ошибок, проявлявшихся в версии 1.0. Кроме того, SQL Server 1.1 поддерживал обмен информацией ещё и с новой клиентской платформой — Microsoft Windows 3.0, поставки которой начались в мае 1990 года и вызывали ощутимую реакцию в компьютерной индустрии. SQL Server 1.1 теперь можно было значительно удобнее настраивать для совместной работы с LAN Manager, кроме того была усовершенствована установка продукта для работы с сетями Novell и в качестве отдельной системы разработки ПО. В комплект была включена библиотека Basic Library for SQL Server, представлявшая собой интерфейс между SQL Server и Microsoft Basic Professional Development System. Благодаря этой библиотеке была впервые добавлена поддержка этого языка[6].

Клиентская часть SQL Server 1.1 могла работать с новой версией DB-Library, интерфейса между клиентской частью и SQL Server, которая рассылалась некоторым разработчикам за месяц до выхода новой версии самого SQL Server. Новая версия DB-Library представляла собой практически полностью переписанный вариант предыдущей версии, благодаря чему она стала занимать лишь 40 Кбайт вместо прежних 80 Кб, оставляя больше памяти для DOS-приложений на клиентских системах (теперь разработчик получал 250 Кбайт для своего приложения вместо прежних 50 Кбайт, получаемых при использовании статических библиотек DB-Library, шедших в комплекте с SQL Server 1.0). Архитектура устанавливаемого протокола соединения в DB-Library теперь могла взаимодействовать с клиентами на DOS, Windows и OS/2, а также поддерживала доступ к Sybase SQL Server на других платформах. Впрочем, согласно информации от самих Microsoft и Sybase, эти драйверы всё ещё находились в стадии активной разработки[6].

Лицензирование SQL Server 1.1 предусматривало следующие варианты[6]:

  • полнофункциональная версия для 5 пользователей (с возможностью дополнительного увеличения числа пользователей до 10);
  • полнофункциональная версия для неограниченного количества пользователей;
  • обновление версии для 5 пользователей до версии для неограниченного количества пользователей;
  • обновление для версии SQL Server 1.0.

Возможность работы с SQL Server 1.1 клиентских систем разных производителей позволило последним продавать Microsoft SQL Server 1.1 наряду с собственными разработками. Первыми членами партнёрской программы SQL Business Partner Program стали Ashton-Tate, Blyth Software, Dataease International, Revelation Technologies и Sybase. Эти компании могли совершать продажи через незадолго до этого сформированную специальную сеть сбыта (англ. Microsoft Network Specialist channel), главной задачей которой до этого была продажа Microsoft LAN Manager, либо продавать конечным пользователям напрямую. Из этих пяти партнёров на момент выхода новой версии лишь Ashton-Tate могла предложить пользователям клиентскую часть для SQL Server — SQL Link for Framework III (всего же на рынке на тот момент было доступно около 40 подобных решений). Dataease International заявляла, что её решение Dataease SQL 1.0 станет доступным для покупки с 14 сентября того же года. По информации от Microsoft, оставшиеся два партнёра планировали выпустить свои решения (MS-SQL Server Bond for Advanced Revelation от Revelation Technologies и Omnis 5 от Blyth Software) в третьем квартале того же года. Выпуск Dbase IV 1.1 Server Edition производства Ashton-Tate, который должен был поддерживать и SQL Server, ожидался до конца 1990 года. В первой четверти 1991 года должны были выйти и серверные интерфейсы для поддержки прочих клиентских систем Dbase, а именно Arago Dbxl и Arago Quicksilver производства Wordtech Systems[6].

В третьей четверти 1990 года состоялся выход Access SQL (производства Software Products International) и Q+E (производства Pioneer Software), предназначенные для организации прямой связи между Microsoft Excel и SQL Server[6]. В частности, Q+E предоставлял возможность по сути всем Windows-приложениям (в том числе для версии Windows 3.0), способным работать с соединениями по технологии Dynamic Data Exchange, взаимодействовать и с SQL Server. С точки зрения пользователя, Q+E 2.5 позволял пользователям просматривать, объединять и сортировать информацию в базах данных без написания соответствующих SQL-запросов. А поскольку DDE-вызовы были встроены в само приложение Q+E, то пользователи, например, Excel могли выполнять последующую обработку данных[8].

К началу 1991 года уже несколько десятков сторонних программных продуктов могли работать с SQL Server. Значительную роль в этом сыграла поддержка со стороны SQL Server динамических библиотек, реализованных в Windows 3.0, причём в SQL Server была реализована эта поддержка практически с самого начала продаж Windows 3.0. Благодаря этому Microsoft SQL Server планомерно начал завоевывать позиции лидера среди СУБД, ориентированных на Windows-платформу. Тем не менее, несмотря на улучшение ситуации, всё ещё актуальной оставалась проблема с наличием инструментов, поддерживающих разработку на языках, отличных от Си.

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

В начале 1991 года Microsoft и Sybase достигли соглашения, согласно которому первая получала доступ к исходному коду SQL Server, но исключительно в режиме чтения (то есть без возможности вносить изменения). Это соглашение дало возможность команде, занимавшейся поддержкой продукта (т. н. англ. SQL Server group), читать код для лучшего понимания логики работы продукта в каких-либо неочевидных ситуациях. Помимо этого, Microsoft, воспользовавшись удобным случаем, собрала небольшую команду разработчиков, которые занялись изучением исходного кода SQL Server. Эта группа занималась построчным исследованием кода в тех частях программы, где было подозрение на наличие ошибки, и делала «виртуальные исправления ошибок» (поскольку возможности вносить изменения в код SQL Server у них по-прежнему не было). Однако, когда подобные отчеты с разбором исходного кода стали направляться в Sybase, то исправление критичных для Microsoft ошибок, стало происходить существенно быстрее. Спустя несколько месяцев в подобном режиме работы, в середине 1991 года Microsoft наконец-то получила возможность исправлять ошибки напрямую в коде. Но поскольку исходный код продукта по-прежнему контролировала Sybase, то все изменения в коде предварительно отправлялись ей на проверку. В итоге, разработчики Microsoft стали экспертами по коду SQL Server, что позволило с одной стороны улучшить его поддержку, а с другой — больше внимания уделять его качеству.

SQL Server 1.11 (1991)[править | править вики-текст]

Схема работы Microsoft SQL Server 1.11 в локальной сети Netware при помощи Microsoft Named Pipes API и стека протоколов Netware IPX/SPX

В 1991 году Microsoft выпустила промежуточную версию — SQL Server 1.11. Данный выпуск был обусловлен тем, что список пользователей к тому моменту уже значительно расширился. Несмотря на то, что клиент-серверная архитектура по-прежнему не была широко распространенной, клиенты всё же постепенно переходили на неё. Но, несмотря на положительную критику от профильной прессы, продажи SQL Server по-прежнему оставляли желать лучшего. По большей части это было связано с провалом OS/2. Пользователи домашних ПК вместо ожидаемого перехода с MS-DOS на OS/2 предпочитали переходить на Windows 3.0. Как следствие, продажи Windows 3.0 были весьма высоки. Чтобы подстегнуть продажи SQL Server и LAN Manager Microsoft объявила о начале специальной программы поддержки независимых производителей ПО, в рамках которой каждый разработчик, удовлетворяющий определённым требованиям, мог лицензировать урезанные версии этих продуктов (эти версии позволяли лишь функционировать стороннему ПО, т. н. англ. run-time versions) с 40 % скидкой и при этом получить полгода бесплатной поддержки, а также некоторые другие преимущества[9].

Как писал журнал InfoWorld в конце июля 1991 года, Microsoft при анонсе новой версии SQL Server делала упор на улучшенную работу с сетью и новое Windows-приложение для администрирования БД. В частности, Microsoft обещала в течение года предоставить копию утилиты SQL Commander для зарегистрированных пользователей SQL Server для OS/2. Инструмент под названием SQL Commander был представлен ранее, в мае 1990 года компанией Datura Corp. (ранее известной как Strategic Technologies Group). Данная утилита упрощала администраторам БД управление аккаунтами пользователей, индексами таблиц, триггерами и сложными запросами. Однако, как отмечали критики, данный инструмент практически полностью совпадал по функциональности с другой утилитой от Microsoft — Server Administration Facility tool, поставлявшейся в комплекте с SQL Server. Кроме того, в SQL Server 1.11 была добавлена поддержка инструментов для администрирования сетей Novell, новейший на тот момент инструмент OS/2 Requester 1.3 и детальная техническая документация для пользователей продукции Novell. Улучшение работы с сетью включало в себя улучшение работы с сетями фирмы Novell, добавленную поддержку протоколов Banyan VINES 4.10, а также клиентское взаимодействие с Sybase SQL Server на UNIX- или VMS-машинах. Изменения затронули и лицензионную политику: версия для 5 пользователей была заменена на десятипользовательскую версию, а пользователи SQL Server 1.1 с неограниченным количеством пользователей могли получить версию 1.11 бесплатно[10].

Но с другой стороны, SQL Server 1.11 обладал весьма ощутимыми ограничениями, в том числе и масштабируемости. Это был 16-битный продукт, поскольку OS/2 поддерживала лишь 16-битное адресное пространство для приложений, а его производительность была ограничена отсутствием механизмов высокой производительности в самой OS/2, как например, асинхроного ввода-вывода. Несмотря на то, что SQL Server на OS/2 на тот момент мог справиться с большинством задач, тем не менее существовал некий предел, после которого сервер просто начинал «захлёбываться». Чётко установленной границы не существовало, но SQL Server на OS/2 использовался для рабочих групп, численностью до 50 человек. Для более крупных групп существовала версия Sybase SQL Server для высокопроизводительных систем на базе ОС UNIX или VMS. И вот здесь как раз и проходила граница продаж между Microsoft и Sybase. Клиенты, выбирающие продукт от Microsoft хотели быть уверены, что их запросы не «перерастут» его. Большое число программных инструментов, разработанных для Microsoft SQL Server, работали без серьёзных доработок с Sybase SQL Server, а приложения, запросы которых уже не могли быть удовлетворены OS/2, легко могли быть перенесены на более мощную UNIX-систему. Подобная взаимосвязь была выгодна обеим компаниям, поскольку большое число программных инструментов для Microsoft SQL Server как правило без проблем работало и с Sybase SQL Server, а приложения, которым производительности OS/2 уже было недостаточно, легко работали и с UNIX-серверами.

SQL Server 4.2 (1991—1992)[править | править вики-текст]

Тем временем конкуренция на рынке СУБД постепенно росла, равно как и требования клиентов к выбираемому ими ПО, результатом чего при разработке следующей версии SQL Server для Microsoft на первый план вышли вопросы совместимости и взаимодействия, а также необходимость реализации новой функциональности, дабы удовлетворить запросы клиентов. Поскольку новая версия продукта нужна была как можно быстрее, то Microsoft вскоре после выхода версии SQL Server 1.11 приступила к разработке следующей версии.

Однако возник вопрос о следующем номере новой версии. Дело в том, что параллельно с продажами Microsoft SQL Server 1.0 велись продажи и Sybase SQL Server 3.0, который привнес некоторые весьма используемые механизмы на рынок СУБД для ПК, как например, типы данных text и image, а также режим просмотра данных (англ. browse mode). И следующей версией Sybase SQL Server стала версия 4.0 для наиболее распространённых платформ, и версия 4.2 — для менее распространённых. Таким образом, разработка новой версии Microsoft SQL Server фактически велась на базе исходного кода Sybase SQL Server 4.2. Соответственно, для маркетинговых целей новая версия Microsoft SQL Server также получила номер 4.2.

Однако, ещё в мае 1991 года Microsoft и IBM объявили о прекращении совместной разработки OS/2, поскольку к тому времени уже стало очевидным, что пользователи предпочитали Windows, а не OS/2. Таким образом, Microsoft решила сосредоточиться на дальнейшем развитии Windows, равно как и на ПО для них. К этому времени Microsoft уже вела разработку новой версии ОС на базе микроядра под кодовым названием NT (сокр. от англ. new technology — «новая технология»). Изначально предполагалось, что это будет новая версия OS/2 (иногда даже упоминалась как OS/2 3.0). После прекращения совместной разработки проект было решено переориентировать на Windows, то есть добавить пользовательский интерфейс в стиле Windows и программный интерфейс Win32 API, в результате чего проект получил новое название — Microsoft Windows NT.

Согласно имевшимся на тот момент планам, первая версия Windows NT должна была выйти не ранее чем через 2 года, а Microsoft SQL Server в конечном счёте должен был быть перенесён на Windows NT, что выглядело как не самый разумный ход. Однако, при всём при этом Microsoft приходилось поддерживать и разработку SQL Server для OS/2, при том, что OS/2 теперь была по сути конкурентным продуктом для самой же Microsoft. Microsoft же пошла на это, поскольку альтернативы у неё на тот момент не было.

Microsoft разрабатывала SQL Server 4.2 для грядущей OS/2 2.0, первой 32-битной версии OS/2. Поскольку SQL Server 4.2 должен был стать 32-битным, то его портирование с линейки для UNIX представлялось более простым, поскольку в этом случае проблема с сегментацией памяти не была насущной. Теоретически, 32-битный SQL Server должен был стать и более производительным. В прессе появлялось множество статей, посвящённых сравнению производительности на 16- и 32-битных платформах, и практически все авторы были уверены, что переход на 32-битность даст существенный прирост производительности (хотя в некоторых статьях и приводилось уточнение, при каких условиях это будет (или не будет) именно так). В качестве главного источника прироста производительности рассматривалась адресация памяти. Для её выполнения в 16-битном сегментированном адресном пространстве OS/2 линейки 1.x требовались как минимум 2 инструкции: первая инструкция загружала нужный сегмент памяти, вторая — загружала нужный адрес в данном сегменте. При 32-битной адресации отпадала необходимость в инструкции для загрузки сегмента, и таким образом память могла адресоваться лишь одной инструкцией. Согласно некоторым расчётам, благодаря этому потенциальный общий прирост производительности мог составить до 20 %.

На тот момент множество людей ошибочно полагало, что SQL Server должен быть запущен на полноценной 32-битной платформе, чтобы иметь возможность адресовать более 16 Мб памяти. Будучи запущенным на OS/2 1.x, приложение получало доступ лишь к 16 Мб реальной памяти. И хотя там была возможность получить более 16 Мб виртуальной памяти, но тогда начинала оказывать свое негативное влияние подкачка страниц. В OS/2 2.0 приложение могло адресовать более 16 Мб памяти и при этом избежать её подкачки. В свою очередь, это позволяло SQL Server иметь большой кэш и получать все необходимые данные из памяти быстрее, чем с диска, что очень положительно влияло на прирост производительности. Однако, с точки зрения приложений, вся память в OS/2 была виртуальной (как в версии 1.х, так и в 2.х), поэтому даже 16-битная версия SQL Server могла воспользоваться преимуществами OS/2 2.0 для получения доступа к большему пространству реальной памяти. С этой точки зрения 32-битная версия была просто не нужна.

Однако, как оказалось, первые бета-версии OS/2 2.0 были значительно медленнее OS/2 1.x, сводя на нет все преимущества нового подхода к адресации памяти. В результате, пользователи вместо ожидаемого прироста производительности наблюдали её серьёзное падение при запуске первых сборок 32-битного SQL Server 4.2 на OS/2 2.0 (по сравнению с SQL Server 1.1).

Неожиданно, планы по выходу OS/2 2.0 к концу 1991 года подверглись пересмотру. Фактически, стало непонятно, будет ли IBM вообще заниматься выпуском версии 2.0. То есть, выхода OS/2 2.0 ранее конца 1992 года ждать не приходилось. В виду этой ситуации, Microsoft вынуждена была вернуться к 16-битной реализации SQL Server и перенацелить её на OS/2 1.3. На возврат обратно к 16-битной реализации разработчикам из Microsoft потребовалось около трёх месяцев, но тут возникла другая проблема: поставляемая IBM версия OS/2 1.3 работала только на её лицензионных компьютерах. Теоретически, сторонние производители ПК могли лицензировать OS/2 у Microsoft и поставлять её как часть OEM-соглашения. Однако спрос на OS/2 упал настолько, что большинство OEM-производителей предпочли не связываться с ней, в результате чего покупка OS/2 для сторонних ПК превратилась в проблему. В качестве временного решения проблемы Microsoft создала урезанную версию OS/2 версии 1.3 (кодовое название Tiger), которая поставлялась в одной коробке с Microsoft SQL Server и Microsoft LAN Manager. При этом всё очевиднее становился тот факт, что OS/2 — это уже «мёртвая» ОС.

Бета-тест Microsoft SQL Server 4.2 начался осенью 1991 года, а в январе 1992 года на Сан-Францисской конференции для разработчиков ПО, использующих Microsoft SQL Server, Билл Гейтс, тогдашний глава (CEO) Microsoft, и Боб Эпстейн, основатель и руководитель Sybase, официально анонсировали продукт. Версия 4.2 стала первой поистине совместно разработанной версией. Движок, работающий с БД, был портирован из исходного кода версии 4.2 для UNIX, причём над портированием и исправлением ошибок инженеры Microsoft и Sybase работали совместно. Более того, Microsoft создала библиотеки клиентского интерфейса для MS-DOS, Windows и OS/2, а также впервые в комплект поставки вошёл инструмент с графическим интерфейсом Windows для упрощения администрирования. Исходный код объединялся в штаб-квартире Sybase, а файлы исходного кода пересылались туда по модемной связи или через копирование и отправку магнитных лент.

Поставки Microsoft SQL Server 4.2 начались в марте 1992 года. Критика в профильной прессе была довольно благосклонной, равно как и отзывы покупателей продукта. Тем не менее, после начала поставок в 1992 году многие задавались вопросом о сроках выхода 32-битной версии SQL Server. Как показали дальнейшие события, данная версия движка стала последней версией, полученной Microsoft от Sybase (не считая нескольких исправлений ошибок, которыми компании ещё некоторое время продолжали обмениваться).

SQL Server for Windows NT (1992—1993)[править | править вики-текст]

В начале 1992 года команда разработчиков SQL Server оказалась на распутье. С одной стороны, уже имелась клиентская база SQL Server, у которых СУБД была установлена на OS/2. Эти клиенты уже ждали 32-битную версию SQL Server, причём версию для OS/2 2.0 и желательно сразу после её выпуска OS/2 2.0 корпорацией IBM, то есть они желали оставаться на OS/2 в обозримом будущем. Но проблема была в том, что не было точно известно, когда же выйдет OS/2 2.0. Представители IBM заявляли, что выпуск новой версии состоится осенью 1992 года. Многие воспринимали эти слова со скепсисом. Так например, Стив Баллмер, старший вице-президент Microsoft, публично поклялся, что он съест флоппи-диск, если IBM выпустит свой продукт в 1992 году.

С другой стороны, от разработчиков SQL Server требовали скорейшего переноса их продукта на Windows NT, причём желательно так, чтобы бета-версии обоих продуктов вышли примерно в одно время. Windows NT на тот момент рассматривалась как продукт Microsoft верхнего ценового диапазона, а с точки зрения разработчиков эта ОС обладала ещё и несколькими техническими преимуществами по сравнению с OS/2: асинхронный ввод-вывод, симметричная многопоточность, переносимость на RISC-архитектуру.

Кроме того, хотя Microsoft и решила в 1991 году вернуться к 16-битной версии SQL Server, но при этом работа над 32-битной версией не прекращалась. К марту 1992 года, когда только вышла версия 4.2, тесты показывали, что обе версии (и 16-битная и 32-битная) на бета-версиях OS/2 2.0 работают медленнее по сравнению с 16-битной версией, запущенной на OS/2 1.3. Возможно, после официального выхода OS/2 2.0 ситуация и изменилась бы, но имевшиеся на тот момент бета-версии указывали скорее на обратное. По факту работа получалась менее производительной и менее стабильной.

Поскольку ресурсы для разработки были ограниченными, то в текущей ситуации Microsoft не могла позволить себе заниматься разработкой под обе платформы сразу. В противном случае разработчики столкнулись бы еще с дополнительным ворохом проблем, а именно им пришлось бы добавлять в продукт абстрактный слой, который скрыл бы различия между операционными системами либо вести параллельную разработку двух версий продукта. Таким образом, разработчики в Microsoft приняли решение прекратить работу над 32-битной версией SQL Server для OS/2 2.0, вместо этого они вплотную занялись разработкой продукта для Windows NT. При разработке новой версии внимания переносимости SQL Server на OS/2 или другие ОС не уделялось, вместо этого решено было воспользоваться всеми преимуществами Windows NT. Соответственно, подобный подход фактически положил конец разработке SQL Server для OS/2 вообще, за исключением поддержки уже выпущенных версий и исправления в них ошибок. Microsoft же начала информировать своих клиентов о том, что появление будущих версии (в том числе 32-битной версии) SQL Server для OS/2 2.0 будет зависеть от наличия и объёма спроса покупателей, тогда как она сама переориентировалась на Windows NT. Восприятие клиентами подобной новости было различным: некоторые отнеслись с пониманием к подобной позиции, другим, чей бизнес напрямую зависел от OS/2, такая новость не понравилась.

Тем временем, Sybase так же работала над новой версией своей СУБД, которая должна была получить название System 10. В данной ситуации, как и в случае с разработкой версии 4.2, разработчикам нужно было чтобы новая версия Microsoft SQL Server была совместима с System 10 и имела тот же порядковый номер, что и продукт Sybase, выпущенный для UNIX. Таким образом, сложилась ситуация когда для Microsoft главной целью стала победа Windows NT над OS/2, а для Sybase — успех её System 10.

Несмотря на то, что System 10 еще не была даже переведена на этап бета-тестирования, уже имелись расхождения в планировании обеими компаниями выпуска новых версий продукта. Так, например, Microsoft желала как можно скорее портировать Microsoft SQL Server на Windows NT, равно как и получить версию System 10 для Windows NT, OS/2 2.0 или обеих сразу. В результате было достигнуто соглашение о том, что Microsoft портирует SQL Server 4.2 для OS/2 на Windows NT, причём начнёт это незамедлительно, а Sybase включит Windows NT в список приоритетных ОС для System 10. Таким образом, Windows NT станет одной из первых ОС, для которых будет выпущена соответствующая версия System 10. В свою очередь, Microsoft возобновит поддержку OS/2 для Sybase, так чтобы клиенты, желающие остаться на OS/2 вполне могли это сделать. Хотя Microsoft и надеялась, что большинство клиентов мигрирует на Windows NT, но было ясно, что на все 100 % этого не произойдёт. Поэтому в этом отношении подобная договорённость была даже выгодна Microsoft.

Кроме того, подобный план действий имел дополнительные преимущества с точки зрения разработки. Команда разработчиков Microsoft должна была работать над стабильной и проверенной версией 4.2, в которой они к тому времени уже превосходно разбирались, что сильно облегчало задачу её переноса на новую ОС. Sybase же в свою очередь могла полностью сконцентрироваться на разработке новой версии, не беспокоясь о проблемах, связанных с предварительными версиями ОС. В итоге, согласно имевшемуся на тот момент (1992 год) плану должны были выйти обе версии (System 10 и SQL Server для Windows NT), а компании продолжить совместную разработку продукта.

Команда в Microsoft, занимавшаяся разработкой SQL Server, приступила к ускоренной разработке первой версии SQL Server для Windows NT, поскольку команда должна была выпустить продукт в течение 90 дней после выхода Windows NT, но согласно поставленным планам они должны были уложиться в 30 дней. Тут расчёт был на то, что Windows NT теперь фактически являлась единственной платформой для SQL Server, а значит разработчикам не было нужды беспокоиться о проблемах, связанных с портированием, и в частности не нужно было заниматься разработкой абстрактного слоя для сокрытия различий операционных систем. Роль абстрактного слоя должна была сыграть сама Windows NT, которая изначально планировалась как портируемая ОС, то есть предполагалось выпустить её версии для различных машинных архитектур.

Как следствие, разработчики сделали плотную привязку функциональности SQL Server к функциональности Windows NT, например, обработку событий в едином месте, установку SQL Server в качестве службы Windows NT, экспорт статистики производительности СУБД в Windows NT Performance Monitor и т. д. Так как Windows NT предусматривала возможность запуска приложениями динамического кода (при помощи динамических библиотек), то для SQL Server была предусмотрена возможность создавать сторонними разработчиками собственные динамические библиотеки. В результате подобных изменений Microsoft SQL Server для Windows NT сильно стал отличаться от исходной версии 4.2 для OS/2, так как оказалось, что Microsoft фактически переписала ядро SQL Server (часть программы, отвечающей за взаимодействие с ОС) для работы с Win32 API напрямую.

Ещё одной задачей при разработке SQL Server для Windows NT было облегчение перехода с имеющихся установок на OS/2 на новую версию SQL Server и ОС. Разработчики желали, чтобы все приложения, написанные для SQL Server 4.2 для OS/2 смогли работать без изменений на SQL Server для Windows NT. Поскольку для Windows NT планировалась возможность двойной загрузки с MS-DOS или OS/2, то команда решила, что SQL Server для Windows NT должен обладать способностью напрямую читать и писать в базы данных, созданные в SQL Server для OS/2. Для достижения поставленных целей разработчики переработали внутреннюю архитектуру SQL Server, добавив при этом множество функций для администрирования, работы по сети и расширяемости, тогда как от добавления внешних функций в ядро движка пришлось отказаться. Также задачей стала совместимость диалектов языка SQL и возможностей версий СУБД для Windows NT и OS/2, тогда как новые возможности предполгалось добавить в версию, которая была бы разработана на основе System 10. Для разграничения совместимости с версией 4.2 для OS/2 и новыми разработками Sybase, Microsoft приняла решение назвать свою новую версию SQL Server для Windows NT 4.2 (то есть добавив номер версии), при этом маркетинговое название продукта должно было выглядеть как Microsoft SQL Server for Windows NT, а внутреннее обозначение — SQL NT.

В июле 1992 года Microsoft провела конференцию для разработчиков ПО для платформы Windows NT и раздала альфа-версии Windows NT участникам конференции. Несмотря на то, что новая версия SQL Server не имела статсу даже «беты-версии», Microsoft всё же незамедлительно обнародовала через CompuServe 32-битные программные библиотеки, необходимые разработчикам для портирования своих приложений с OS/2 и 16-битных версий Windows на Windows NT. Сделано это было с учётом успеха распространения NDK среди разработчиков ПО для Windows 3.0 в 1990 году, Microsoft же надеялась повторить тот успех, снабдив разработчиков всеми необходимыми инструментами для разработки ПО под Windows NT.

В октябре 1992 года Microsoft выпустила первую бета-версию SQL Server для Windows NT. Данная версия обладала всем основным (из заявленного) функционалом, а все его компоненты обладали полной поддержкой Win32. Данная версия распространялась при помощи более ста сайтов. Для СУБД подобное количество сайтов являлось беспрецедентным, поскольку типичное количество сайтов, выделяемых для распространения этого типа ПО, как правило не превышало 10.

Параллельно с рассылкой NDK всё ещё продолжались поставки версии SQL Server для OS/2 (они продолжились и в следующем году). К марту 1993 года Microsoft выпустила бета-версию продукта. Данную версию (SQL Server Client/Server Development Kit (CSDK)) можно было свободно купить за небольшую плату. Для его поддержки MIcrosoft организовала открытый форум на CompuServe и не требовала с тех, кто к ней обращался, подписания соглашения о неразглашении сообщаемых сведений. Таким образом удалось реализовать более трёх тысяч комплектов CSDK. К маю 1993 года количество обращений за поддержкой предварительной версии продукта превысило количество обращений по поводу версии для OS/2. Несмотря на количество заявок, общая реакция на предварительную версию продукта была довольно положительной.

В июле 1993 года Microsoft выпустила Windows NT 3.1. В течение 30 дней после её выхода команда разработчиков SQL Server выпустила первую версию Microsoft SQL Server для Windows NT. Выход был весьма успешен: росли продажи как самой СУБД, так и ОС для неё.

К началу декабря 1993 года значительная доля клиентов мигрировала с OS/2-версии на SQL Server для Windows NT. Опросы свидетельствовали о том, что те, кто ещё не перешёл на новую версию для Windows NT, планировали это сделать даже невзирая на объявление Sybase о намерении разрабатывать System 10 для OS/2. Переход с версии SQL Server для OS/2 на версию для Windows NT для приложений происходил довольно безболезненно, а кроме того при переходе на новую версию наблюдался рост производительности. Как следствие, через 9 месяцев продажи SQL Server уже в два раза превосходили продажи на начало этого периода. При этом 90 % продаж приходилось на новую версию для Windows NT, тогда как на старую версию для OS/2 — оставшиеся 10 %.

Внутренние тесты Microsoft показывали, что ориентация на единственную платформу (Windows NT) дала свои плоды: SQL Server для Windows NT (запущенный на более дешёвом оборудовании) превосходил по производительности СУБД, работавших на UNIX и более дорогом оборудовании. В сентябре 1993 года Compaq Computer Corporation опубликовала первые результаты проведённого теста Transaction Processing Council (TPC). На тот момент, согласно тестам TPC-B, наиболее распространённым показателем являлся $1000/TPS (англ. transactions per second, транзакций в секунду). SQL Server, запущенный на машине с двумя процессорами Pentium с частотой 66 МГц, показал результат в 226 TPS при показателе $440 на транзакцию, что стало вполовину дешевле по сравнению с ранее опубликованными тестами. При этом большинство файл-серверов, работавших на миникомпьютерах под управлением UNIX, демонстрировали результаты, не превосходящие 100 TPS. И хотя были такие СУБД, которые демонстрировали значительно более высокие показатели, но и их ценовой эквивалент значительно превышал показатель в $440/TPS. Для сравнения, 18 месяцами ранее показатель производительности в 226 TPS являлся самым высоким из когда-либо достигнутых мэйнфреймами или миникомпьютерами.

SQL Server 6.0 (1993—1995)[править | править вики-текст]

Успех Microsoft вызвал рост напряжённости в отношениях с Sybase. Ситуация на рынке СУБД в конце 1993 года уже сильно отличалась от ситуации 1987 года, когда Microsoft и Sybase подписывали контракт. В 1993 году Sybase уже являлась успешной софтверной компанией, на рынке СУБД уступая лишь корпорации Oracle. Аналогично, за прошедшее время с 1987 года значительно выросла и Microsoft. Вместе с ней выросла и команда разработчиков SQL Server (в 1990 году их было около дюжины человек, а в 1993 году — уже более 50), не считая тех, кто занимался маркетингом и поддержкой продукта. Эти разработчики уже вполне хорошо знали внутренние механизмы SQL Server, а также обладали большим опытом по разработке аналогичной версии для Windows NT. Таким образом, Microsoft уже обладала всеми необходимыми ресурсами для самостоятельной разработки SQL Server, но соглашение с Sybase 1987 года связывало её, поскольку контракт подразумевал лишь лицензирование ею разработок у Sybase. Согласно действовавшим ограничеиям этого контракта, Microsoft не могла добавлять новую функциональность или вносить любые другие изменения в код, не согласовав их предварительно с Sybase.

Ещё одним поводом для взаимного недовольства стало окончательное расхождение в потребностях при разработке SQL Server. Например, разработчики Microsoft желали интегрировать в SQL Server поддержку MAPI (Messaging API), но поскольку данная возможность была специфичной для Windows, то разработчики Sybase не спешили давать добро на её внедрение, поскольку в сфере интересов Sybase была разработка продукта для UNIX, а не для Windows NT. Поскольку Sybase с портирования своего продукта под прочие ОС не получала никакой выгоды, то инициативы Microsoft начали встречать у неё всё большее сопротивление. Фактически, перенос версии 4.2 на Windows NT уже был предметом разногласий, поскольку добавление специфичной для Windows NT функциональности версии 4.2 существенно тормозило разработку System 10 для прочих платформ. Sybase разрабатывала свою System 10 уже с прицелом на упрощение дальнейшего портирования на различные ОС (в том числе и Windows NT), но с точки зрения Microsoft это означало отказ от максимально возможного использования средств Windows NT, поскольку System 10 не могла и не смогла бы при подобном подходе работать на Windows NT также эффективно, как если бы она изначально именно для неё и разрабатывалась.

Всё это привело к тому, что теперь уже обе компании не особо нуждались друг в друге, а их соглашение 1987 года уже фактически перестало действовать. Microsoft SQL Server для Windows NT уже был вполне жизнеспособной альтернативой Sybase SQL Server, работавшему на UNIX, Novell NetWare и VMS. Теперь клиенты могли приобрести Microsoft SQL Server по стоимости, равной части стоимости подобного решения для UNIX, причём MS SQL Server можно было запустить на менее мощном (а значит и более дешёвом оборудовании) и для его администрирования требовался менее квалифицированный специалист. Роялти же от Microsoft составили бы лишь небольшую долю доходов Sybase от продаж её продуктов для UNIX. Так что обе компании уже боролись фактически за одних и тех же клиентов, но при этом уже обе понимали, что пришло время менять характер их отношений.

12 апреля 1994 года Microsoft и Sybase объявили об окончании совместной разработки SQL Server. Каждая компания решила продолжить работу над собственной версией SQL Server. Microsoft получила возможность самостоятельно, без оглядки на Sybase, разрабатывать Microsoft SQL Server. Sybase теперь без помех могла заняться портированием System 10 на Windows NT (впервые SQL Server с логотипом Sybase стал бы доступен на платформе Windows NT, поскольку их соглашение подразумевало исключительно права Microsoft на разработку под свою платформу). При этом оба продукта должны были поддерживать обратную совместимость с существовавшими на тот момент приложениями для SQL Server, однако в дальнейшем эта идея никак не поддерживалась из-за слишком различающихся целей. Sybase разрабатывала свой продукт ориентируясь в первую очередь на его совместимость с версиями для UNIX, а Microsoft — совместимость с Windows NT. Вскоре, обе линейки SQL Server стали напрямую конкурировать друг с другом, причём Microsoft вновь попала в двойственную ситуацию: ей пришлось заниматься поддержкой конкурирующего продукта (System 10) на платформе Windows NT, поскольку доступность различных продуктов позитивно влияла на продажи ОС.

В начале 1994 года команда разработчиков SQL Server для новой версии планировала взять исходный код Sybase System 10, но разрыв соглашения полностью изменил эти планы. Если не считать пары исправлений, то последние исходники от Sybase были получены в начале 1992 года (версия 4.2 для OS/2). С учётом того, что Sybase собиралась выпустить System 10 для Windows NT к концу этого года, то с точки зрения пользователей это стало бы неплохим поводом обновить свою версию СУБД, перейдя с версии Microsoft SQL Server 4.2 на Sybase System 10. В свою очередь, для Microsoft это означало потерю клиентской базы, а следовательно нужно было быстро готовить ответный шаг.

В Microsoft был быстро запланирован амбициозный релиз, содержащий множество улучшений производительности и функциональности. Будущий релиз получил кодовое обозначение SQL95, намекая на запланированный к выходу релиз Windows 95. В 1994 году был актуален вопрос репликации данных средствами СУБД, поэтому репликация стала краеугольным камнем будущего релиза. То же касалось и позиционируемых курсоров — механизм, по мнению разработчиков, просто необходимый для преодоления разрыва между приложениями, ориентированными на работу со множеством записей, и реляционной БД. Ни одна из распространённых СУБД на тот момент ещё не обладала полнофункциональной реализацией позиционируемых курсоров для клиент-серверной архитектуры, и команда разработчиков SQL Server считала, что данный механизм положительно скажется на репутации их продукта. Кроме того, шла работа над абсолютно новым набором инструментов управления под кодовым названием Starfighter (впоследствии получивший название SQL Server Enterprise Manager), который планировалось включить в следующую версию. Список новых возможностей постпенно всё более расширялся.

Общая реакция клиентов на новость о планах Microsoft самостоятельно разрабатывать SQL Server была довольно негативной. 14 июня 1994 года в Сан-Франциско Microsoft провела общую конференцию для клиентов, аналитиков и журналистов. Джим Алчин, на тот момент занимавший должность старшего вице-президента Microsoft, рассказал о планах на будущее и о планируемом выпуске SQL95. Представленные планы и проекты были восприняты с одобрением, но многие открыто высказывали скепсис в отношении сроков выхода, сомневаясь в том, что Microsoft сможет выпустить обещанный продукт к концу 1995 года. В прессе новый релиз даже саркастически именовали SQL97 и даже SQL2000. Согласно же внутренним планам, разработчики готовились представить релиз в первой половине 1995 года. Первую бета-версию выпустили в октябре 1994 года. На этот момент Starfighter ещё не был закончен, но сам сервер был уже завершён, а поскольку именно при скачивании сервера создаётся наибольшая нагрузка на сайты с бета-версиями, то было решено выпустить его бета-версию в первую очередь. После выпуска последовала череда обновлений, продолжавшаяся несколько месяцев, параллельно с увеличением количества сайтов, достигшим показателя в 2000 сайтов.

Кроме того, ещё в 1993 году Microsoft приняла решение, что базы данных будут ключевой технологией в полной продуктовой линейке, и в конце 1994 года Microsoft начала заказывать экспертные консультации со стороны DEC и других ключевых вендоров рынка для команд разработчиков, работавших над проектами Microsoft Jet and SQL Server. Целью данных консультаций являлось планирование компонентов для нового поколения продуктов для работы с базами данных. В течение 1995 года пареллельно с выпусками основной командой SQL Server 6.0 и SQL Server 6.5, вторая команда разработала новый процессор запросов как часть компонента, который впоследствии превратился в Microsoft Data Engine (MSDE). Параллельно с разработкой MSDE велась работа и над OLE DB, набором интерфейсов, который позволил бы разрабатывать элементы основного продукта SQL Server как независимые компоненты. Такие компоненты обладали бы возможностью взаимодействовать друг с другом, используя слой OLE DB.

Примерно в течение девяти месяцев работа над SQL Server велась и по ночам. 14 июня 1995 года продукт был выпущен под названием Microsoft SQL Server 6.0, таким образом уложившись во внутрикорпоративные сроки. Вслед за выпуском версии последовало множество положительных публикаций в профильной прессе. Журнал InfoWorld по результатам второго ежегодного опроса о 100 компаниях с самыми инновационными приложениями в области клиент-серверных технологий поместил Microsoft SQL Server на второе место в рейтинге среди СУБД. При этом SQL Server увеличил свою долю с 15 % до 18 % среди опрошенных, указавших данную СУБД в качестве своего выбора, тогда как доля СУБД Oracle снизилась с 24 % до 19 %, соответственно. Доля Sybase также выросла с 12 % до 14 %. Три из десяти лучших приложений, отмеченных InfoWorld, были созданы с использованием Microsoft SQL Server.

SQL Server 6.5 (1995—1996)[править | править вики-текст]

Однако были данные и о том, что доля Microsoft SQL Server на рынке значительно меньше, чем показывали подобные опросы. Одной из проблем оставалось то, что Microsoft всё ещё оставалась новичком в секторе СУБД. На тот момент явным лидером являлась Oracle, и серьёзные позиции были у Sybase, Informix и IBM. На рынке фактически сложилась весьма тревожная ситуация для Microsoft поскольку все эти компании начали выстраивать свои тактики продаж, нацеливая их против Microsoft SQL Server. При этом Sybase, Informix и Oracle планировали выпуск новых версий своих продуктов. В рамках стратегии развития SQL Server Microsoft продолжила активное усиление команды разработчиков SQL Server, история которой на тот момент уже насчитывала более четырёх лет. Были наняты как уже известные профессионалы на тот момент как, например, Джим Грей, Дейв Ломет и Фил Бернштейн, так и менее известные разработчики, в том числе бывшие работники DEC, работавшие над Rdb.

После выхода версии 6.0 началась работа над версией 6.5. В рамках новой версии планировалось реализовать те возможности, которые были отложены при выпуске версии 6.0, тем более, что за 18 месяцев её разработки требования к СУБД существенно подросли. Например, в 1995 году большую роль уже играли Интернет и передача данных. Выпуск версии 6.5 должен был удовлетворить данные запросы. Полнофункциональная бета-версия версии 6.5 была выпущена 15 декабря 1995 года при помощи 150 бета-сайтов. Официальные поставки новой версии начались в апреле 1996, то есть примерно через 10 месяцев после выхода версии 6.0.

В функциональность также были добавлены инструменты для упрощения использования продукта пользователями, расширенная поддержка распределённых транзакций и другие возможности. Также был получен сертификат соответствия стандарту языка ANSI SQL.

Позднее, в декабре 1997 года, параллельно с выходом второй бета-версии SQL Server 7.0 была выпущена и версия SQL Server 6.5 EE, обладавшая поддержкой двухузловых отказоустойчивых кластеров Microsoft Cluster Server, 8 процессоров и адресного пространства 3 Гбайт.

SQL Server 7.0 (1996—1998)[править | править вики-текст]

Разработка[править | править вики-текст]

В конце 1995 года началась разработка следующей версии SQL Server, получившей кодовое название Сфинкс (англ. Sphinx). Уже на первом этапе в код SQL Server был добавлен код будущего MSDE, а команда разработчиков, работавшая над ним, присоединилась к основной команде разработчиков SQL Server. Разработка нового поколения SQL Server преследовала одну главную цель: перепроектировать весь движок сервера баз данных таким образом, чтобы позволить пользователям масштабировать SQL Server согласно их желаниям. Это подразумевало собой последовательное наращивание возможностей для максимально эффективного использования более быстрых процессоров (а также увеличения их количества) и объёма памяти, доступного операционной системе. Кроме того, такое наращивание не должно было ограничивать возможность добавления новой функциональности в любой из компонентов, то есть, например, в код обработчика запросов можно было также легко добавить новый алгоритм как подключить новый жёсткий диск к компьютеру. Кроме подобного наращивания возможностей, SQL Server должен был поддерживать новые классы приложений для баз данных, а это в свою очередь означало процесс, обратный наращиванию возможностей, а именно урезание требований к аппаратному обеспечению, чтобы продукт смог работать и значительно более слабых системах, как например, домашние ПК или ноутбуки.

В ближайшей перспективе благодаря подобному перепроектированию планировалось достичь двух целей:

  • реализовать полноценную блокировку на уровне строк с наличием интеллектуального менеджера блокировок;
  • создать новый обработчик запросов, поддерживающий такие механизмы, как распределённые гетерогенные запросы, и эффективно обрабатывающий произвольные запросы.

Одной из областей, вызвавшей повышенное внимание при разработке, было улучшение качества работы высокоуровневых приложений, таких как программное обеспечение планирования корпоративных ресурсов. Здесь как раз и требовались масштабируемость и удобство использования вкупе с высокой надежностью ядра базы данных. Также было разработано несколько алгоритмов, которые автоматизировали большую часть процесса конфигурации базы данных и позволяли системе самостоятельно решать некоторые вопросы настройки, которые вставали перед администратором базы данных. По данным алгоритмам впоследствии Microsoft получила несколько патентов. Также велась работа и над обеспечением механизма блокировки на уровне записи. Данный механизм позволил бы приложениям обращаться к конкретной строке в таблице, а не к целой странице, что привело бы к значительному уменьшению числа конфликтов при нескольких одновременных изменениях данных в одной таблице. В версии 6.5 данный механизм имел весьма ограниченную реализацию, поэтому в новой версии предполагалась уже реализация полной блокировки на уровне записи[11].

В октябре 1996 года Microsoft приобрела технологию Plato у израильской компании Panorama Software Systems. Данная технология представляла собой одну из реализаций технологий OLAP для СУБД. На тот момент (равно как и к моменту выхода SQL Server 7.0 в 1998 году) технология OLAP считалась весьма сложной в использовании и потому была малоиспользуемой. Тем не менее было принято решение встроить Plato в код SQL Server 7.0, но с учётом требований масштабирования, предъявляемых к новой версии SQL Server, в результате потребовалась переделка Plato для соответствия аналогичным требованиям. Перед разработчиками была поставлена задача превратить её в продукт, который по масштабируемости, удобству использования и интеграции с ПО корпорации не отличался бы от любого продукта Microsoft. В дальнейшем, сервер OLAP, ставший одним из ключевых дополнений SQL Server 7.0, получил название OLAP Services[11].

В декабре 1996 года был выпущен Microsoft Transaction Server 1.0 (кодовое название — Viper), сочетающий функциональность монитора транзакций и брокера объектных запросов.

Бета-версии[править | править вики-текст]

В июне 1997 года состоялся ограниченный выпуск первой бета-версии нового SQL Server 7.0. В декабре того же года нескольким сотням пользователей была разослана для тестирования вторая бета-версия продукта. Из-за перехода к новой архитектуре при обновлении версии SQL Server пользователям требовалось полное изменение баз данных и их структур. Для поддержки перехода клиентов на новую версию была объявлена специальная программа 1K Challenge, в рамках которой 1000 клиентов могли прислать разработчикам SQL Server копии своих баз данных для портирования их на версию 7.0. Спецлаборатория для проверки результатов портирования была создана в том же редмондском кампусе, где размещалась команда разработчиков SQL Server. Еженедельно с февраля по август 1998 года четверо или пятеро сторонних компаний-разработчиков ПО на неделю присылали свои группы разработчиков в Microsoft, в течение которой они в лаборатории проверяли, что их продукты будут без каких-либо проблем работать с SQL Server 7.0. При обнаружении каких-либо проблем ведущие разработчики SQL Server сразу занимались их решением, предварительно обсудив варианты решений с гостями.

В июне 1998 года была выложена версия Beta 3 на специально выделенном для этого веб-сайте. Вместе с бета-версией было опубликовано и несколько примеров решений задач, демонстрируюших новые возможности продукта. Кроме того, был запущен специальный новостной сервер, чтобы любой пользователь версии Beta 3 мог сообщить о найденных ошибках или задать вопрос разработчикам о новых возможностях продукта. Всего более 120 тысяч тестировщиков получили SQL Server 7.0 Beta 3. В это число вошли компании, напрямую заказавшие версию через веб-сайт Microsoft, подписчики MSDN, а также участники официальной программы по бета-тестированию Microsoft Beta Program (которые получают бета-версии всех продуктов Microsoft по мере их выхода).

Перед выходом SQL Server 7.0 появились слухи о намерении Microsoft заменить Access упрощенной версией своей реляционной базой данных SQL Server. Корпорация опровергла их, заявляя о том, что в новой версии Access для Office 2000 будет два альтернативных ядра базы данных: Jet, — уже выпускаемая, «родная» среда хранения для Access, и новое MSDE. Согласно представленной тогда информации, MSDE должен был стать не встроенной версией SQL Server, а представлять собой технологию хранения данных, совместимую с SQL Server, имеющим ту же компонентную архитектуру, что в свою очередь позволило бы разработчикам, используя Access в качестве интерфейсного модуля к SQL Server, применять MSDE для создания приложений, которые могли бы масштабироваться от настольной базы данных в реляционного «старшего брата» для SQL Server или SQL Server Enterprise[11].

Выход[править | править вики-текст]

16 ноября 1998 года на конференции COMDEX в Лас-Вегасе SQL Server 7.0 был публично представлен. Представлял новую версию лично Стив Балмер. Основной упор в своём выступлении он сделал на повышении производительность SQL Server 7.0 относительно предыдущей версии. Также он отметил и вопросы, связанные с масштабируемостью и готовностью работы с приложениями. По его словам, «такие производители ERP-систем, как Baan, PeopleSoft и SAP, смогут использовать эту СУБД практически во всех своих проектах, за исключением, может быть, самых крупных». По его прогнозам в течение ближайших полутора лет независимыми производителями должно было быть создано около 3 тыс. приложений для SQL Server 7.0. К моменту же выхода данной версии было более дюжины успешных её внедрений, в том числе в таких крупных компаниях как HarperCollins, CBS Sportsline, Comcast Cellular и Southwest Securities[источник не указан 1396 дней]. Причём 10 из них уже перешли на новую версию, а Pennzoil, Barnes & Noble и HarperCollins Publishers к тому моменту тестировали её уже несколько месяцев. Представители Pennzoil, News America (подразделение HarperCollins) и Barnes & Noble подтвердили возросшую производительность новой версии. Помимо самого продукта SQL Server 7.0 на COMDEX был представлен и специальный сервер для бесперебойной работы SQL Server 7.0, а производитель ERP-систем корпорация Baan представила комплект приложений BaanSeries ’99, предназначенный исключительно для SQL Server 7.0[11].

Весь цикл разработки, по словам Дуга Леланда, менеджера по маркетингу SQL Server корпорации Microsoft, длился 3,5 года. Им же новая версия позиционировалась как «первая реляционная СУБД Microsoft, которая поддерживает все её 32-разрядные операционные системы семейства Windows», причём планов по выпуску версий SQL Server для других ОС у Microsoft не было[11].

Выход же версии 7.0 состоялся 2 декабря 1998 года как билд 7.00.623.07, при этом заморозка кода состоялась 27 ноября 1998 года. Для свободного заказа продукт стал доступен в январе 1999 года.

Многие аналитики рассматривали выпуск версии 7.0 как «значительный шаг к завоеванию рынка корпоративных вычислительных систем». По их мнению, Microsoft рассчитывала на то, что благодаря переработанной функциональности SQL Server 7.0 станет корпоративным стандартом на базы данных. Добавление оперативной аналитической обработки в SQL Server 7.0 аналитиками рассматривалось как событие, которое «может стать самым важным событием, произошедшим на рынке OLAP с момента его возникновения». Причиной этого было то, что системы OLAP на тот момент были рассчитаны исключительно на корпоративный сегмент, а поскольку стратегия Microsoft предполагала создание версий и для домашних ПК в том числе, то благодаря этому технологии OLAP становятся доступными и для небольших компаний, что само по себе подразумевает значительную популяризацию OLAP[11].

Ещё одним доводом в пользу «стандартизации SQL Server 7.0» была способность SQL Server интегрироваться с остальными корпоративными системами, что было критически важно в условиях гетерогенных многоуровневых сред и наличии разнородных платформ и хранилищ данных. Для продвижения в этой области Microsoft разработала внутренние стандарты на интеграцию данных, такие как OLE DB и ADO, а также вела работу со сторонними производителями ПО. Однако, конкуренты критиковали подобные стандарты, заявляя, что «некоторые из этих стандартов — сугубо внутренние», что резко ограничивает возможность их применения сторонними заказчиками. Значительной критике подвергся в том числе и стандарт OLE DB for OLAP, который Microsoft предлагала в качестве отраслевого стандарта и вместе с тем как часть своей оболочки для создания хранилищ данных. Так, например, Джефф Джонс, менеджер программы по маркетингу систем управления данными корпорации IBM, в качестве основного недостатка называл то, что данный стандарт разрабатывался Microsoft, а не каким-либо консорциумом по стандартизации, как это широко практиковалось. На подобную критику представители Microsoft отвечали, что стандарт разрабатывался с участием более 60 производителей хранилищ данных[11].

Аналитики отмечали, что у Microsoft были все шансы добиться поставленной цели. В пользу этого говорило и активное стимулирование сторонних производителей создавать программное обеспечение для SQL Server 7.0, и модель распространения выглядела лучше чем у конкурирующих Oracle и IBM, способная в перспективе позволить продавать оптовые партии по более низкой цене и за счет этого стать серьезным игроком на рынке корпоративных баз данных[11].

Продавать новую версию планировалось по всему миру через реселлеров, сначала — оригинальную англоязычную версию, а в течение следующих двух месяцев должны были появиться и версии на французском, немецком, испанском и японском языках. К концу февраля 1999 года Microsoft планировала выпустить также и китайскую версию. С точки зрения версий продукта планировался выпуск стандартной и корпоративной версий в трёх конфигурациях каждая (в зависимости от количества допускаемых пользователй). Кроме того, было объявлено о специальном предложении, благодаря которому пользователи в течение 99 дней с момента объявления могли модернизировать свою систему до SQL Server или перейти на нее с конкурирующих СУБД, заплатив за SQL Server 7.0 всего 99 долларов на пользователя[11].

Аналитики высказывали предположения о том, что эти расценки могут вынудить конкурентов Microsoft в области баз данных снизить традиционно высокую стоимость своих продуктов (тем не менее, Oracle, например, официально отказалась пойти на такой шаг). Также аналитики довольно скептически восприняли новую версию, посчитав, что SQL Server 7.0 был предназначен в первую очередь для систем младшего класса рынка баз данных для Windows NT, тем более, что несколько участников бета-тестирования подтвердили, что новая версия полностью удовлетворяет их требованиям. Так, Херб Эдельштейн, аналитик компании Two Crows, заявил о том, что «низкие цены, установленные Microsoft, направлены на устранение конкуренции на этом рынке», при этом «даже с учётом всех новых возможностей SQL Server 7.0 сможет решить лишь часть задач, стоящих перед пользователями крупных корпораций». Бетси Бартон, аналитик компании Gartner Group, считал, что хотя и дополнения, представленные в новой версии, «заслуживают внимания», тем не менее «общая надежность и масштабируемость системы пока остается под вопросом». Однако, представители компаний, в которых тестировалась новая версия, продолжали положительно характеризовать продукт. Помимо ранее упомянутых компаний, положительно о продукте отозвались и Марк Митчел, системный консультант компании Applied Automation, и Джо Мисяжек, менеджер по поддержке приложений для системы, используемой в Colorado Community College. Они отметили доступную стоимость продукта, хорошую производительность и относительную простоту освоения[11].

Подобные шаги Microsoft вызвала ответную реакцию конкурентов. Так, например, корпорация Oracle вынуждена была изменить свою стратегию продаж. Согласно распростраённому заявлению, корпорация должна была начать продавать свою СУБД, установленную на предварительно сконфигурированных «серверных устройствах», которые используют упрощенную операционную систему, разработанную с участием самой Oracle. Согласно словам главы Oracle Ларри Эллисона, подобные нововведения должны были «снизить стоимость владения СУБД Oracle и в то же время усилить конкурентоспособность продукта в противостоянии с SQL Server компании Microsoft». В середине ноября 1998 года Oracle подписала соглашение с компаниями Dell, Compaq, Hewlett-Packard и Sun Microsystems, в соответствии с которым продажа серверов должна была начаться к концу первого квартала 1999 года. Операционная система, устанавливаемая на новых серверах, содержала компоненты Solaris (в дальнейшем предполагалось использовать компоненты Linux) и была настолько простой, что данная инициатива получила название Raw Iron («Голое железо»). Партнёры Oracle собирались предложить три типа серверов («небольшие, средние и крупные», как назвал их Эллисон), предварительно сконфигурированных для решения конкретных задач, таких как электронная почта и IFS (файловая система Internet). Таким образом, должен был состояться переход от продаж коробочной версии СУБД к продажам серверов, стоимость владения которых намного ниже. Эта стратегия, по мнению Эллисона, должна была помочь переманить часть покупателей SQL Server[11].

SQL Server 2000 (1998—2000)[править | править вики-текст]

Как и в предыдущие разы, работа над SQL Server после выхода седьмой версии не остановилась. В версию 7.0 была включена далеко не вся изначально запланированная функциональность, а кроме того имелось ещё несколько разработок, находившихся на финальных этапах, предназначенных для включения в следующий крупный релиз. Таким образом началась разработка двух версий: Шило (англ. Shiloh) — «младший» релиз версии 7.0 (условно говоря 7.5 по аналогии с предыдущим релизом), и Юкон (англ. Yukon) — следующий крупный релиз.

Изначально продукт-менеджеры SQL Server неохотно прогнозировали популярность SQL Server 7.0. Причина этого заключалась в том, что данный релиз основывался на полностью переписанном коде движка сервера, из-за чего многие клиенты рассматривали его лишь как первый релиз и было очевидно, что многие из потенциальных клиентов седьмой версии предпочтут подождать какой-нибудь «исправленной версии» либо хотя бы первого сервис-пака (пакета обновления). Так что Shiloh изначально был запланирован как некий суперсервис-пак, причём в него планировалось включить и функциональность, не вошедшую в версию 7.0 из-за сжатых сроков разработки, а также и исправление всех найденных на тот момент ошибок, что было слишком объёмно для обычной «ненумерованной» версии. Соответственно, планировалось выпустить Shiloh не позже чем через год после выхода SQL Server 7.0.

Однако сразу несколько факторов повлияли на изменение первоначальной концепции Shiloh. Во-первых, вопреки ожиданиям лишь небольшая часть клиентов сомневалась в необходимости перехода на версию 7.0, причём показатели продаж новым клиентам превосходили самые смелые ожидания. Отзывы клиентов также были вполне благожелательными. Даже после выхода SQL Server 7.0 Microsoft продолжала держать лабораторию для разработчиков стороннего ПО, благодаря чему разработчики постоянно получали отзывы и замечания клиентов. Замечания и обнаруженные ошибки легко правились в обычном порядке и пакет исправлений для SQL Server 7.0 был выпущен в мае 1999 года. Второй пакет исправлений вышел в марте 2000 года. Таким образом, необходимость в суперсервис-паке, каким изначально выглядел Shiloh, отпала.

Вторым фактором стали запросы функциональности от клиентов. Так, например, запланированная изначально реализация контроля ссылочной целостности при каскадных обновлениях и удалениях в конечном итоге в состав SQL Server 7.0 не вошла. Клиенты же высказывали чрезвычайную заинтересованность в подобном механизме и требовали реализовать его как можно скорее. Помимо этого, высказывались многочисленные пожелания относительно реализации поддержки секционированных представлений и оптимизации поддержки звездообразной схемы проектирования, широко используемой в приложениях для учёта товаров на складах.

Ещё одним фактором была конкуренция между производителями СУБД, требовавшая, чтобы следующий релиз был больше и лучше, чем это изначально планировалось. Большое влияние оказала и «задача на миллион долларов», заданная Ларри Эллисоном из Oracle Corporation, наглядно выявившей ту часть функциональности, что была уже реализована в СУБД Oracle, но всё ещё отсутствовала в SQL Server. Добавление подобной функциональности далеко выходило за рамки простого исправления.

В итоге, было принято решение сделать Shiloh полноценным крупным релизом с 18-месячным циклом разработки, но с сохранением официального номера версии 7.5. Количество изменений на тот момент прогнозировалось с трудом, и единственным изменением, о котором на тот момент было точно известно, это усовершенствование каскадных обновлений и удалений. Вскоре стало ясно, что релиз уже вырастает за рамки первоначальных планов. Параллельно росла и команда разработчиков, переселившаяся из главного кампуса Microsoft в часть офисов сдвоенного здания. Увеличение числа разработчиков позволяло добавить в продукт большое количество средних и мелких доработок без какого-либо существенного сдвига сроков выпуска продукта.

Также разработчики помимо задач улучшения и увеличения функциональности поставили перед собой т. н. «гибкие задачи». Например, он объявили о необходимости добиться 20%-го прироста производительности для всех типов приложений, но для конкретизации задачи производилось сравнение с определёнными приложениями. Так, например, одной из главных целей было улучшение показателей производительности в тесте производительности SAP R/3 Sales and Distribution как минимум на 40 %. Для достижения поставленной задачи разработчиками были сделаны специальные изменения в оптимизаторе, напрямую влияющие на запросы от SAP, но при этом улучшающие и запросы от других приложений. 17 февраля 2000 года на мероприятии в честь выхода Windows 2000 в Сан-Фрациско были объявлены результаты измерения производительности в тесте Sales and Distribution, показавшие допустимую нагрузку в 6700 пользователей, что значительно превзошло показатели SQL Server 7.0 (4500 пользователей) на том же самом тесте и оборудовании (использовалась восьмипроцессорная машина с Pentium III-550). Таким образом, прирост производительности составил 48 %, и значит данная задача была выполнена.

После принятия решения о продлении срока разработки до 18 месяцев было принято ещё одно решение о добавлении новой функциональности. Данное решение содержалось в строжайшем секрете и не обсуждалось даже со многими руководителями в Microsoft. Новая функциональность не упоминалась даже после выхода первой бета-версии в ноябре 1999 года, и была публично прдставлена лишь в феврале на мероприятии в честь выхода Windows 2000. Этот тайный проект под кодовым именем Койот (англ. Coyote) был нацелен на добавление в SQL Server 2000 поддержки распределённых секционированных представлений, что позволило бы достичь высокой масштабируемости при работе с данными. Именно эта функциональность и позволила поставить мировой рекорд, о котором было объявлено в Сан-Франциско в феврале 2000 года. Изначально данные изменения масштабируемости были задуманы для версии, следующей за Shiloh, но поскольку большинство из необходимых компонентов уже фактически были готовы, то данную функциональность было решено добавить в SQL Server 2000. К этим изменениям относилось и расширение оптимизации объединяющих представлений, а также возможность обновлять такие представления.

Первая бета-версия Shiloh была выпущена для первых испытаний и тестирования бета-тестировщиками в сентябре 1999 года, а вскоре Microsoft объявила, что официальным названием новой версии продукта станет SQL Server 2000. Для подобной смены названий было две основные причины. Во-первых, в виду многочисленных и серьёзных изменений в новой версии было невыгодно выпускать её как промежуточную (7.5), а значит нужен был новый номер. Но во-вторых, если выпустить новую версию как 8.0, то получится, что из всего семейства Microsoft BackOffice это будет единственный продукт, не имеющий приставки 2000 в названии. Чтобы соблюсти единство названий продуктов было решено назвать продукт SQL Server 2000 (при этом внутренний номер версии всё равно выглядел как 8.00.194).

С точки зрения пользователя, SQL Server 2000 предоставлял ему гораздо больше возможностей чем предыдущая версия. SQL Server 7.0 обладал полностью переписанным движком, поддержкой новых хранимых структур, методов доступа к данным, технологий блокировки записей, алгоритмов восстановления, новой архитектурой логирования транзакций, новой архитектурой памяти и оптимизатором. Но несмотря на всё это, с точки зрения разработчика или администратора БД изменения и улучшения языка в SQL Server 7 были минимальными. SQL Server 2000 обладал многочисленными языковыми улучшениями, равно как и серьёзными изменениями в представленных ранее объектах, таких как например, табличные ограничения, представления и триггеры, в которых нуждались все разаботчики и большинство администраторов БД.

Поскольку внутренние изменения в движке были минимальны, то запланированы были лишь две бета-версии. Вторая бета-версия, вышедшая в апреле 2000 года, стала публичной бета-версией и была разослана тысячам заинтересованных пользователей, участникам специализированных конференций, сторонним разработчикам ПО и консультантам. Команда разработчиков заморозила код 6 августа 2000 года на версии 8.00.194.01, и 9 августа продукт был выпущен.

SQL Server 2005 (2000—2005)[править | править вики-текст]

Разработка следующей версии SQL Server, получившей кодовое обозначение Yukon, началась параллельно с подготовкой 64-битной версии SQL Server 2000 под кодовым названием Liberty. Liberty по функциональности представляла собой по сути ту же самую 32-битную версию, но отличие заключалось в значительно больших возможностях масштабирования. Новая же функциональность должен был быть реализован в составе Yukon.

В июле 2002 года Microsoft в рамках официальной презентации своей новой платформы .NET Framework объявила о том, что следующая версия SQL Server под кодовым названием Yukon сможет использовать возможности платформы .NET. В частности, было заявлено, что в Yukon будет проще управлять распределёнными данными[12].

24 апреля 2003 года на конференции в Сан-Франциско, посвящённой выходу Windows Server 2003, Microsoft объявила о выходе 64-битной версии SQL Server 2000 (ранее известной как Liberty). Согласно опубликованному пресс-релизу новая версия SQL Server 2000 была рассчитана на работу совместно с 64-битной версией Windows Server 2003. Третьим продуктом, представленным вместе с Windows Server 2003 и новой версией SQL Server 2000 стал Visual Studio .NET 2003. Данное трио продуктов, согласно замыслу Microsoft, представляло собой следующую ступень взаимосвязанности ОС, SQL-сервера и среды разработки, тем самым вплотную подойдя к переходу на единую платформу .NET Framework, что было в гораздо более полной мере реализовано в следующей версии SQL Server. В рамках презентации Стив Баллмер и Пол Отеллини (en) заявили, что сервер с установленной новой версией SQL Server 2000 поставил два новых рекорда согласно результатам тестов некоммерческой организации Transaction Processing Performance Council (en). Как и в предыдущих случаях, новая версия была заранее установлена для тестирования крупным партнёрам Microsoft, среди которых назывались Корнелльский университет, Information Resources, Inc (en), JetBlue Airways, Liberty Medical Supply (en) и Университет Джонса Хопкинса, в ответ на что официальные представители этих организаций дали положительную характеристику новому продукту[13].

Целью выпуска 64-битной версии было желание начать занимать ту часть рынка, которая раньше полностью принадлежала высокопроизводительным решениям на базе систем под управлением ОС UNIX. Несмотря на то, что функциональность по сути осталась неизменным относительно 32-битной версии, 64-битная версия могла работать со значительно большим объёмом памяти, доступ к которой реализовывала 64-битная система Windows Server 2003, за счёт чего новая версия SQL Server 2000 могла масштабироваться до уровня высокопроизводительных систем, с которыми конкурировать 32-битная версия не могла в силу своих ограничений. Покупателям 32-битной версии переход на новую версию предлагался без дополнительной платы[13].

В ноябре 2003 года на конференции PASS в Сиэттле руководители Microsoft рассказали о новых механизмах ETL, реализуемых в Yukon, при помощи которых реализовывался перенос ранее накопленной информации из существующих приложений в хранилища данных. С точки зрения Microsoft эти механизмы должны были стать одним из аргументов для привлечения корпоративных пользователей. Архитектура SQL Server ETL, реализуемая в Yukon, получила название Data Transformation Services (DTS). Как отметил Гордон Манжионе, вице-президент Microsoft и глава подразделения SQL Server Team, в DTS планировалось реализовать поддержку параллелизма, благодаря чему пользователи смогут одновременно выполнять несколько сложных задач, как например, трансляция данных, их чтение и перезапись в одном потоке[14].

Помимо ETL упор делался и на упрощение конфигурирования и управления СУБД, а также улучшение масштабируемости. В частности, представители Microsoft заявляли, что, к примеру, процесс, охватывающий миллионы колонок данных, благодаря увеличению масштабируемости сможет выполняться в течение нескольких секунд, а не минут. Кроме того, в новую версию SQL Server планировалось включить функции, упрощающие создание хранилищ данных и управление ими, а также выполнение операций, связанных с интеллектуальной поддержкой бизнеса. Разработчикам Microsoft обещала новый API, поддерживающий платформу .NET (и язык Visual Basic в частности), избавляя тем самым от необходимости использовать специфический код DTS[14].

Также во время конференции Манжионе объявил о завершении работ по созданию продукта Best Practices Analyzer для SQL Server 2000, поддерживающий список из 70 правил, составленный совместно разработчиками Microsoft и пользователями SQL Server. Такой список должен был упростить процесс конфигурирования СУБД администраторами баз данных и помочь им избежать самых распространенных ошибок. При этом поддерживались функции резервного копирования и восстановления после сбоев, а также управления СУБД и контроля производительности. Манжионе пообещал, что корпорация будет обновлять этот инструментарий ежеквартально[14].

SQL Server 2008 (2005—2008)[править | править вики-текст]

Версия SQL Server, которая должна была заменить SQL Server 2005, получила кодовое имя Katmai. В период активной разработки Microsoft крайне неохотно делилась информацией о новой версии. На презентации SQL Server 2005 Пол Флесснер (на тот момент занимавший пост вице-президента подразделения Microsoft, занимавшегося разработкой SQL Server), уверенно заявил, что выход новой версии состоится не позднее, чем через два года после выхода SQL Server 2005. Однако в апреле 2007 года ещё не было никакой информации о скором выходе продукта, или хотя бы о начале его бета-тестирования. Тем не менее, в австрийском блоге на TechNet была опубликована информация о программе Katmai Technology Adoption Program (сокр. TAP), начало которой было якобы запланировано на июнь 2007 года. Также были упомянуты слухи о том, что новая версия выйдет в 2008 году, но Microsoft на тот момент ни подтверждала, ни отрицала эту информацию. Некоторые источники привязывали выход Katmai к выходу Longhorn Server and Visual Studio Orcas, из-за чего согласно этой информации новая версия должна была выйти в первой половине 2008 года. Microsoft также отказывалась комментировать эту информацию[15].

Тем не менее, некоторые журналисты, общавшиеся с представителями корпорации, заявляли о том, что слухи о выходе Katmai в 2008 году вполне соответствуют внутренним планам самой Microsoft. А отказ корпорации разглашать какую-либо информацию о новой версии связывался с переходом на новую модель разработки, причём именно из-за этого Katmai вряд ли должен был выйти в начале 2008 года. Также упоминалось о том, что Katmai не получит этапа официального бета-тестирования, а вместо этого публичное тестирование пройдёт в рамках программы Community Technology Preview (сокр. CTP). При этом утверждалось, что некоторые клиенты Microsoft уже в апреле 2007 года имели на тестировании некоторые части Katmai, не имея при этом на руках релиза целиком. Что касается функциональности новой версии, то журналисты писали о том, что Katmai будет представлять собой лишь развитие SQL Server 2005, а не новое поколение продукта, которым в своё время как раз и стал SQL Server 2005[15].

SQL Server 2008 R2 (2008—2010)[править | править вики-текст]

Разработка[править | править вики-текст]

Бета-версии[править | править вики-текст]

Выход[править | править вики-текст]

SQL Server 2008 R2 официально стала доступна для покупки 21 апреля 2010 года.

В конце 2010 года вице-президент подразделения Microsoft Business Platform Division Тед Каммерт сообщил, что новая версия «внедряется весьма быстро», в частности, за два месяца после выхода продукта «он был загружен по каналам Интернета около 700 тысяч раз», что, по его словам, стало «самым высоким показателем для новой версии SQL Server»[16].

SQL Server 2012 (2010—2012)[править | править вики-текст]

Разработка[править | править вики-текст]

Параллельно с этим, 30 июня 2010 года Скотт Гатри в своём блоге анонсировал выход новой мобильной версии SQL Server — SQL Server Compact 4.0, ориентированной в первую очередь на веб-приложения, созданные на основе технологии ASP.NET 4. В качестве достоинств новой версии Гатри выделил отсутствие необходимости в установке программы, а также совместимость с API .NET Framework (поддержка технологий ADO.NET, Entity Framework, NHibernate и др., возможность работы с Visual Studio 2010 и Visual Web Developer 2010 Express) и последними на тот момент версиями SQL Server и SQL Azure[17].

7 июля 2010 года Амбриш Мишра, менеджер проекта SQL Server Compact, в официальном блоге команды разработчиков SQL Server CE представил версию CTP1 нового SQL Server Compact 4.0. В качестве нововведений (помимо указанных Скоттом Гатри) указывались повышенная надёжность, улучшение алгоритма шифрования SHA 2, совместимость с файлами БД версии Compact 3.5, упрощение установки (в том числе и поддержка режимов WOW64 и 64-битных естественных приложений), снижение использования виртуальной памяти, технология делегирования полномочий Allow Partially Trusted Caller’s Attribute (APTCA), поддержка WebMatrix Beta и Visual Studio 2010, поддержка Paging Queries в языке T-SQL. При этом версия CTP1 обладала определёнными проблемами (некорректная работа деинсталляции через командную строку, проблемы с совместимостью с актуальной на тот момент версией ADO.NET Entity Framework CTP3 и др.)[18].

Бета-версии[править | править вики-текст]

Во время конференции PASS Summit, проходившей с 8 по 11 ноября 2010 года в Сиэттле, её участникам (а также подписчикам MSDN и TechNet) раздавались копии CTP-варианта Denali (через некоторое время эта версия была выложена на официальном сайте Microsoft). На самой конференции Тед Каммерт и Квентин Кларк, генеральный менеджер подразделения Microsoft Database Systems Group, представляя новую версию, рассказали о новой функции AlwaysOn и технологии VertiPac (входящей в состав служб аналитики SQL Server и хранилищ данных). Также упор был сделан на развитие инструментов бизнес-аналитики в новой версии, интерактивных средств виртуализации на базе Web (проект Crescent), а также инструментов для разработчиков под кодовым названием Juneau[16].

22 декабря 2010 года Амбриш Мишра в официальном блоге команды разработчиков объявил о выходе версии SQL Server Compact 4.0 CTP2 и наборе инструментов Visual Studio 2010 для работы с этой версией SQL Sever CE[19].

Финальная версия SQL Server Compact 4.0 официально была выложена на сайте Microsoft 12 января 2011 года, завершив таким образом этап разработки длиной примерно год[20].

11 июля 2011 года команда разработчиков SQL Server в своём официальном блоге объявила о выходе версии Community Technology Preview 3 (сокр. CTP3) и первом сервис-паке для SQL Server 2008 R2[21]. В качестве самых существенных нововведений (относительно SQL Server 2008 R2), реализованных в CTP3-версии нового продукта, аналитики отмечали компонент SQL Server AlwaysOn для создания резервных копий БД, возможность устанавливать SQL Server в среде Windows Server Core, столбцовую организацию хранения данных для ускорения выполнения запросов, усовершенствования языка T-SQL (введение объектов Sequence и оконных функций), возможность отслеживать изменение данных (CDC) для СУБД Oracle, возможность определения пользователем ролей сервера (ранее они были жёстко закреплены), службы управления качеством данных Data Quality Services (базы знаний, определяющие правила метаданных), новый инструмент визуализации данных под названием «Проект Crescent», поддержку автономных баз данных (для перемещения между локальными экземплярами SQL Server и SQL Azure) и новую среду разработки SQL Server Developer Tools под кодовым названием Juneau[22].

SQL Server 2008 R2 SP1 содержал исправления ошибок, на которые Microsoft получила жалобы от клиентов через службу Windows Error Reporting, а также некоторые улучшения функциональности (динамические административные представления (англ. Dynamic Management Views), повышение скорости выполнения запросов при помощи технологии ForceSeek, технология Data-tier Application Component Framework (сокр. DAC Fx) для упрощения обновления БД, контроль доступного места на жёстком диске для PowerPivot)[21].

Выход[править | править вики-текст]

SQL Server 2014[править | править вики-текст]

В конце 2010 года (то есть до выхода SQL Server 2012) вице-президент подразделения Microsoft Business Platform Division Тед Каммерт в интервью рассказал о планах по дальнейшему развитию продукта (как версии SQL Server 2012, так и будущих версий). В частности, Каммерт рассказал о том, что работа над SQL Server идёт в контексте идей Information Platform Vision, представляющей собой набор разнообразных возможностей, который ложится в основу платформы. SQL Server будет по-прежнему представлять собой единый продукт, реализуемый в настольных системах, в центрах обработки данных и в «облаке» (как в 32-битном, так и 64-битном варианте). Одним из приоритетных направлений по-прежнему останется бизнес-аналитика (англ. business intelligence, BI). С точки зрения Microsoft приоритетом в области бизнес-аналитики останется разработка средств BI, реализующих принцип самообслуживания, а также развитие экосистемы «облачных» вычислений. Кроме того, Microsoft при переносе средств бизнес-аналитики в «облака» по-прежнему работает над реализацией принципа согласованности относительно реализуемых моделей программирования и инструментальных средств (это подразумевает, в частности, наращивание возможностей работы SQL Server Management Studio со средой SQL Azure). Также большое внимание уделено вопросам масштабирования СУБД (при этом лимит системы SQL Server должен быть увеличен до порога в несколько сот терабайтов), виртуализации приложений в среде баз данных, а также пространственному представлению данных[16].

Релиз SQL Server 2014 стал доступен 1 апреля 2014 года.

SQL Server 2016[править | править вики-текст]

В настоящее время разрабатывается SQL Server 2016[23], доступен Community Technology Preview 3.1 для него[24].

Примечания[править | править вики-текст]

  1. 1 2 3 4 5 Nicholas Petreley, Alex Khaloghli, Scott Mace Ashton-Tate/Microsoft SQL Server: PC databases enter a new era // InfoWorld : журнал. — США: InfoWorld Media Group, Inc., 1989. — Т. 11, № 41. — С. 55-75. — ISSN 0199-6649.
  2. 1 2 OS/2 1.0 (англ.). OS/2 Museum. Проверено 16 мая 2012. Архивировано из первоисточника 31 мая 2012.
  3. 1 2 3 Karen Watterson Soul of a new machine // Data Based Advisor : журнал. — США: Advisor Publications, Inc., 1989. Архивировано из первоисточника 16 января 2013.
  4. 1 2 3 Ashton-Tate and Microsoft form long-term strategic alliance to market SQL Server for local area networks (англ.). Microsoft, Ashton-Tate (13 January 1988). Проверено 25 апреля 2012. Архивировано из первоисточника 31 мая 2012.
  5. 1 2 Microsoft and Ashton-Tate ship SQL Server Network Developer’s Kit (англ.). Microsoft, Ashton-Tate (1 November 1988). Проверено 24 апреля 2012. Архивировано из первоисточника 31 мая 2012.
  6. 1 2 3 4 5 6 Scott Mace Microsoft Ships SQL Server 1.1 // InfoWorld : журнал. — США: InfoWorld Media Group, Inc., 1990. — Т. 12, № 34. — С. 29. — ISSN 0199-6649.
  7. Scott Mace Microsoft’s SQL Server Faces Slow Initial Sales // InfoWorld : журнал. — США: InfoWorld Media Group, Inc., 1990. — Т. 12, № 34. — С. 1, 8. — ISSN 0199-6649.
  8. Scott Mace, Kristi Coale Q+E 2.5 Delivers DDE Link for Excel-SQL Server // InfoWorld : журнал. — США: InfoWorld Media Group, Inc., 1990. — Т. 12, № 34. — С. 17. — ISSN 0199-6649.
  9. Louise Fickel Microsoft offers client/server developers’ group. // InfoWorld : журнал. — США: InfoWorld Media Group, Inc., 1991. — Т. 13, № 30. — С. 88. — ISSN 0199-6649.
  10. Scott Mace SQL Server sports better LAN supports. Microsoft offers SQL Commander. // InfoWorld : журнал. — США: InfoWorld Media Group, Inc., 1991. — Т. 13, № 30. — С. 33. — ISSN 0199-6649.
  11. 1 2 3 4 5 6 7 8 9 10 11 Джон Корнетто, Клэр Хани SQL Server 7.0 выходит «в большой свет» // «Computerworld Россия» : журнал. — Москва: «Открытые системы», 1998. — № 45.
  12. John Markoff. Microsoft Tries to Explain What Its .Net Plans Are About (англ.). The New York Times (25 July 2002). Проверено 16 мая 2012. Архивировано из первоисточника 31 мая 2012.
  13. 1 2 New 64-bit SQL Server 2000 Enhances Performance and ScalabilityOf the Microsoft Platform (англ.). Microsoft (24 April 2003). Проверено 13 мая 2012. Архивировано из первоисточника 31 мая 2012.
  14. 1 2 3 Марк Сонгини Долгая дорога на Yukon // «Computerworld Россия» : журнал. — Москва: «Открытые системы», 2003. — № 47.
  15. 1 2 Karen Forster. SQL Server Katmai Rumors and Orcas Beta 1. Katmai in ’08 and news on Visual Studio Orcas. (англ.). Windows IT Pro (22 April 2007). Проверено 19 апреля 2012. Архивировано из первоисточника 31 мая 2012.
  16. 1 2 3 Майкл Оти, Шейла Молнар Будущее SQL Server: прогноз Теда Каммерта // Windows IT Pro/RE : журнал. — Москва: «Открытые системы», 2011. — № 01.
  17. Scott Guthrie. New Embedded Database Support with ASP.NET (англ.). Scott Guthrie’s Blog (30 June 2010). Проверено 30 апреля 2012. Архивировано из первоисточника 31 мая 2012.
  18. Ambrish Mishra. Introducing SQL Server Compact 4.0, the Next Gen Embedded Database from Microsoft (англ.). SQL CE Team’s Blog (7 July 2010). Проверено 3 мая 2012. Архивировано из первоисточника 31 мая 2012.
  19. Ambrish Mishra. Downloads Available for SQL Server Compact 4.0 CTP2, Visual Studio 2010 SP1 Beta Tools for SQL Server Compact 4.0 CTP2, and CMS (mojoPortal, Orchard and Umbraco) that work with SQL Server Compact (англ.). SQL Server CE Team Blog (22 December 2010). Проверено 3 мая 2012. Архивировано из первоисточника 31 мая 2012.
  20. Ambrish Mishra. Microsoft SQL Server Compact 4.0 is available for download (англ.). SQL Server CE Team Blog (12 January 2011). Проверено 3 мая 2012. Архивировано из первоисточника 31 мая 2012.
  21. 1 2 SQL Server Team. SQL Server Code Name “Denali” CTP3 and SQL Server 2008 R2 SP1 are HERE! (англ.). SQL Server Team Blog (11 July 2011). Проверено 19 апреля 2012. Архивировано из первоисточника 31 мая 2012.
  22. Майкл Оти Новые компоненты в SQL Server Denali // Windows IT Pro/RE : журнал. — Москва: «Открытые системы», 2011. — № 11.
  23. SQL Server 2016 public preview coming this summer (4 мая 2015). Проверено 5 декабря 2015.
  24. SQL Server 2016 Release Notes (2 декабря 2015). Проверено 5 декабря 2015.

Литература[править | править вики-текст]

  • Роберт Э. Уолтерс, Майкл Коулс. SQL Server 2008: ускоренный курс для профессионалов = Accelerated SQL Server 2008. — М.: «Вильямс», 2008. — С. 768. — ISBN 978-5-8459-1481-1.
  • Роберт Виейра. Программирование баз данных Microsoft SQL Server 2005. Базовый курс = Beginning Microsoft SQL Server 2005 Programming. — М.: «Диалектика», 2007. — С. 832. — ISBN 0-7645-8433-2.
  • Майк Гандерлой, Джозеф Джорден, Дейвид Чанц. Освоение Microsoft SQL Server 2005 = Mastering Microsoft SQL Server 2005. — М.: «Диалектика», 2007. — С. 1104. — ISBN 0-7821-4380-6.
  • Microsoft® SQL Server™ 2005.Реализация и обслуживание. Учебный курс Microsoft (Экзамен 70-431). — М.: «Питер», 2007. — С. 767. — ISBN 978-5-91180-3.
  • Петкович Д. Microsoft SQL Server 2008. Руководство для начинающих. — C.: БХВ-Петербург, 2009. — С. 752. — ISBN 978-5-9775-0149-1.

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

  • Microsoft. The History of SQL Server (1989 — 2012) (англ.). Youtube (15 February 2012). Проверено 17 мая 2012.
  • Scott Whigham. The History of SQL Server, Part 1 (1989 — 1998) (англ.). LearnItFirst.com / Youtube (12 May 2010). Проверено 17 мая 2012.
  • Scott Whigham. The History of SQL Server, Part 2 (2000 — 2008) (англ.). LearnItFirst.com / Youtube (12 May 2010). Проверено 17 мая 2012.
  Microsoft SQL Server
Компании-
разработчики

Microsoft • Sybase • Ashton-Tate

Версии
Основные 1.0 • 1.1 • 1.11 • 4.2 • 4.21 • 6.0 • 6.5 • 7.0 • 2000 • 2005 • 2008 • 2008 R2 • 2012 • 2014
Сокращённые MSDE • Express • WID
Мобильные 2005 Mobile Edition • 2005 Compact Edition • Compact 3.5 • Compact 4.0
Специализированные SQL Azure
Службы

Reporting • Analysis • Integration • Notification

Утилиты

DTS • Management Studio • Business Intelligence Development Studio • SQLIOSim

Расширения SQL

Transact-SQL • SQL CLR

Дополнительно

SQL Slammer • PASS

  Системы управления базами данных (СУБД)
Клиент-серверные

Caché • CouchDB • IMS • DB2 • Firebird • Informix • Ingres • Interbase • MS SQL Server MongoDB • MySQL • mSQL • Neo4j • Oracle Database • Pervasive SQL • PostgreSQL • Sybase ASE • Sybase ASA • Sybase IQ • Teradata Database • ЛИНТЕР

Движки

BDE • Berkeley DB • C-Store • db4o • HSQLDB • Mnesia • PrimeBase • Redis • Rdb • SQLite • ZODB

Файл-серверные

DataFlex • dBase • MS Access • OpenOffice.org Base • Paradox

  Базы данных
Концепции

Модель данных • Реляционная (модель • алгебра • Нормальная форма • Ссылочная целостность • БД • СУБД) • Иерархическая модель • Сетевая модель • Объектно-ориентированная (БД • СУБД) • Транзакция • Журнализация • Секционирование

Объекты

Отношение (таблица) • Представление • Хранимая процедура • Триггер • Курсор • Индекс

Ключи

Потенциальный • Первичный • Внешний • Естественный • Суррогатный (искусственный) • Суперключ

SQL

SELECT • INSERT • UPDATE • MERGE • DELETE • TRUNCATE • JOIN • UNION • INTERSECT • EXCEPT • CREATE • ALTER • DROP • GRANT • COMMIT • ROLLBACK

СУБД

IMS • DB2 • Informix • Oracle Database • Microsoft SQL Server Adaptive Server Enterprise • Teradata Database • Firebird • PostgreSQL • MySQL • SQLite • Microsoft Access • Visual FoxPro • ЛИНТЕР • CouchDB • MongoDB • Caché

Компоненты

Язык запросов • Оптимизатор запросов • План выполнения запроса • ODBC • ADO • ADO.NET • JDBC

Microsoft SQL Server

Д.Артемов, Microsoft


Подобно тому как Windows NT является базовой операционной системой, на которой работают

приложения BackOffice, Microsoft SQL Server для Windows NT является основным средством

обработки больших объемов информации в масштабе предприятия. Новая версия SQL Server

значительно расширена для повышения производительности СУБД, упрощения

администрирования, повышения надежности и скорости обработки данных.

Обзор продукта

Сейчас организации становятся все более динамичными. Это необходимо для быстрой реакции на

меняющиеся условия ведения бизнеса. Все более активно идет процесс децентрализации принятия

решений, а стремление повысить продуктивность принятия решений ведет к упрощению процедур

реализации различного рода идей. Для создания средств поддержки подобного рода изменений

организации обращаются к технологиям распределенной обработки информации. Эти технологии

позволяют размещать данные как можно ближе к пользователям, которым информация

необходима для принятия важных решений.

История развития SQL Server
SQL Server 4.21a SQL Server 6.0 SQL Server следующие версии
NT Server NT Server Cairo

  • Симметричная архитектура сервера (SMP)
  • Графические средства администратора
  • Унифицированная регистрация в сети
  • Расширенные хранимые процедуры
  • Интеграция с эл. почтой
  • SQL Object Manager
  • Service Manager
  • RPC для доступа к БД
  • Performance monitor
  • ANSI89 Level 1

  • Тиражирование данных
  • Параллельная обработка БД
    Сканирование, индексирование, создание и восстановление страховых копий, загрузка

  • Поддержка очень больших БД
    Оптимизатор, опережающее чтение, управление блокировками

  • Распределенное управление
  • OLE automation
  • ODBC курсоры
  • Расширения языка
  • ANSI92 (95.1)
  • X/A (95.1)

  • Унифицированное хранение данных
  • Параллельные запросы
  • Distributed joins
  • Доступ к данным OLE
  • Проверка версий, блокировка на уровне записи
  • Защита средствами Cairo, каталоги
  • Пользовательские функции
  • Интеграция с репозитарием объектов

Рис.1

Microsoft SQL Server 6.0 -специально разработана для удовлетворения требований, предъявляемых

системами распределенной обработки данных (таких как тиражирование данных, параллельная

обработка, поддержка больших баз данных (БД) на относительно недорогих аппаратных

платформах, сохраняющая простоту управления и использования). Сервер имеет средства

удаленного администрирования и управления операциями, организованные на базе объектно-

ориентированной распределенной среды управления. Новые возможности, такие как OLE

Automation и средства программирования административных задач на языке Visual Basic for

Applications, обеспечивают интеграцию с приложениями, работающими на ПК. По-прежнему

Microsoft уделяет очень большое внимание соответствию своих продуктов существующим

промышленным стандартам, что отразилось в расширенной поддержке ANSI SQL и ODBC.

Microsoft SQL Server 6.0 входит в состав семейства Microsoft BackOffice, объединяющего пять

серверных приложений, разработанных для совместного функционирования в качестве

интегрированной системы. Она позволяет пользователям повысить производительность процесса

принятия решений средствами систем, базирующихся на архитектуре клиент-сервер. Кроме того,

Microsoft SQL Server 6.0 завершает линию средств разработки, включающих Microsoft Access,

Visual FoxPro®, Visual Basic и Visual C++™.

Активное администрирование и объектный интерфейс SQL

Server

Централизованное управление распределенными

серверами

Центральная административная консоль SQL Server 6.0 заменила собой набор утилит, которые

существовали в предыдущей версии сервера. Из этой консоли, называемой Microsoft SQL

Enterprise Manager, администратор способен выполнять любые действия по администрированию

системы, как бы велика она ни была. На рис. 2 хорошо видны

несколько групп серверов.

Рис. 2

Рис. 2. Административная консоль SQL Server

Администратор может создавать новые группы, группировать серверы удобным с

административной точки зрения образом, выполнять манипуляции над объектами (базами данных,

таблицами, хранимыми процедурами, триггерами и т.д.).

К сожалению, когда принимается решение о выборе мощной СУБД масштаба предприятия, из

внимания специалистов, принимающих это решение, часто ускользает то обстоятельство, что ПО

подобного класса обязательно должно включать развитые средства администрирования. В

крупных информационных системах СУБД выполняет не только функции «мясорубки» по

перемалыванию колоссальных объемов информации, но и сложные функции

администрирования.

Microsoft SQL Server 6.0 предлагает «активную» модель администрирования системы. В отличие от

предыдущей версии продукта, администратор получил в свое распоряжение средства,

позволяющие предупреждать неблагоприятное развитие событий вместо того, чтобы, сломя

голову, кидаться исправлять последствия сбоя системы, когда пользователи уже не имеют доступа

к хранящейся в ней информации. SQL Server 6.0 позволяет определять так называемые

предупреждения (alert), которые являются реакцией системы на возникновение того или иного

события.

Как видно из рис.3 , предупреждение срабатывает при возникновении

ошибки с кодом 018 в базе данных master.

Рис. 3

Рис.3. Диалог описания предупреждения

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

реакцию системы на события в различных базах данных. Помимо встроенных кодов ошибок

предупреждение может реагировать на пользовательские ошибки, определяемые в коде хранимых

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

предварительно задача и послано сообщение администратору по электронной почте или на

пейджер.

Конечно, неплохо на каждый «чих» вызывать администратора, но как быть организациям с

разветвленной структурой, не имеющим возможности закрепить за каждым сервером специалиста

высокой квалификации? Что делать, если проблема возникла вечером, в выходные? К счастью,

активная модель администрирования SQL Server очень хорошо проявляет себя именно в таких

сложных ситуациях.

Мы уже упоминали, что к предупреждению можно привязать ту или иную задачу. Задача может

представлять собой:

  • команду операционной системы, .CMD или .EXE файл;
  • команду процесса тиражирования;
  • команду чтения журнала;
  • команду процесса синхронизации процесса тиражирования;
  • выражение языка Transact-SQL (в том числе имя хранимой процедуры).

В результате, прежде чем выдергивать администратора среди ночи из теплой постели, система в

состоянии сделать попытку самостоятельно решить возникшую проблему (конечно, если

администратор заранее подготовил ее к этому). И только в том случае, если задача после

выполнения сообщает о невозможности решения возникшей проблемы, имеет смысл прибегать к

помощи человека. Каждой задаче можно назначить вызов администратора по электронной почте

или пейджеру при успешном завершении или провале.(Рис.4)

Рис. 4

Рис.4. Диалог описания задачи

Теперь давайте рассмотрим сценарий, по которому могут развиваться события. Ночью произошел

сбой в электросети. Источник бесперебойного питания выработал свой ресурс, потом выполнил

ShutDown сервера, и система прекратила работу. Со временем электропитание было

восстановлено, и компьютер снова включился. Не секрет, что Windows NT способна выполнять

автоматическую, без участия человека, регистрацию в сети. В силу того, что SQL Server и SQL

Executive представляют собой сервисы операционной системы, им можно назначить атрибут

«стартовать автоматически». SQL Server стартовал, и на исполнение была запущена хранимая

процедура, которая также имеет атрибут «автостарт». Такая процедура может, например,

выполнить проверку целостности базы данных. Если проверка прошла успешно, система

продолжает работу в штатном режиме. Если проверка показала, что система неработоспособна,

можно пойти как минимум двумя путями: хранимая процедура генерирует ошибку, вызывающую

предупреждение, которое, в свою очередь, вызывает на выполнение задачу. Можно сразу поднять

тревогу и вызвать администратора.

Но электронная почта пригодна не только для того, чтобы поднимать тревогу, она может

использоваться и для штатной работы. SQL Server 6.0 умеет читать почту и отвечать на письма. В

том случае, когда задержки на прохождение электронного письма не критичны для работы,

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

получения от него ответа. Это позволяет обращаться к серверу в режиме Off-line практически с

любого компьютера (как известно, клиентское приложение одной из наиболее популярных в

России коммуникационных сетей — Релком — прекрасно работает даже на машинах с процессором

286).

Использование электронной почты для доступа к

ресурсам сервера

Набор расширенных хранимых процедур SQL Server включает процедуры работы с почтовыми

ящиками. Сервер может получить указание прочесть текущую почту и обработать ее (лучше всего

это задание оформить как периодически выполняемую задачу). В сообщении размещается вызов

хранимой процедуры или набор команд T-SQL. Сервер читает текст сообщения и выполняет

размещенные в нем команды. Результат исполнения присоединяется к письму, посылаемому в

ответ, в виде текстового файла или файла в формате CSV (поля, разделенные запятыми), который

можно непосредственно «взять» в электронную таблицу или импортировать в базу данных.

Естественно, возникает вопрос о предохранении данных от несанкционированного доступа.

Ограничение числа лиц, которые могут получать таким образом информацию, может быть

организовано различным образом, и тут необходимо позаботиться о защите доступа как со

стороны SQL Server, так и со стороны ПО, занимающегося отправкой почты. Для каждого

пользователя, который посылает запросы на сервер, можно завести соответствующий набор прав,

которые смогут эффективно ограничить диапазон действий, позволительных для него.

Как видно из рисунка, каждому пользователю, зарегистрированному на сервере, можно назначать

самые разнообразные права — от права делать выборки из тех или иных таблиц и исполнения

хранимых процедур до права на модификации или выборки из конкретного поля конкретной

таблицы.

SQL Server способен «понять», кто пишет письмо. Можно также ограничить обрабатываемую

почту только письмами, которые имеют определенный текст в разделе Subject. Все это вместе

взятое позволяет утверждать, что если в организации четко соблюдается дисциплина хранения и

назначения паролей, то риск несанкционированного доступа к конфиденциальной информации

может быть сведен до минимума. Кроме того, на электронную почту можно возложить

обязанности по получению/передаче только безобидной информации, доступ к которой не

нуждается в серьезной защите.

Microsoft SQL Server Distributed Management Framework (SQL-

DMF)

С появлением SQL Server 6.0 Microsoft предложил на рынке сервер с масштабируемой

архитектурой управления, наиболее оптимальным образом подходящей к быстро меняющимся

задачам, которые встают перед системами архитектуры клиент-сервер. Microsoft SQL Server

Distributed Management Framework (SQL-DMF) имеет трехуровневую объектно- ориентированную

архитектуру, которая предоставляет компоненты, сервисы и инструментарий, необходимые для

управления распределенными серверами в масштабе предприятия.(Рис.5)

Рис. 5

Рис.5. Диалог определения прав доступа

Уровень

Компоненты SQL Server 6.0 DMF
Уровень 1

Представление/Манипуляция

Средство администрирования SQL Enterprise Manager,

программирование на Visual Basic или Visual FoxPro

Уровень 2
Объекты управления

OLE интерфейс для доступа ко всем средствам

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

Уровень 3

Реализация/Обработка

Процессор данных SQL Server, сервисы SQL Executive

Архитектура SQL-DMF изначально предназначена для работы в распределенных средах и

предоставляет необходимую гибкость и масштабируемость за счет разделения процесса

администрирования на три четко определенных уровня:

Преимущества SQL-DMF

  • упрощает процесс управления распределенными серверами за счет

    предоставления современного пользовательского интерфейса

    административной консоли для всех задач управления и интеграции

    компонентов управления и инструментов администратора, а также сервисов

    внутри основного продукта;

  • предоставляет масштабируемую среду управления, которая может быть

    адаптирована к конкретным потребностям малых и крупных заказчиков.

    Разработчики могут расширить набор стандартных инструментов за счет

    встроенных OLE объектов управления и поддержки средств визуальной

    разработки;

  • делает удаленные серверы более самостоятельными с точки зрения

    управления средствами сервисов, взаимодействующих с процессором данных

    сервера (диспетчирование, события/предупреждения, тиражирование). Они

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

    участия человека;

  • предоставляет администраторам баз данных инструментарий,

    позволяющий перейти от защитной к активной модели администрирования с

    использованием развитой модели обработки событий/предупреждений для

    назначения корректирующих действий при возникновении определенного рода

    проблем или условий (например, переполнение журнала), вызываемых через

    триггеры или предупреждения.

SQL Executive

Основой SQL-DMF является SQL Executive, исполняемый как сервис операционной системы и

управляющий тиражированием, обработкой событий, предупреждений и диспетчированием

работы компонентов внутри SQL-DMF. SQL Executive работает как «скрытый» оператор или

«интеллектуальный агент», автоматически и постоянно отслеживающий состояние окружения

сервера и любых распределенных служб SQL Server. Разработчики сервера убеждены, что

критические службы, такие как тиражирование, должны быть частью основного продукта, а не

просто «утилитами».

SQL Enterprize Manager OLE Automation
SQL Server Distributed Manadgement Object (SQL-DMO)
SQL Executive SQL Server

  • Тиражирование
  • Менеджер задач
  • Менеджер событий
  • Менеджер уведомлений

Рис.6. Компоненты SQL-DMF

Ранее существовавшие подходы к системному администрированию приводили к запоздалой

реакции на сбой системы, а администратору отводилась роль «пожарного». С другой стороны,

обработчик событий SQL Executive изначально проектировался для поддержки активной модели

администрирования, позволяющей администратору определять предупреждения и проводить

корректирующие операции до возникновения проблемы. Кроме того, администратор может

заранее определить уведомления, которые будут рассылаться по электронной почте или на

пейджер.

SQL Executive работает как сервис операционной системы и при необходимости может быть

запущен автоматически для загрузки списка задач, хранящегося в таблице SQL Server.

SQL Server Distributed Management Objects (DMO)

Другим исключительно важным компонентом являются SQL Server Distributed Management Objects

(SQL-DMO). SQL-DMO — OLE Automation интерфейс SQL Server 6.0 открывает объекты, свойства

и методы для всех аспектов деятельности SQL Server по управлению и администрированию SQL

Server. Объектная модель SQL Server включает более 70 индивидуальных объектов и свыше 1500

свойств и методов. Организация объектов значительно упрощает изучение и продуктивное

использование компонентов административного интерфейса SQL Server.

OLE интерфейс поддерживает использование таких средств разработчика, как Visual C++, Visual

Basic и Visual FoxPro для создания специализированных административных сценариев, исполнение

которых организуется средствами диспетчирования SQL Executive. Справа приведены некоторые

из объектов и методов SQL-DMO.

Все функции SQL Server открыты для доступа извне как объекты, свойства и методы. Подобная

модель значительно упрощает работу с административным «слоем» за счет организации функций

управления в терминах объектной модели SQL Server. Основной объект — «SQL Server» — включает

коллекцию объектов «Databases». Объект «Database» включает коллекции объектов «Table»,

«View» и «StoredProcedure». Объекты имеют свойства (например, SQLServer.Name =

«SABERTOOTH») и методы (SQLServer.Start или SQLServer.Stop). Свойства и методы

используются для управления SQL Server.

Метод объекта

Действие
SQLServer.Stop

Останавливает SQL Server
SQLServer.Start

Запускает SQL Server
Database.Backup

Выполняет создание страховочной копии
Index.UpdateStatistics

Обновляет информацию оптимизатора по индексам
Database.Table.Add Добавляет таблицу к базе данных

OLE Automation: написание сценариев на Visual Basic/Visual

FoxPro

Мощь административного OLE интерфейса SQL Server становится очевидной, если учитывать

возможность использования языка программирования средств разработчика Microsoft (таких как

Visual Basic или Visual FoxPro) для написания сценариев выполнения административных задач.

Ниже приведен пример кода, используемого для получения служебной информации с SQL

Server.

SQL Enterprise Manager

Как уже говорилось ранее, SQL Server имеет развитый графический административный интерфейс

— SQL Enterprise Manager, — способный обеспечить потребности администратора в

централизованном управлении многими серверами в организации. Административная консоль

использует объекты SQL-DMO для управления всеми аспектами функционирования SQL Server. В

задачи администратора входит администрирование топологии, защиты, событий/предупреждений,

диспетчирование, создание страховочных копий баз данных, конфигурирование и настройка

серверов и тиражирования. SQL Enterprise Manager может также использоваться для создания,

модификации и копирования схем баз данных и таких объектов, как образы и триггеры. Этот

инструмент позволяет охватить всю топологию системы из любого места в сети.

Архитектура SQL-DMF предлагает множество «точек входа» для поддержания конкретных

потребностей администратора. В результате серверы могут управляться посредством доступа к

объектам SQL-DMO или непосредственно. Мы полагаем, что подобная архитектура создает

гибкую среду администрирования, удовлетворяющую требованиям администраторов как мелких,

так и крупных систем, без необходимости принесения в жертву простоты или

мощности.

Рис.7. Структура объектной модели SQL Server

Системы архитектуры клиент-сервер предлагают много новых задач, требующих нового подхода.

Мощные серверы баз данных должны адаптироваться к растущим требованиям динамичной и все

более усложняющейся работы в распределенных средах. SQL Server 6.0, снабженный развитой

средой администрирования распределенных систем, удовлетворяет этим требованиям.

Расширенные возможности масштабирования и высокая

производительность

Особое внимание, которое было уделено повышению производительности СУБД, позволило

повысить скорость выполнения некоторых операций почти на 400% на многопроцессорных

компьютерах. Это достигается активным использованием многопроцеcсорной архитектуры

компьютера и многопоточной архитектуры операционной системы. Среди операций,

выполняющихся параллельно, можно назвать сканирование таблиц, загрузку,

создание/восстановление страховочной копии. Все это позволяет обеспечить

высокопроизводительную работу с большими и очень большими базами данных.

Поддержка очень больших баз данных и съемных

носителей

Для версии 4.21а очень большой считалась база данных размером 10-15 Гб (хотя некоторые

организации, например, Sprint, работали с базами данных размером 60 Гб и более).

Высокоскоростная параллельная обработка делает возможной поддержку работы с базами данных

размером 100 Гб и более на соответствующим образом конфигурированных системах. Не только

процесс создания страховочных копий выполняется быстрее, но и такие операции, как проверка

целостности базы данных (выполняется командой DBCC), сильно выигрывают от использования

параллельного сканирования и увеличенных блоков ввода/вывода. Возможность сохранения в

страховочной копии (восстановления из копии) индивидуальных таблиц позволяет сократить

время, необходимое на сохранение (восстановление) отдельных таблиц базы данных. Поддержка

распространения баз данных на съемных носителях (таких как CD-ROM) позволяет выпускать

различного рода справочники или информационные материалы. Интересно отметить, что

гибкость SQL Server проявляется и при работе с очень маленькими объемами информации. Так,

для того чтобы базу данных можно было сохранить на дискете, ее минимальный размер снижен до

1 Мб.

Расширение возможностей языка и программного

доступа

Существующая версия SQL Server снабжена мощным языком программирования -Transact-SQL,

позволяющим создавать сложную логику триггеров и хранимых процедур. В новой версии язык

значительно расширен, теперь он соответствует стандарту ANSI-92, и программисты получили

новые возможности (такие как новые, соответствующие ANSI-стандарту, типы данных и

соответствующая стандарту ANSI поддержка декларативной целостности данных). Помимо

перечисленных возможностей, программист может воспользоваться генератором, автоматически

создающим уникальные значения для ключевых полей таблицы, возможностью передавать

идентификаторы и данные типа TEXT и IMAGE как параметры хранимым процедурам и многое

другое. Использование хранимых процедур, которые запускаются автоматически при каждом

старте SQL Server, позволяет создавать системы, способные выполнять различного рода задания

без участия администратора. Наиболее же интересным нововведением являются скроллируемые,

двунаправленные курсоры. Курсоры SQL Server поддерживают все режимы, определенные

расширенными требованиями ANSI, а также и ODBC семантику; они совместимы с

существующими курсорами, поддерживаемыми API в DB-Library.

Производительность и масштабируемость

Microsoft SQL Server 6.0 имеет параллельную архитектуру, интенсивно использующую

многопоточность операционной системы для обеспечения высокой производительности и

масштабируемости на многопроцессорных системах. Все управление задачами SQL Server

организовано вытесняющим для повышения надежности и изолирования возможных сбоев. За счет

динамического распределения нагрузки на процессоры SQL Server достигает автоматической

балансировки загрузки всех ЦП компьютера. Microsoft называет это «симметричной архитектурой

сервера».

Преимущества симметричной архитектуры Microsoft SQL Server

6.0

Симметричная архитектура Microsoft SQL Server предоставляет следующие преимущества:

  • снижает сложность системы

SQL Server не дублирует службы операционной системы (такие как диспетчирование,

распределение памяти, управление очередями), что делает архитектуру системы более эффективной

и стабильной;

  • повышает производительность

SQL Server способен обеспечить высокую скорость выполнения транзакций и обладает высокой

пропускной способностью на микропроцессорных системах, даже при одновременной работе сотен

пользователей;

  • адаптируется к росту нагрузки

Нагрузка на SQL Server динамически распределяется по нескольким ЦП, что повышает

масштабируемость на симметричных многопроцессорных системах.

  • повышает надежность

Задачи пользователя исполняются в самостоятельных потоках, и при необходимости одна задача

принудительно завершается, не оказывая влияния на выполнение остальных. Например, SQL

Server способен прервать «спящий» процесс без того, чтобы это оказало влияние на работу всей

системы. Ни одна задача не может «выйти из-под контроля».

Усовершенствования, связанные с параллельной обработкой

данных в SQL Server 6.0

У SQL Server 6.0 Microsoft еще более расширила возможности параллельной обработки

симметричной архитектуры сервера. За счет параллельного выполнения широкого диапазона

внутренних функций СУБД с использованием множественных потоков операционной системы при

работе на многопроцесорных системах резко возрастает производительность и масштабируемость

многих операций (таких как определенные типы запросов, сканирование таблиц, создание

индексов, создание/восстановление страховочных копий, проверка целостности базы данных и

т.д.).

Высокоскоростное создание/восстановление

страховочных копий

Создание/восстановление страховочных

копий теперь может выполняться почти на порядок быстрее за счет использования одновременно

до 32 устройств (диски или стриммеры), на которых создается страховочная копия базы данных.

Специалистами Microsoft была достигнута производительность копирования более 20 Гб/час. Это

означает, что при работе с большими и очень большими БД страховочная копия может быть

создана в нерабочие часы. Теперь же использование новых возможностей SQL Server позволяет

работать с базами данных 100 Гб и выше на соответствующим образом конфигурированных

компьютерных системах. Это отвечает требованиям организаций, устанавливающих большие базы

данных на относительно дешевых компьютерных системах.

Параллельное сканирование и асинхронное опережающее

чтение

Параллельное сканирование и асинхронное опережающее чтение повышает на 40 — 400% скорость

выполнения некоторых типов запросов и других операций над базой данных в многопроцессорных

системах. Повышение производительности достигается за счет использования SQL Server 6.0

множественных потоков операционной системы и алгоритмов определения следующего блока

данных, необходимых для вывода в кэш. На приводимом графике показано, как растет время,

необходимое для считывания с диска более 10000 страниц из базы данных (меньшие числа

показывают более высокую производительность). Эта операция типична для длительного запроса

с вычислениями или операции создания отчета. Как видно из графика, по мере роста числа

клиентов, SQL Server 6.0 выполняет операцию не менее чем в 4 раза быстрее за счет использования

параллельного сканирования таблиц и асинхронного опережающего чтения.

Подобная технология обеспечивает резкое повышение производительности для любой операции,

требующей просмотра таблиц, например, SELECT, UPDATE и DELETE с необходимостью

поиска, CREATE INDEX, DBCC, DUMP/LOAD и т.п.

Параллельная загрузка

При работе с новой версией SQL Server можно запускать несколько параллельно работающих

копий BCP или SQL Enterprise Manager и выполнять параллельные перекрывающиеся операции

загрузки данных в SQL Server. Подобные возможности оказываются особенно полезными при

необходимости массивного копирования данных в ограниченные сроки.

Тиражирование данных

Одной из наиболее интересных новых возможностей SQL Server 6.0 является тиражирование

данных.

В силу того, что продукт изначально создавался для работы с распределенными данными, СУБД

снабжена надежной и открытой архитектурой, хорошо интегрированной, гибкой и

управляемой.(Рис.8)

Рис. 8

Рис.8. Организация тиражирования данных

Организация тиражирования данных в SQL Server

6.0:

  • Система тиражирования данных построена на метафоре подписки. В

    процессе тиражирования участвуют следующие серверы сервер публикаций;

  • сервер репликаций;
  • сервер подписки.

Под публикацией понимается совокупность данных, которые могут подвергаться

тиражированию.

Статья — наименьший возможный элемент публикации. Статья может представлять собой таблицу

или любую ее часть. Публикация может включать одну или более статей.

Наиболее важным требованием к тиражированию данных является устойчивость к сбоям,

гарантирующая постоянное, надежное поступление данных и способная противостоять

возможным сбоям сети и оборудования. Система тиражирования должна обеспечивать высокое

быстродействие операций сохранения и переноса данных с минимальным воздействием на

центральный сервер и гарантией надежного и защищенного поступления информации. Она должна

быть достаточно гибкой, чтобы позволять организациям применять различные подходы и схемы

организации процесса тиражирования. Кроме того, поскольку организации не всегда могут себе

позволить иметь высококвалифицированного администратора в каждом подразделении, где

размещен конкретный сервер, система тиражирования должна быть хорошо интегрирована с

самой СУБД для получения возможности удаленного конфигурирования, мониторинга и

управления.

Microsoft создавала SQL Server 6.0 с учетом всех перечисленных требований. Подсистема

тиражирования данных, являющаяся составной частью SQL Server, позволяет осуществлять

автоматическое тиражирование транзакций и объектов базы данных с единого сервера на один

или более серверов, расположенных в географически разделенных подразделениях компании. SQL

Server 6.0 обладает следующими основными характеристиками:

  • Высокая производительность. Архитектура системы тиражирования

    данных SQL Server обеспечивает высокую производительность с

    минимальными задержками на сервере публикаций;

  • Надежная, защищенная передача информации. SQL Server 6.0

    гарантирует целостность транзакций тиражируемых данных средствами

    автоматической ресинхронизации и восстановления после сбоев. SQL Server

    поддерживает новые расширения ANSI SQL Server, позволяющие описывать

    принципы отбора/приема информации на уровне языка определения данных.

    Кроме того, дополнительное шифрование данных при передаче по сети

    гарантирует высокую защищенность тиражируемых данных от

    несанкционированного доступа;

  • Гибкая реализация. SQL Server поддерживает несколько различных

    моделей асинхронной репликации как с диспетчированием процесса, так и

    непрерывных: тиражирование по журналу, тиражирование статических данных

    (snapshot) и перемещение объектов. Богатство моделей тиражирования

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

    тиражирования и конфигурации сети. Помимо тиражирования транзакций и

    пользовательских данных, SQL Server позволяет автоматизировать

    тиражирование объектов баз данных (таких как хранимые процедуры), что

    облегчает сопровождение систем, функционирующих в распределенных

    средах;

  • Простота сопровождения и установки. Так, Microsoft реализовала в

    SQL Server встроенные средства тиражирования данных, что снижает

    сложность управления и позволяет использовать технологию Drag and Drop

    для удаленного конфигурирования, управления и мониторинга. Система

    тиражирования реализована на интуитивно понятной метафоре «издатель —

    подписчик»;

  • Расширяемость. Пользователи создают базы данных самого

    разного типа, и Microsoft построила тиражирование данных вокруг стандартных

    интерфейсов взаимодействия (таких как ODBC), что в будущем позволит

    поддерживать тиражирование в неоднородных базах данных, включая и базы

    данных, созданные средствами приложений для ПК.

Графические средства конфигурирования и

администрирования

Конфигурирование и управление процессом тиражирования данных на уровне предприятия

обычно представляет собой сложную и требующую больших затрат времени задачу. В SQL Server

6.0 эта задача выполняется с помощью развитых графических инструментов административного

управления и, таким образом, резко упрощается. Администраторы могут определить все аспекты

процесса создания тиражируемых данных, диспетчирования процессов, установки подписки и

полностью контролировать защищенность тиражируемых данных. Для каждой публикации можно

определить записи или столбцы, входящие в публикацию, и то, какие подписчики имеют право

обращения к каким публикациям. В каждой публикации администратор имеет полный контроль

над доступом к ее данным.

Управление публикациями и статьями в них

После того как база данных открывается для публикации (это видно по соответствующей

пиктограмме в диалоговом окне среды администрирования), администратор определяет, какие

таблицы или/и части таблиц подлежат тиражированию. Организация

тиражирования данных SQL Server обеспечивает высокую гибкость и позволяет точно

указать, какие элементы базы данных получает тот или иной подписчик.(Рис.9,10)

Рис. 9

Рис.9. Диалог настройки тиражирования

Рис. 10

Рис.10. Схема тиражирования

  • Выборочная подписка. Сервер подписки может не подписываться

    вообще, подписаться на некоторые или на все публикации, предлагаемые

    сервером публикаций вашего предприятия.

  • Выборочная подписка на статьи публикаций. Сервер подписки

    может подписаться на все или некоторые статьи внутри публикации.

  • Защита публикаций. Каждая публикация имеет статус защищенной

    или незащищенной (по умолчанию принимается отсутствие защиты). Если

    публикация помечена как незащищенная, то она видна любому и на нее может

    подписаться любой зарегистрированный сервер. В том случае если публикация

    помечена как защищенная, она видна только тем серверам подписки, которым

    дано такое право, и только они могут на нее подписаться.

  • Публикация вертикальных элементов таблицы. При

    необходимости статья публикации может быть определена как набор столбцов

    той или иной таблицы. При этом необходимо учесть, что среди этих столбцов

    обязательно должны присутствовать те, что определяют первичный индекс.

  • Публикация горизонтальных элементов таблицы. Статья также

    может включать только некоторые записи таблицы. В этом случае сервер

    подписки получает только набор записей. (Кроме того, статья может включать

    «прямоугольную вырезку», ограниченную набором столбцов и набором

    записей.)

  • SQL Server 6.0 предоставляет исключительную гибкость в организации

    топологии системы тиражирования данных. Базовые структуры тиражирования

    включают следующие схемы:

  • один сервер публикаций, несколько серверов подписки (самая

    простая схема). Один сервер определен как сервер публикаций. Эта схема

    принимается по умолчанию и лучше всего подходит для создания

    информационных систем, централизованного распространения информации,

    снижения нагрузки основного сервера при создании различного рода отчетов и

    т.п.;

  • один сервер публикаций с использованием промежуточного

    сервера репликаций. Эта схема похожа на предыдущую, только с той

    разницей, что заботу по рассылке информации всем подписчикам берет на

    себя дополнительный сервер. Это снижает нагрузку на основной сервер в том

    случае, когда происходит интенсивная работа с большой базой данных.

    Основной сервер (сервер публикаций) выполняет только обработку транзакций;

  • множество серверов публикаций, один сервер подписки. При

    использовании такой схемы несколько серверов публикаций тиражируют

    данные на единственный сервер подписки. Этот сценарий позволяет

    консолидировать данные в едином центре. Подобная модель может

    использоваться для локальной обработки данных у клиентов в удаленных

    подразделениях;

  • несколько серверов подписки, несколько серверов публикаций.

    При использовании такой схемы несколько серверов могут играть двойную

    роль (выступать одновременно и как серверы подписки, и как серверы

    публикаций). Эта схема подходит для использования в децентрализованных

    организациях, системах резервирования, региональных отделениях. Подобная

    конфигурация должна быть создана вручную.

Что можно ожидать от следующей версии SQL Server

В настоящее время проходит бета-тестирование SQL Server 6.5 — следующая версия сервера баз

данных Microsoft. Несмотря на то что обсуждение бета-версий дело неблагодарное, давайте

посмотрим на некоторые основные нововведения, которые планируется включить в продукт,

запланированный к выходу во втором квартале текущего года.

Следуя линии поддержки работы с большими объемами данных в SQL Server 6.5 планируется

включить поддержку «хранилищ данных».

Будут добавлены следующие возможности: аналитическая обработка данных в реальном времени

(online analytical processing — OLAP) при запросах, тиражирование в базы данных, производимые

другими компаниями, и поддержка программируемых устойчивых представлений и операций по

группировке данных на нескольких серверах.

Основные нововведения в Microsoft SQL Server 6.5

Ключевые возможности по организации хранилищ данных, которые были добавлены в Microsoft

SQL Server 6.5, включают:

  • Новые возможности CUBE и ROLLUP, добавленные в процессор запросов

    Microsoft SQL Server, задача которых — облегчить для поставщиков

    инструментальных средств и для пользователей создание мощных решений

    для анализа данных, хранящихся в базах Microsoft SQL Server. Эти новые

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

    которые за один шаг осуществляют многомерную группировку данных. При

    использовании только ANSI SQL это осуществить весьма не просто.

  • Тиражирование данных в разнородных средах при помощи интерфейса

    ODBC, который облегчит обмен данными в рамках предприятия.

    Первоначально эта возможность будет реализована для платформ DB2, Oracle

    и Sybase. Microsoft SQL Server 6.5 также будет поддерживать репликацию в

    базы данных Microsoft Access, используемые на ПК.

  • Ряд новых возможностей по поддержке программируемых устойчивых

    представлений данных, хранящихся на различных серверах. Разработчики

    смогут поддерживать на настольном компьютере суммированные и

    сгруппированные представления данных, которые хранятся на удаленных

    серверах Microsoft SQL Server. Эти новые утилиты включают возможность

    «перекачивания» данных с сервера на сервер посредством дистанционного

    вызова процедур.

Требования к системе

Windows NT Server 3.51 или выше, Intel® 386 или выше

(рекомендуется 486 или Pentium), MIPS® R4xxx или системы на базе DEC™

Alpha AXP™, минимум 16 Mб RAM (минимум 32 Мб RAM, если сервер

конфигурируется как сервер публикаций), 35 Mб на жестком диске, CD-

ROM
Кроме того, Microsoft SQL Workstation может работать на Windows NT

Workstation версии 3.51 или более поздней

Поддерживаемые сети и протоколы

В комплект поставки Microsoft SQL Server входит поддержка

практически всех сетевых сред, включая: Novell® NetWare® IPX/SPX,

Microsoft Named Pipes (включая Windows NT, Windows® for Workgroups, Windows

95, LAN Manager), TCP/IP sockets, Banyan® VINES®, DECNet™,

AppleTalk®, сети с мультипротоколами

Емкость системы

SQL Server адресует до 2 Гб памяти, до 8 терабайт дискового

пространства, поддерживает до 32767 баз данных на один сервер. До 32767

одновременных пользовательских соединений на сервер. Неограниченное число

таблиц и пользовательских объектов. Базы данных могут размещаться на нескольких

физических дисках

Число пользовательских соединений

32767
15 (один пользователь)

SQL Server
SQL Workstation
Поддерживаемые клиентские платформы

DOS, Windows, Windows NT, UNIX®, OS/2, Macintosh®

[Назад]

[Содержание]

[Вперед]

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

Надежные VPS и выделенные серверы в Нидерландах

Storage VPS, High CPU VPS

Профессиональная техническая поддержка

Домены, SSL сертификаты, VPN

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

Спринтхост — хостинг от 99 ₽ в месяц

Бесподобная поддержка, тестовый период 30 дней и домены от 149 ₽

Промокод на 30% кешбэк — CITFORUM

Новости мира IT:

  • 12.05 — Российскому национальному домену .РФ — 15 лет
  • 12.05 — Представлено сверхтонкое и сверхпрочное стекло Gorilla Glass Ceramic 2 для смартфонов
  • 12.05 — OpenAI пересмотрит партнёрство с Microsoft ради выхода на IPO
  • 12.05 — Сэм Альтман признал, что ChatGPT не заменит Google в качестве основной поисковой системы
  • 12.05 — Intel без лишнего шума свернула поддержку технологии Deep Link
  • 08.05 — Intel пообещала представить на Computex 2025 «несколько видеокарт» Arc Pro для работы и ИИ
  • 08.05 — OpenAI намерена развивать «демократический ИИ» за пределами США в рамках мегапроекта Stargate
  • 08.05 — Apple начала принимать заявки на компенсации по иску о подслушивании Siri
  • 08.05 — Microsoft отстояла сделку века: Activision Blizzard остаётся в империи Xbox
  • 08.05 — Ядро Linux лишится поддержки процессоров Intel 486 и ранних 586
  • 08.05 — Samsung представит сверхтонкий смартфон Galaxy S25 Edge 13 мая
  • 07.05 — Российский суд оштрафовал три иностранных малоизвестных мессенджера
  • 07.05 — «Ростех» импортозаместил приборы для контроля качества российской микроэлектроники
  • 07.05 — Google обновила ИИ-модель Gemini 2.5 Pro, улучшив её способности в программировании
  • 07.05 — IBM разработала инструменты для быстрого создания и интеграции ИИ-агентов
  • 07.05 — Telegram выбыл из топ-5 самых безопасных мессенджеров
  • 30.04 — Больше половины запущенных с 2021 года криптовалют провалились
  • 30.04 — Samsung вернула лидерство на мировом рынке смартфонов — Apple упала на второе место, а Xiaomi укрепилась на третьем
  • 30.04 — В Швейцарии запустили солнечную железную дорогу — солнечные панели уложили прямо между рельсами
  • 30.04 — Intel анонсировала техпроцесс 14A с «турбо-ячейками» и 18A-PT с 3D-штабелированием

Архив новостей

  • Обзор быстрых и сверхбыстрых облачных и хостинг-провайдеров
  • Быстрые и супербыстрые хостинг-провайдеры

ОБЗОР

К СУБД Sybase добавлен хорошо интегрированный набор средств публикации в Сети и проектирования

Стараясь извлечь прибыль из своей прошлогодней страсти к приобретательству, фирма Sybase добавила к Sybase SQL Server 11 версию для Windows NT. В эту версию входят недавно купленные Sybase средства для публикации в World Wide Web, генерации отчетов, моделирования и управления СУБД, включающие практически полный набор инструментов управления СУБД, необходимых небольшой организации.

Все приложения в составе SQL Server 11 Professional for Windows NT уже проверены на рынке. Консоль управления пакетом легка в употреблении и так же хорошо интегрирована, как и нынешний лидер в этой области  —  SQL Server Enterprise Manager корпорации Microsoft.

Компания Sybase  —  первый поставщик СУБД, который включил средства генерации отчетов и модуль проектирования базы данных в базовый пакет СУБД-сервера. Другие ведущие поставщики, в число которых входят корпорации Oracle, Microsoft, IBM и фирма Informix Software, либо вообще не предлагают подобных средств, либо продают их как отдельные продукты.

Несмотря на все это, при тестировании продуктов в Тестовом центре PC Week Labs мы обнаружили в них некоторые недостатки. Например, у управляющей консоли SQL Server 11 Professional  —  весьма ограниченный набор шаблонов для вывода в Web и спартанская среда редактирования, а в средствах проектирования баз данных, включенных в пакет, отсутствуют возможности концептуального моделирования.

Кроме того, ядро СУБД SQL Server 11 не было изменено, из чего следует, что новейшие технологии, например поддержка объектов и сложных типов данных, не были включены в продукт. А такие конкуренты, как Informix и IBM, уже добавили подобную поддержку.

В SQL Server 11 Professional имеется управляющая консоль SQL Central (из офисной SQL-СУБД компании Sybase SQL Anyware) и NetImpact Dynamo  —  средство вывода в Web, поддерживающее вывод в динамические страницы Web.

Автономные приложения, включенные в пакет,  —  это программы производства Sybase InfoMaker, анализатор и генератор отчетов, и SQL Modeler, модифицированная версия модуля проектирования базы данных S-Designor DataArchitect.

Выпущенная в начале января Sybase SQL Server 11 Professional for Windows NT продается по цене $995 за сервер и $195 за клиент. Версия для восьми пользователей стоит $3595, а для неограниченного количества клиентов  —  $34 995. Компания планирует выпустить в этом году версию для Unix и продолжит продажи текущего SQL Server 11 в качестве автономного продукта.

Наиболее существенным изменением в версии Professional является замена SQL Server Manager компании Sybase на SQL Central. Несмотря на небольшой набор шаблонов для Web и ограниченные возможности редактирования, SQL Central значительно проще в работе. В нем были произведены многочисленные усовершенствования для поддержки таких жизненно важных для администратора SQL Server средств, как диски и кэш СУБД.

NetImpact Dynamo  —  передовое средство для печати в Сети компании Sybase  —  можно использовать с любой СУБД, поддерживающей протокол открытого соединения с базами данных (ODBC).

Дополнительно к предоставлению языка написания сценариев с функциями обращения к базе данных Dynamo может хранить весь узел Web непосредственно в базе данных (в данном случае в Sybase SQL Server).

Тем пользователям, которым нужны графические средства разработки Web-приложений, лучше воспользоваться такими пакетами, как Visual InterDev компании Microsoft, Visual Cafe Professional корпорации Symantec или готовящимся пакетом компании Sybase NetImpact Studio, который включает NetImpact Dynamo.

SQL Modeler обладает частью функциональных возможностей своего автономного двойника S-Designor DataArchitect, однако в нем отсутствуют два важных свойства последнего: разделение концептуального и физического моделирования базы данных (SQL Modeler делает только физическое моделирование) и способность работать с очень большим набором СУБД (SQL Modeler может генерировать базы данных только для SQL Server 11).

Набор функций SQL Modeler очень похож на новый несложный пакет Database Designed компании Oracle. Более развитые средства моделирования, такие, как Erwin фирмы Logic Works, Designer/2000 производства Oracle или же собственный комплект фирмы Sybase S-Designer, предоставляют возможности генерации приложений и концептуального моделирования, отсутствующие в SQL Modeler.

Несмотря на эти ограничения, SQL Modeler  —  это гибкая программа физического моделирования баз данных, способная на реинжиниринг полного набора разных типов баз данных (в котором хорошо представлены и локальные, и серверные базы данных) в дополнение к первоначальной генерации моделей баз данных.

Генератор отчетов InfoMaker не изменился по сравнению со своей автономной реализацией и выделяется благодаря функции конвейера данных, который позволяет перемещать данные между базами, что отлично дополняет реинжиниринговые возможности SQL Modeler, а также благодаря большому выбору шаблонов отчетов. Однако интегрированный генератор отчетов сложнее использовать, чем неинтегрированный.

Тимоти Дик

ИТОГОВЫЙ БЮЛЛЕТЕНЬ

Sybase SQL Server 11 Professional for Windows NT

Sybase SQL Server 11 Professional for Windows NT предоставляет практически все необходимые средства для организаций, которым нужно создать базу данных в среде Windows NT. Компоненты пакета хорошо сочетаются и достаточно гибки; в частности, технология публикации в Сети легко программируется. Однако ограниченный набор шаблонов для публикаций означает, что пользователи должны будут начинать разработку своих страниц с нуля.

В хорошо, NT — не тестировалось

+ Широкие функциональные возможности за счет включения средств публикации в Сети, управления, проектирования баз данных и составления отчетов; очень легкая в использовании управляющая консоль; гибкий язык составления сценариев для Web.

—  Слабые возможности редактирования и отладки при публикации данных в Web; интегрированный генератор отчетов; средства моделирования баз данных работают только с СУБД Sybase SQL Server; необходима покупка отдельного Replication Server для любого тиражирования.

Фирма Sybase, Эмеривилль, шт. Калифорния (800) 879-2273, http://www.sybase.com.

С методикой оценки Тестового центра PC

Week Labs можно ознакомиться, обратившись по адресу: http://www.pcweek.com/reviews/meth.html.

Только зарегистрированные пользователи могут оставлять комментарий.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • При запуске программы установки возникла проблема windows 10 закройте средство перезагрузите
  • Office 2019 не ставится на windows 10
  • Gpu control windows 10
  • Можно ли устанавливать пробную версию windows
  • Где посмотреть мак адрес компьютера windows xp