SQL Server 2017 windows 2019

1-click AWS Deployment 1-click Azure Deployment         1-click Google Deployment



Microsoft® SQL Server 2017 is now on the scene with more new features that offer faster processing, more flexibility of use, and greater cost savings as a result.  SQL Server 2017 promises all that and much more of what corporate customers need at all levels. Database performance has reached a new peak with adaptive query processing, new flexibility with cross-platform capabilities, new integrations for statistical and data science analysis, and SQL Server versions on Linux®, Ubuntu® operating systems, or Docker®. The new version adds solid technology with cost savings.

What is SQL Server

SQL Server is a relational database management system, or RDBMS, developed and marketed by Microsoft.

Similar to other RDBMS software, SQL Server is built on top of SQL, a standard programming language for interacting with the relational databases. SQL server is tied to Transact-SQL, or T-SQL, the Microsoft’s implementation of SQL that adds a set of proprietary programming constructs.SQL Server works exclusively on Windows environment for more than 20 years. In 2016, Microsoft made it available on Linux. SQL Server 2017 became generally available in October 2016 that ran on both Windows and Linux.

SQL Server Architecture

The following diagram illustrates the architecture of the SQL Server:

What is SQL Server - SQL Server Architecture

SQL Server consists of two main components:

  1. Database Engine
  2. SQLOS

Database Engine

The core component of the SQL Server is the Database Engine. The Database Engine consists of a relational engine that processes queries and a storage engine that manages database files, pages, pages, index, etc. The database objects such as stored procedures, views, and triggers are also created and executed by the Database Engine.

Relational Engine

The Relational Engine contains the components that determine the best way to execute a query. The relational engine is also known as the query processor.The relational engine requests data from the storage engine based on the input query and processed the results.Some tasks of the relational engine include querying processing, memory management, thread and task management, buffer management, and distributed query processing.

Storage Engine

The storage engine is in charge of storage and retrieval of data from the storage systems such as disks and SAN.


Under the relational engine and storage engine is the SQL Server Operating System or SQLOS.SQLOS provides many operating system services such as memory and I/O management. Other services include exception handling and synchronization services.

SQL Server Services and Tools

Microsoft provides both data management and business intelligence (BI) tools and services together with SQL Server.For data management, SQL Server includes SQL Server Integration Services (SSIS), SQL Server Data Quality Services, and SQL Server Master Data Services. To develop databases, SQL Server provides SQL Server Data tools; and to manage, deploy, and monitor databases SQL Server has SQL Server Management Studio (SSMS).For data analysis, SQL Server offers SQL Server Analysis Services (SSAS). SQL Server Reporting Services (SSRS) provides reports and visualization of data. The Machine Learning Services technology appeared first in SQL Server 2016 which was renamed from the R Services.

SQL Server Editions

SQL Server has four primary editions that have different bundled services and tools. Two editions are available free of charge:

SQL Server Developer edition for use in database development and testing.

SQL Server Expression for small databases with the size up to 10 GB of disk storage capacity.

For larger and more critical applications, SQL Server offers the Enterprise edition that includes all SQL server’s features.

SQL Server Standard Edition has partial feature sets of the Enterprise Edition and limits on the Server regarding the numbers of processor core and memory that can be configured.

Step by step installation of SQL Server 2017

The new SQL Server 2017 comes with new features in the installation. It now supports Machine Learning Services that support R and Python. It also includes SSIS Scale Out Master and Scale Out Worker. It also includes scale out options in PolyBase.

Getting started

First  download the SQL Server 2017 installer and then you have 3 main options. The trial evaluation, Developer edition and Express edition.


  • The SQL Server trial evaluation is the free edition that includes all the features. If you want to check out any/all of the features, this is a complete version. It is a 180 days trial, but you can buy an Enterprise or Standard license later. Use this version if you plan to buy a license later.
  • SQL Server Developer edition is free, but you cannot use it in production. For this tutorial, you can use any of them. I recommend this one if you use it for development purposes or for training purposes. It includes all the features also.
  • The SQL Server Express edition is free and can be used in production, but it has a limitation in Storage (10 GB) and it does not include several features (SQL Server Agent, DTA, etc.). I recommend this edition if you do not have too much disk space or resources in your machine.

There are other editions like the SQL Server Standard and Web edition. They are cheaper versions than the enterprise. The Web edition contains the features necessary to work in a Web hosting environment. The Standard edition is like the Enterprise edition, but it has some limitations like the Transparent Data Encryption, Partition Table parallelism, mirrored backups, online indexing, etc. I recommend checking the features that are not included in this edition to check if it is a good idea to buy them to save money.

Once downloaded, run the setup file of the SQL Server installer. The Basic option will install mainly the Database Engine with basic components. We will use the Custom option to learn some other features included in SQL Server. Download Media is used to install later or to install in other machines:

You can choose the installation location. It requires 9,000 MB of free space. Once selected, press Install:

While installing, you will find useful URLs. For example, the following SQL Server forums. You will receive good advice here:

Also, it will show the GitHub which contains sample databases, code samples and more.

The installer will install in the Planning section. There are many nice resources here like the Hardware and Software requirements to verify if you have all the hardware and software requirements. You also have security documentation, System Configuration Checker, the Data Migration Assistant (DMA), Online installation documentation, Failover and Upgrading documentation:

We will go to the Installation section and select the option New SQL Server stand-alone installation. Note that SQL Server Reporting Services is installed separately:

In product key, you can specify a license or select a free edition. In this example, we will install the developer edition:

License Terms will show the terms to install it. Accept the license terms:

In Microsoft updates, you can verify if there are updates in the installer:

The Install Rules will verify the Active Template Library, the registry keys and if the computer is not a domain controller:

In the context of the Feature Selection, Data Engine Services is the database itself.

  • Replication is useful if you want to replicate your data in another server or another SQL Server instance.
  • Machine Learning Services (In-Database). You can install R or Python. SQL Server 2016 included the R Services. Now, you can have R and/or Python.
  • Full-Text and Semantic Extractions for Search used for full-text queries.
  • Data Quality Services is used to enrich, standardize and avoid duplicate data.
  • Another nice feature is PolyBase used to query NoSQL Data.
  • Analysis Services is used in Business Intelligence (BI) to generate cubes to create Enterprise Reports with a multi-dimensional technology:

If you select to install PolyBase, the setup will ask for the Oracle JRE.

You can have multiple SQL Server instances in SQL Server in the same server. This can be useful to simulate and practice replications, mirroring or to have separate instances for different purposes. By default, you can install the default instance that is usually the Server computer name:

In  PolyBase you can now install as a standalone instance or using a PolyBase scale-out group. The Scale-out group is used when you need to query massive data and you need to distribute the job across multiple SQL Server instances. This option requires to enable ports and enable the MSDTC:

There are account names created automatically for each service. It is a good practice to keep them. Do not grant administrative privileges to these accounts unless there is no other choice:

There are two options in SQL Server to authenticate. Windows authentication will use the Windows Account to authenticate in SQL. Mixed Mode allows creating internal logins and passwords inside SQL Server. You can Add accounts here using the Add Current User or by pressing the Add button:

In the Data Directories tab, you can choose the location of your data file and log file. It is a good practice to have them in separated drives to improve performance and increase security for disaster recovery.

The TempDB tab is used to configure the TempDB database. This is a system table used to store temporary data. Check our article to improve your database performance by configuring this database correctly:

FILESTREAM allows to store non-structured data like documents, images in the database:

The Analysis Services Configuration allows installing a Multidimensional and Data Mining Mode. This is a multidimensional cube that allows creating fast queries for enterprise reports. Another option is to Install Tabular Mode. The Tabular databases are dependent on the RAM. If your database will have several TB of information, the Multidimensional option is better. If you require Data Mining services, the Multidimensional option is better. PowerPivot can be used in Excel or if you can use it in SharePoint. PowerPivot for Excel can be used to create your reports. If you need to share with multiple people you can use SharePoint. You can add users with administrative permissions:

Integration Scale-Out Configuration – Master Mode will be used to define the port to communicate between the master and worker nodes. You will also be able to create the certificate here or use an existing one:

In the Integration Services Scale Out Configuration – Worker Node, you need to specify the endpoint of the Master Node, which is the master node name and the port. You can also specify the SSL certificate here:

You will receive a question if you want to install R. Press Accept and then next. R is a very popular language used for machine learning and other uses:

You can also accept to install Python which is a competes with R and offers many useful capabilities

Once that you have everything installed, you can verify the configurations. If everything is OK, press Install:

After 15-45 min, you will have your database installed:

Once installed the database and other components, open the installer. In the Installation section select the option to Install the SQL Server Management Tools:

It will go to the SSMS web page, download the product:

Once downloaded, install the product:

In the Windows menu, open the Microsoft SQL Server Management Studio:

Select the SQL Server name and press Connect:

Select a database. Right click and select New Query:

We will run a system stored procedure. The sp_who that will show the sessions, users connected and processes:

Another tool that is installed separately is the SQL Server Data Tools. This tool will help you if you want to work with BI tools like SSAS, SSIS or SSRS:

The link will go to the SSDT web page you can download the last version here:



SQL Server 2017 represents a major step towards making SQL Server a platform that gives you choices of development languages, data types, on-premises or cloud, and operating systems by bringing the power of SQL Server to Linux, Linux-based Docker containers, and Windows. 

Cognosys Provides Hardened images of SQL Server 2017 windows 2019 on the cloud ( AWS marketplace, Azure and Google Cloud Platform) with multiple utilities to help in easy deployment.




Get support for small data marts to large enterprise data warehouses while reducing storage needs with enhanced data compression. Scale to petabytes of data for enterprise-grade relational data warehousing—and integrate with non-relational sources like Hadoop.



New SQL Server 2017 features

SQL Server on Linux

SQL Server is no longer just a windows-based relational database management system (RDBMS). You can run it on different flavors of the Linux operating systems. You can also develop applications with SQL Server on Linux, Windows, Ubuntu operating systems, or Docker and deploy them on these platforms.

Resumable online index rebuild

This feature resumes an online index rebuild operation from where it stopped after events such as database failovers, running out of disk space, or pauses.

The following images show an example of this operation:


When you perform online index operations, the following guidelines apply:

  • Clustered indexes must be created, rebuilt, or dropped offline when the underlying table contains image, ntext, and text large object (LOB) data types.
  • Non-unique and non-clustered indexes can be created online when the table contains LOB data types but none of these columns are used in the index definition as either key or as non-key (included) columns.
  • Indexes on local temporary tables cannot be created, rebuilt, or dropped online. This restriction does not apply to indexes on global temporary tables.
  • You can perform concurrent online index data definition language (DDL) operations on the same table or view only when you are creating multiple new non-clustered indices, or reorganizing non-clustered indices. All other online index operations performed at the same time fail. For example, you cannot create a new index online while rebuilding an existing index online on the same table.

SQL Server machine learning services

SQL Server 2016 integrated the R programming language, which can be run within the database server and can be embedded into a Transact-SQL (T-SQL) script, too. In SQL Server 2017, you can execute the Python script within the database server itself. Both R and Python are popular programming languages that provide extensive support for data analytics along with natural language processing capability.

Query processing improvements

SQL Server 2017 adapts optimization strategies to your application workload’s runtime conditions. It includes adaptive query processing features that you can use to improve query performance in SQL Server and SQL Database.

There are three new query improvements as shown in the following diagram:

  • Batch mode memory grant feedback: This feedback technique recalculates required memory for the execution plan and grants it from cache.
  • Batch mode adaptive joins: To execute the plan faster, this technique can use a hash join or a nested loop join. After scanning the first input of the execution plan, it decides which join to use to produce output at the fastest speed.
  • Interleaved execution: Interleaved execution pauses optimization of an execution plan when it encounters multi-statement table-valued functions. Then, it calculates perfect cardinality and resumes optimization.

Automatic database tuning

This feature notifies you whenever a potential performance issue is detected and enables you to apply corrective actions, or it enables the database engine to automatically fix performance issues caused by the SQL plan choice regressions. Thus, the database can dynamically adapt to your workload by finding what indexes and plans might improve performance of your workloads and what indexes affect your workloads. Based on these findings, the automatic tuning process applies actions that improve the workload performance. In addition, the database continuously monitors performance after any change made by automatic tuning to ensure that it improves the workload performance. Any action that doesn’t improve performance is automatically reverted.


The SQL Server database engine may use different SQL plans to execute the T-SQL queries. Query plans depend on the statistics, indexes, and other factors. In some cases, the new plan might not be better than the previous one, and the new plan might cause a performance regression. Whenever you notice a poor plan choice regression, you should find a previously used good plan and force it to be used instead of the current one by using the sp_query_store_force_plan procedure. The database engine in SQL Server 2017 (v. 14.x) provides information about regression plans and recommended corrective actions. Additionally, the database engine enables you to fully automate this process and let the database engine fix any problems related to the plan changes that are found.


The automatic plan correction is shown in the following diagram:

The following automatic tuning features are available:

  • Automatic plan correction (available in SQL Server 2017 v14.x and Azure SQL Database): It identifies problematic query execution plans and fixes the SQL plan performance problems. Automatic tuning is enabled using the following command:

  • Automatic index management (available only in Azure SQL Database): It identifies indexes that should be added in your database and indexes that should be removed.

TempDB file size improvements

SQL Server 2017 setup now enables you to specify the initial TempDB file size up to 256 GB (262,144 MB) per file, with a warning if the file size is set greater than 1GB without instant file initialization (IFI) enabled. It is important to understand that, depending on the initial size of TempDB data file specified, not enabling IFI can cause setup time to increase exponentially.

Smart differential backup

A new column modified_extent_page_count is introduced in sys.dm_db_file_space_usage to track differential changes in each database file in the database. The new column modified_extent_page_count allows DBAs, the SQL community, and backup independent software vendors (ISVs) to build smart backup solutions, which perform differential backups if the percentage of changed pages in the database is below a threshold (approximately 70-80%). Otherwise, they perform a full database backup. With a large number of changes in the database, the cost and time to complete differential backups is similar to taking a full database backup, so there is no real benefit of taking differential backup in this case. However, it can certainly increase the restore time of database. By adding this intelligence to the backup solutions, you can now save on restore and recovery time by using differential backups.

Smart transaction log backup

A new Dynamic Management Function (DMF), sys.dm_db_log_stats (database_id), was released. This function exposes a new column, log_since_last_log_backup_mb, which empowers DBAs, the SQL community, and backup ISVs to build intelligent T-log backup solutions to take backups based on the transactional activity on the database. This T-log backup solution intelligence ensures that, if the T-log backup frequency is too low, the transaction log size doesn’t grow due to a high burst of transactional activity in a short time. It also helps to avoid a situation where the scheduled transaction log backup creates too many T-log backup files even when there is no transactional activity on the server. If that happened, it would add unnecessarily to the storage, file management, and restore overheads.

Improved SELECT INTO statement

In SQL Server 2017, you can provide the filegroup name on which to create a new table by using the ON keyword with the SELECT INTO statement. The table is created on the default filegroup of the user by default. This functionality was not available in previous versions.

Distributed transaction support

SQL Server 2017 supports distributed transactions for databases in availability groups. This support includes databases on the same instance of SQL Server and databases on different instances of SQL Server. Distributed transactions are not supported for databases configured for database mirroring.

New availability groups functionality

This functionality includes clusterless support, the Minimum Replica Commit Availability Groups setting, and Windows-Linux cross-OS migrations and testing.

This functionality includes the following features:

  • Availability groups can now be set up without an underlying cluster (Windows Server Failover Cluster or WSFC) and across mixed environments (instances on Windows and Linux or Docker).

  • The new Minimum Replica Commit setting enables you to dictate a certain number of secondary replicas. You must commit a transaction before committing on the primary.

New dynamic management views

The dynamic management views (DMVs) include the following elements:

  • sys.dm_db_log_stats exposes summary level attributes and information on transaction log files and is helpful for monitoring transaction log health.
  • sys.dm_tran_version_store_space_usage enables you to see the impact on version store usage, grouped by each database. As a result, you can use this to profile your workload in a test environment (before and after the change) and to monitor the impact over time–even if other databases are also using version store.
  • sys.dm_db_log_info exposes virtual log file (VLF) information to monitor, alert, and avert potential transaction log issues.
  • sys.dm_d_stats_histogram is a new dynamic management view for examining statistics, as shown in the following image:

  • sys.dm_os_host_info exposes things like platform, distribution, service pack level, and language.
  • sys.dm_os_sys_info was expanded, revealing CPU information (such as socket count, core count, and cores per socket).

In-memory enhancements

The in-memory changes in SQL Server 2017 include the following enhancements:

  • Computed column, and indexes on those columns, are now supported.
  • CASE expressions, CROSS APPLY, and TOP (N) WITH TIES are now supported in natively-compiled modules.
  • JSON commands are now fully supported in both check constraints and in natively-compiled modules.
  • The system procedure sp_spaceused now properly reports space for memory-optimized tables.
  • The system procedure sp_rename now works on in-memory tables and natively-compiled modules.
  • The limitation of eight indexes on memory-optimized tables has been eliminated.
  • Memory-optimized filegroup files can now be stored on Azure storage.

Security enhancement

You can now grant, deny, or revoke permissions on database-scoped credentials such as CONTROL, ALTER, REFERENCES, TAKE OWNERSHIP, and VIEW DEFINITION permissions. Also, ADMINISTER DATABASE BULK OPERATIONS is now visible in sys.fn_builtin_permissions.

High availability and disaster recovery

Gain mission-critical uptime, fast failover, easy setup, and load balancing of readable secondaries with enhanced Always On functionality in SQL Server 2017. This is a unified solution for high availability and disaster recovery on Linux and Windows. You can also put an asynchronous replica in an Azure virtual machine for hybrid high availability.

Performance improvements

SQL Server 2017 introduces the following changes to the way queries and statistics are collected and displayed:

  • A new DMV sys.dm_exec_query_statistics_xml allows you to correlate sessions to plans, as long as query profiling is enabled. The following image illustrates this:

  • Showplan XML now includes information about the statistics used for a plan and, for actual plans, runtime metrics and the top 10 wait statistics experienced by that plan. These wait statistics are also now being tracked in the query store.
  • A new dynamic management function sys.dm_db_stats_histogram enables you to access histogram information programmatically, without databases console commands (DBCC).


–Major Features of SQL Server :


SQL Server 2017 includes many new Database Engine features, enhancements, and performance improvements.

  • CLR assemblies can now be added to a whitelist, as a workaround for the clr strict security feature described in CTP 2.0. sp_add_trusted_assembly, sp_drop_trusted_assembly, and sys.trusted_asssemblies are added to support the white list of trusted assemblies (RC1).
  • Resumable online index rebuild resumes an online index rebuild operation from where it stopped after a failure (such as a failover to a replica or insufficient disk space), or pauses and later resumes an online index rebuild operation. See ALTER INDEX and Guidelines for online index operations. (CTP 2.0)
  • The IDENTITY_CACHE option for ALTER DATABASE SCOPED CONFIGURATION allows you to avoid gaps in the values of identity columns if a server restarts unexpectedly or fails over to a secondary server. See ALTER DATABASE SCOPED CONFIGURATION. (CTP 2.0)
  • A new generation of query processing improvements that will adapt optimization strategies to your application workload’s runtime conditions. For this first version of the adaptive query processing feature family, we have three new improvements: batch mode adaptive joinsbatch mode memory grant feedback, and interleaved execution for multi-statement table valued functions. See Intelligent query processing in SQL databases.
  • Automatic database tuning provides insight into potential query performance problems, recommends solutions, and can automatically fix identified problems. See Automatic tuning. (CTP 2.0)




Installation Instructions for Windows


Step 1) RDP  Connection: To connect to the deployed instance, Please follow Instructions to Connect to Windows  instance on AWS Cloud


1) Connect to virtual machine using following RDP credentials:


  • Hostname: PublicDNS  / IP of machine
  • Port : 3389


Username: To connect to the operating system, use RDP and the username is Administrator.

Password : Please Click here to know how to get password .


Step 2) SQL Connection: To Connect Microsoft SQL Server Management Studio in windows server, Please follow Instructions to Connect Microsoft SQL Server Management Studio


Step 3) Database Credentials: You can Login by windows authentication





Please change the password after the first login.


Step 4) Other Information:


1.Default ports:


  • Windows Machines:  RDP Port – 3389
  • Http: 80
  • Https: 443
  • SQL Server Port: 1433 this is by default not allowed on the firewall for security.


Configure custom inbound and outbound rules using this link



Installation Step by Step Screenshots














Installation Instructions for Windows


Step 1) RDP  Connection: To connect to the deployed instance, Please follow Instructions to Connect to Windows instance on Azure Cloud


1) Connect to virtual machine using following RDP credentials:


  • Hostname: PublicDNS  / IP of machine
  • Port : 3389


Username: To connect to the operating system, use RDP and the username is Administrator.

Password : Please Click here to know how to get password .


Step 2) SQL Connection: To Connect Microsoft SQL Server Management Studio in windows server, Please follow Instructions to Connect Microsoft SQL Server Management Studio Local SQL Server sa password has been set as Passw@rd123


Step 3) Database Credentials: You can Login by below SQL Database credentials


      SQL UserName : sa ||  Password : Passw@rd123


Note: You can reset ‘sa’ password by using windows authentication to connect to local SQL instance.Please use localhost in the server name when connecting from inside the RDC



Please change the password after the first login.


Step 4) Other Information:


1.Default ports:


  • Windows Machines:  RDP Port – 3389
  • Http: 80
  • Https: 443
  • SQL Server Port: 1433 this is by default not allowed on the firewall for security.


2. VSCode and debug utilities  have been installed 



Installation Instructions for Windows

Step 1) VM Creation:

  1. Click the Launch on Compute Engine button to choose the hardware and network settings
  2. You can see at this page, an overview of Cognosys Image as well as estimated cost of running the instance.
  3. In the settings page, you can choose the number of CPUs and amount of RAM, the disk size and type etc

Step 2) RDP Connection: To initialize local DB server connect to the deployed instance, Please follow Instructions to Connect to Windows instance on Google Cloud

Step 3) SQL Connection: To Connect Microsoft SQL Server Management Studio in windows server, Please follow Instructions to Connect Microsoft SQL Server Management Studio

Step 4) Database Credentials: You can Login by below SQL Database credentials  

 SQL UserName : sa The below screen appears after successful deployment of the image.

i) Please connect to Remote Desktop as given in step 2 ii) You can use SQL server instance as localhost. The SQL Server instance name to be used is “localhost” Connect to SQL Management Studio with username as sa and password provided in Custom Metadata. If you have closed the deployment page you can also get the sa password from VM Details “Custom metadata” Section.

Step 5 ) Other Information:

1.Default installation path:  “C:\Program Files\Microsoft SQL Server ”

2.Default ports:

  • Windows Machines:  RDP Port – 3389
  • SQL server port:1433: By default, this is blocked on the Public interface for security reasons.





SQL Server 2017 




SQL Server 2017 windows 2019

Related Posts