Category Archives: SQL 2017

Bob Ward to speak at DFW BI & Analytics Community Meeting on 12/6


Come see Bob Ward from Microsoft speak about “Fast and Furious: SQL 2017” at the DFW BI & Analytics Community Meeting on 12/6, 11:30-1:00 at Noah’s in Irving.  You can register on the “Event” section of the ISI website at .

The DFW Business Intelligence and Analytics Community welcomes Bob Ward of the Microsoft Database Systems Group. You may already know him from his blog SQL Server According to Bob.   If you were unable to attend 2017 PASS Summit, Bob will be giving the same groundbreaking presentation he delivered there.

Is your database slowing down your business? Are you using Linux as a platform but can’t find the right database that meets your performance needs without busting your budget? Built on the industry recognized “it just runs faster” SQL Server 2016 engine, SQL Server 2017 provides new capabilities for performance, value, and choice. In this session, we show you features and a “behind the scenes look” at what powers SQL Server 2017 for Linux and Windows. And if you are a database expert and want to tune the SQL Server engine to its maximum turbocharged capacity, we show you the tools, diagnostics, and techniques that make SQL Server 2017 the ultimate database platform choice to run your applications at a fast and furious speed.

Links for new DMV’s in SQL 2017

Since we at SQLRX have been super busy this week and still need to do something for a blog post, I thought that doing a link round up of new dynamic management views that are going to be available in SQL 2017 would be a quick and good idea. I am really interested in sys.dm_db_log_info since it give VLF info and can be used for monitoring and alerting.



A column on sys.dm_db_file_space_usage has been changed:

Brand new dmv’s:







Yee Haw!!!!

For more information about blog posts, concepts and definitions, further explanations, or questions you may have…please contact us at We will be happy to help! Leave a comment and feel free to track back to us. Visit us at!

Installing and Connecting to SQL 2017 on Ubuntu (Linux)

–By Lori Brown

SQL Server 2017 is available as a CTP for testing ( and is able to be installed on a system running Linux. Because I have done all of my professional work on Windows systems, the leap to a Linux system was a bit of a stretch. I learned that while Linux is the OS kernel, Red Hat, SUSE, Ubuntu and Docker Engine are all flavors of Linux. A rough analogy might be that something like Ubuntu is sort of like a version of Windows. Regardless of how you think of it, it is a truly interesting experience to get SQL 2017 installed.

The first thing to do is get your friendly System Admin to stand up a Linux server. We used Ubuntu 16.04 but there are other flavors of Linux that can also be installed as listed below. Your Admin should provide you with a login and password that is an administrator so that you can get SQL running.


Since everything I have ever done on a computer has had a GUI, I decided to install Gnome to try to shorten my learning curve on Ubuntu. ( ) Truthfully, navigating in Gnome was not super intuitive to me but I was able to bumble around and get things done. When following the install instructions from Microsoft, there are places where commands are used to get things done that are labeled “bash”. It took me a bit to figure out that bash is a Unix shell or command prompt that is used to execute commands. I found a bash guide if anyone is interested. ( Apparently you can use bash on Windows….I learn something new every day. (

In Gnome, I had to search for terminal to get the command prompt (bash) window. To get SQL installed, I followed the instructions from Microsoft and have taken screenshots of what it looks like after running commands. (

curl | sudo apt-key add –


curl | sudo tee /etc/apt/sources.list.d/mssql-server.list


sudo apt-get update


sudo apt-get install -y mssql-server


During the setup completion step, you should be ready to provide the SA password when prompted for the SQL Server system administrator password.

sudo /opt/mssql/bin/mssql-conf setup


systemctl status mssql-server


Now install SQLCMD and BCP tools. (  I only installed SQLCMD but the BCP commands are similar.

curl | sudo apt-key add –


sudo apt-get update


sudo apt-get install mssql-tools unixodbc-dev

You have to answer licensing questions here so be ready.



I also installed the SQL Server Agent. The commands are very similar to previous commands so I did not take any extra screen shots of those.

Once the tools are installed, you must use SQLCMD to query. You cannot use SSMS on Ubuntu.


Since I am a creature of the Microsoft world and really want to use SSMS to do things, I need to be able to connect to SQL on Ubuntu using SSMS. So that you can connect remotely, I made sure to open SQL ports in Ubuntu. First you have to enable the firewall:


Then open ports 1433 & 1434:


To connect and query from a Windows machine….install SQL 2017 SSMS. (

Connect to SQL as normal. I tried many times to get connected using my Ubuntu hostname but did not have luck. I was able to connect using the IP address however.


The Ubuntu hostname appears in the terminal connection. Use ifconfig to get the IP address. (


Once connected you can do most things as usual in SSMS.





As of this writing, I found several places where Microsoft employees warned that some things will likely break and that they are working on bugs. So, if you run into anything that you can’t find a way around, let them know. So far Microsoft seems to be very open to information and suggestions which makes me very hopeful that SQL 2017 will be released soon and will be much faster than previous versions.

For a taste of some of the new things in SQL 2017 see:

For more information about blog posts, concepts and definitions, further explanations, or questions you may have…please contact us at We will be happy to help! Leave a comment and feel free to track back to us. Visit us at!

SQL 2017 Is On The Way!!

–By Lori Brown  @SQLSupahStah

SQL Server 2017 is rolling our way like a big ole train. And, with the new features that are going to be available there may be quite a few shops that want to jump onboard.


As of this writing SQL Server 2017 CTP 2.1 is available for download and testing. ( ) I managed to recently attend a presentation by Denzil Ribeiro who is a manager with the SQLCAT team on some of the new features in SQL 2017. I tend to pay attention to the things that get the guys on the inside excited so here are some of the highlights with links that I could find and my notes on SQL 2017.

Resumable Online Index Rebuild

Index rebuilds can be paused and restarted. Since index must be created with ONLINE = ON then it is likely that this is an Enterprise Edition feature.



— Pause


Use sys.index_resumable_operations to view the status of resumable index rebuilds.

Wait stats for per query executions

Available by default. Statistics info is now in query plans. Use sys.query_store_wait_stats to see wait info for a query plan.

Automatic Query Tuning

Recognizes plan regressions and will automatically force a good plan to be used. Database must be in 140 (SQL2017) compatibility. Must enable the Query Store for the database. Can then use sys.dm_db_tuning_recommendations ( ) to get info on plans and recommendations that were used to fix regressions. Won’t force a good plan unless AUTOMATIC_TUNING = ON.



Adaptive Query Processing

Interleaved Execution

Available by default. Adjust plans by testing plan and then redesigning plan based on better row estimates. All while a query is executing.

Batch Mode Memory Grant Feedback

Adjust plan in cache if memory grant is not good enough (either too much or not enough).

Batch Mode Adaptive Joins

After first join in a plan, better decision made to choose Hash Join or Nested Loop Join. If number of rows small then likely Nested Loop Join will be used

Graph Data Processing

Nodes and edges stored as tables. Many – many modeling. New MATCH clause in queries.


SELECT Person2.Name

FROM Person Person1, Friends, Person Person2

WHERE MATCH(Person1 – (Friends) -> Person2)

AND Person1.Name = ‘John’;


Python is now integrated into SQL just like R Services and is used for advanced analytics. I have to admit that Python is way beyond my skillset right now but wanted to mention it.


A lot of these new features for SQL 2017 are evolving and more will come out I am sure. I am in the process of getting a VM with Linux installed on it so that I can check out installing and running SQL Server on Linux so expect a post on that soon.

For more information about blog posts, concepts and definitions, further explanations, or questions you may have…please contact us at We will be happy to help! Leave a comment and feel free to track back to us. Visit us at!