<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>New features in SQL Server 2017 - Techyaz.com</title>
	<atom:link href="https://techyaz.com/tag/new-features-in-sql-server-2017/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Tips, Tutorials and How-to Topics</description>
	<lastBuildDate>Tue, 15 May 2018 14:36:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8</generator>

<image>
	<url>https://techyaz.com/wp-content/uploads/2017/11/cropped-Site-icon-150x150.png</url>
	<title>New features in SQL Server 2017 - Techyaz.com</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>New T-SQL Functions Introduced in SQL Server 2017</title>
		<link>https://techyaz.com/sql-server/t-sql/new-t-sql-functions-introduced-sql-server-2017/</link>
					<comments>https://techyaz.com/sql-server/t-sql/new-t-sql-functions-introduced-sql-server-2017/#respond</comments>
		
		<dc:creator><![CDATA[Manvendra Deo Singh]]></dc:creator>
		<pubDate>Fri, 09 Feb 2018 16:19:25 +0000</pubDate>
				<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[New features in SQL Server 2017]]></category>
		<category><![CDATA[T-SQL functions]]></category>
		<guid isPermaLink="false">http://techyaz.com/?p=1776</guid>

					<description><![CDATA[<p>SQL Server 2017 is feature rich product that has been launched with multiple new features. You can read attached article where I have explained Top 10 new features added in SQL Server 2017 database engine. I have also explained about&#46;&#46;&#46;</p>
<p>The post <a href="https://techyaz.com/sql-server/t-sql/new-t-sql-functions-introduced-sql-server-2017/">New T-SQL Functions Introduced in SQL Server 2017</a> appeared first on <a href="https://techyaz.com">Techyaz.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>SQL Server 2017 is feature rich product that has been launched with multiple new features. You can read attached article where I have explained<strong> <a href="http://techyaz.com/sql-server/10-new-features-sql-server-2017-database-engine/" target="_blank" rel="noopener">Top 10 new features added in SQL Server 2017 database engine</a>.</strong> I have also explained about new T-SQL functions introduced in SQL Server 2017 (CONCAT_WS, TRANSLATE, TRIM, STRING_AGG) in attached article. Here, I will explain these new T-SQL functions with examples and their use cases.</p>
<p><img fetchpriority="high" decoding="async" class="size-full wp-image-1790 alignright" src="http://techyaz.com/wp-content/uploads/2018/02/New-in-SQL-2017.png" alt="New T-SQL Functions in SQL 2017" width="300" height="300" srcset="https://techyaz.com/wp-content/uploads/2018/02/New-in-SQL-2017.png 300w, https://techyaz.com/wp-content/uploads/2018/02/New-in-SQL-2017-150x150.png 150w, https://techyaz.com/wp-content/uploads/2018/02/New-in-SQL-2017-160x160.png 160w, https://techyaz.com/wp-content/uploads/2018/02/New-in-SQL-2017-320x320.png 320w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>There are four new T-SQL functions introduced in SQL Server 2017. These are very useful that make SQL Server developers life easier. Let’s have a look at each one of these SQL 2017 new  functions with their examples and use cases.</p>
<h3><span style="color: #333399;">CONCAT_WS</span></h3>
<p>If you look at the name of this function <strong><em>CONCAT_WS</em></strong> then it will come out as <em><strong>concatenate with separator.</strong></em> This function requires a separator specified as 1<sup>st</sup> argument and minimum of two or more arguments mentioned as remaining arguments. All arguments will be concatenated into a single string with a separator specified in the 1st argument. Null values are ignored during concatenation, and does not add the separator.</p>
<p>Below are the examples of this new function. Suppose, you want to gather login details that has sysadmin access on your SQL Server Instance in a separator format then you can use below command to get these details. You can change the columns of this command or you can also change the T-SQL command if you want to gather some other information. You can also change the separator comma mentioned in first argument to some other separator as per your wish.</p>
<pre><strong><span style="font-size: medium; color: #0000ff;">SELECT CONCAT_WS (‘,’, name, status, sysadmin) As LoginDetails from syslogins
</span></strong></pre>
<p>The output of above command will look like below details.</p>
<pre><span style="color: #000000;"><strong><span style="font-size: medium;"><u>LoginDetails</u>

Sa,9,1
techyaz\test1,10,1
techyaz\deo1,9,0
ty1,9,0
</span></strong></span></pre>
<p>As I said above, this function skips the null values. You can see this by running below command on your SQL Server 2017 instance.</p>
<pre><strong><span style="font-size: medium; color: #0000ff;">SELECT CONCAT_WS(',',132, NULL, NULL, 'Urban Estate', 'Gurgaon', 122001) AS Address; </span></strong></pre>
<p>Output of above command will be:</p>
<pre><span style="color: #000000;"><strong><span style="font-size: medium;"><u>Address</u>

132,Urban Estate, Gurgaon, 122001
</span></strong></span></pre>
<p>You can see null values have been skipped in above output.</p>
<h3><span style="color: #333399;">TRANSLATE</span></h3>
<p>Another useful T-SQL function introduced in SQL Server 2017 is <strong><em>TRANSLATE</em></strong>. This function returns a string given in first argument after some characters given in second argument translated with the characters given in third arguments.</p>
<p>Here, you need to give three inputs. Input string is first argument that we want to modify with some changes. Second Argument is characters that is an expression of any character type containing characters that should be replaced. Third argument is an expression that will replace second argument mentioned in Inputstring. Make sure that the length and type of characters and translations will be same otherwise you will end up with errors. The output will be same as given in input string if you pass NULL value in any of the second or third argument.</p>
<p>Below is the example of this function.</p>
<pre><span style="color: #0000ff;"><strong><span style="font-size: medium;">SELECT TRANSLATE ('[7.124, 9.6]' , '[,]', '( )') AS Values,
</span></strong></span></pre>
<p>Here we are replacing a square bracket having comma with regular bracket and blank space in place of comma.   Output of above T-SQL will be given below.</p>
<pre><span style="color: #000000;"><strong><span style="font-size: medium;"><u>Values</u>

(7.124 9.6)
</span></strong></span></pre>
<p>You can see square bracket has been replaced with the given one and comma separator is also removed from above expression. If you want to revert it of you want to enter comma or any separator with changing the give brackets you can also get this done using this function.</p>
<pre><span style="color: #0000ff;"><strong><span style="font-size: medium;">SELECT TRANSLATE('(7.124 9.6)' , '( )', '[,]') AS Values;
</span></strong></span></pre>
<p>Output of above command will look like below information.</p>
<pre><span style="color: #000000;"><strong><span style="font-size: medium;"><u>Values</u>

[7.124,9.6]

</span></strong></span></pre>
<p>Another example of this function is given below. Run below t-sql command if you want to replace few to the brackets with the given in transactions argument.</p>
<pre><span style="color: #0000ff;"><strong><span style="font-size: medium;">SELECT TRANSLATE('[4+2]/{6-2}', '[]{}', '()()') As Formula;
</span></strong></span></pre>
<p>The output of above command will be look like below info.</p>
<pre><span style="color: #000000;"><strong><span style="font-size: medium;"><u>Formula</u>

(4+2)/(6-2)
</span></strong></span></pre>
<h3><span style="color: #333399;">TRIM</span></h3>
<p>This function has enabled users to remove the space characters or other characters from the start or end of the string. Earlier we used to do the same thing using <em><strong>LTRIM(RTRIM(@string))</strong></em> T-SQL command.</p>
<p>Below example will remove the free spaces given before and after the word techyaz.</p>
<pre><span style="color: #0000ff;"><strong><span style="font-size: medium;">SELECT TRIM( '             techyaz              ') AS Result;
</span></strong></span></pre>
<p>We can the output of above t-sql function given as:</p>
<pre><strong><span style="font-size: medium; color: #000000;">Techyaz
</span></strong></pre>
<p>Earlier we used to do the same thing using below t-sql command.</p>
<pre><span style="color: #0000ff;"><strong><span style="font-size: medium;">LTRIM(RTRIM('    techyaz    '))</span></strong></span></pre>
<h3><span style="color: #333399;">STRING_AGG</span></h3>
<p>Many developers were expected this function to be part of SQL Server since long time. Now their wish have been completed in SQL Server 2017. <strong><em>STRING_AGG</em></strong> is going to become very popular among all new functions. This function concatenates the values of string expressions and places separator values between them. The separator is not added at the end of string.</p>
<p><em><strong>STRING_AGG</strong></em> is an aggregate function that takes all expressions from rows and concatenates them into a single string. Here is the example where we will see output from a table in a given format.</p>
<pre><strong><span style="font-size: medium; color: #0000ff;">SELECT STRING_AGG(CONCAT(FirstName, ' ', LastName, ' (', ModifiedDate, ')'), CHAR(13))
AS names
FROM Person.Person;
</span></strong></pre>
<p>Output of above command will look like:</p>
<pre><span style="color: #000000;"><strong><span style="font-size: medium;"><u>Names</u>

Manvendra Singh (Feb 8 2018 12:00AM)
Maruti Nandan (Dec 24 2017 12:00AM)
Angelo M (Feb 5 2018 12:00AM)
</span></strong></span></pre>
<p>You can see all column values are showing a single string in each row. Another aspect of this function is given in below example.</p>
<p>Suppose, you have a database having information about your blog or published articles. There are separate tables to save articles and their tags. Now, developers want to return one row per each article with all associated tags. We can use below query to get the output.</p>
<pre><span style="color: #0000ff;"><strong><span style="font-size: medium;">SELECT a.ArticleId, Title, STRING_AGG (tag, ',') as Tags
FROM dbo.Article AS a
LEFT JOIN dbo.ArticleTag AS t
ON a.ArticleId = t.ArticleId
GROUP BY a.articleId, title;
</span></strong></span></pre>
<p>Output of above command will look like below details.</p>
<table width="716">
<thead>
<tr>
<td><span style="color: #000000;"><strong>ArticleId</strong></span></td>
<td><span style="color: #000000;"><strong>Title</strong></span></td>
<td><span style="color: #000000;"><strong>Tags</strong></span></td>
</tr>
</thead>
<tbody>
<tr>
<td><span style="color: #000000;"><strong>69</strong></span></td>
<td><span style="color: #000000;"><strong>How to Check IP Address in Linux</strong></span></td>
<td><span style="color: #000000;"><strong>Linux,ip,rhel,howto</strong></span></td>
</tr>
<tr>
<td><span style="color: #000000;"><strong>70</strong></span></td>
<td><span style="color: #000000;"><strong>How to Learn SQL Server DBA</strong></span></td>
<td><span style="color: #000000;"><strong>Learning</strong></span></td>
</tr>
<tr>
<td><span style="color: #000000;"><strong>71</strong></span></td>
<td><span style="color: #000000;"><strong>What is Pages and Extents</strong></span></td>
<td><span style="color: #000000;"><strong>Page,extent,datafiles,db</strong></span></td>
</tr>
</tbody>
</table>
<p>Here, I have described new T-SQL functions introduced in SQL Server 2017 with their examples. I hope you like this article. Please follow our <a href="https://www.facebook.com/Techyaz/">Facebook</a> page and <a href="https://twitter.com/Tech_yaz">Twitter</a> handle to get latest updates.</p>
<p><em><strong><span style="color: #800000;">Read More:</span></strong></em></p>
<ul>
<li><strong><a href="http://techyaz.com/sql-server/difference-between-union-and-union-all-operators/" target="_blank" rel="noopener">What is the Difference between UNION and UNION ALL T-SQL Operators?</a></strong></li>
<li><strong><a href="http://techyaz.com/sql-server/understanding-different-types-sql-joins-examples/" target="_blank" rel="noopener">Understanding Different types of SQL JOINs with their Examples</a></strong></li>
<li><strong><a href="http://techyaz.com/sql-server/get-row-counts-tables-database/" target="_blank" rel="noopener">How to get Total Row Count of all tables of a database</a></strong></li>
<li><strong><a href="http://techyaz.com/sql-server/how-to-disable-auto-commit-in-sql-server/" target="_blank" rel="noopener">How to Disable AutoCommit in SQL Server?</a></strong></li>
</ul>
<p>&nbsp;</p>
<p>The post <a href="https://techyaz.com/sql-server/t-sql/new-t-sql-functions-introduced-sql-server-2017/">New T-SQL Functions Introduced in SQL Server 2017</a> appeared first on <a href="https://techyaz.com">Techyaz.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techyaz.com/sql-server/t-sql/new-t-sql-functions-introduced-sql-server-2017/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Use Resumable Online Index Rebuild Operation in SQL Server?</title>
		<link>https://techyaz.com/sql-server/indexes/use-resumable-online-index-rebuild-operation-sql-server/</link>
					<comments>https://techyaz.com/sql-server/indexes/use-resumable-online-index-rebuild-operation-sql-server/#respond</comments>
		
		<dc:creator><![CDATA[Manvendra Deo Singh]]></dc:creator>
		<pubDate>Wed, 03 Jan 2018 15:25:54 +0000</pubDate>
				<category><![CDATA[Indexes]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Index]]></category>
		<category><![CDATA[index rebuild]]></category>
		<category><![CDATA[New features in SQL Server 2017]]></category>
		<category><![CDATA[Resumable Online Index Rebuild]]></category>
		<category><![CDATA[SQL Server 2017]]></category>
		<category><![CDATA[SQL Server Indexes]]></category>
		<guid isPermaLink="false">http://techyaz.com/?p=1431</guid>

					<description><![CDATA[<p>Resumable Online Index Rebuild is a new feature introduced in SQL Server 2017. Index Rebuild operation is very expensive task that takes lot of system resources and log spaces during execution. Sometimes, we need to cancel index rebuild operation in&#46;&#46;&#46;</p>
<p>The post <a href="https://techyaz.com/sql-server/indexes/use-resumable-online-index-rebuild-operation-sql-server/">How to Use Resumable Online Index Rebuild Operation in SQL Server?</a> appeared first on <a href="https://techyaz.com">Techyaz.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Resumable Online Index Rebuild is a new feature introduced in SQL Server 2017. <strong><a href="http://techyaz.com/sql-server/difference-index-rebuild-reorganize/" target="_blank" rel="noopener">Index Rebuild operation</a> </strong>is very expensive task that takes lot of system resources and log spaces during execution. Sometimes, we need to cancel index rebuild operation in middle of its execution to reclaim the space as well as system resources to avoid any performance issue, space issue or blocking issues. In previous versions of SQL Server, we rerun index rebuild operation again if we cancel it during its execution to make sure the database maintenance activity should be done. Re-execution of this job will start rebuilding indexes again from scratch that will take lot of time and resources again. Microsoft has given a solution named Resumable Index Rebuild to overcome of this scenario. Resumable Online Index Rebuild option is an extension of feature Online Index Operation in SQL Server. Read below article if you want to understand the disk and performance impact of using online index rebuild operation.</p>
<ul>
<li><strong><a href="http://techyaz.com/sql-server/performing-online-index-rebuild-operation/" target="_blank" rel="noopener">What would be Disk and Performance Impact if we rebuild indexes using ONLINE option?</a></strong></li>
</ul>
<h3><span style="color: #333399;">Resumable Online Index Rebuild</span></h3>
<p>This feature allows us to pause index rebuild operation during its execution at any point and resume it later from the point it was paused. You can use this feature in case you get any higher priority tasks or your server is running out of disk space or facing any performance issue. In addition, this feature rebuilds indexes using only a small amount of log space.</p>
<p>This feature allows us to resume an index rebuild operation after an index rebuild failure, such as after a database failover or after running out of disk space. We can also pause an ongoing index rebuild operation and resume it later. Resumable Online Index Rebuild allows us to rebuild large indexes without using a lot of log space.</p>
<p><em><span style="color: #800000;"><strong>Read More</strong></span></em></p>
<ul>
<li><strong><a href="http://techyaz.com/sql-server/sql-server-interview-questions-answers-indexes/" target="_blank" rel="noopener">SQL Server Interview Questions &amp; Answers on Indexes</a></strong></li>
<li><strong><a href="http://techyaz.com/sql-server/what-should-be-the-best-value-for-fill-factor-in-sql-server/" target="_blank" rel="noopener">What should be Best Value for fill factor in SQL Server?</a></strong></li>
<li><strong><a href="http://techyaz.com/sql-server/how-to-avoid-page-split-in-sql-server/" target="_blank" rel="noopener">How to Avoid Page Split in SQL Server?</a></strong></li>
</ul>
<h3><span style="color: #333399;">Points to Consider</span></h3>
<p>Below are the points you must keep in mind if you are choosing resumable online index rebuild operation.</p>
<ol>
<li>When an index operation is paused, both the original index and the the newly created one require disk space and need to be updated during DML operations.</li>
<li>Enables truncation of transaction logs during an index rebuild operation (this operation cannot be performed for a regular online index operation).</li>
<li>Resumable Online Index Rebuild feature can be used only with<strong> <a href="http://techyaz.com/sql-server/performing-online-index-rebuild-operation/" target="_blank" rel="noopener">Online Index Rebuild operation</a></strong>. You cannot use it for offline index rebuild operation.</li>
<li>We cannot rebuild an index that is disabled.</li>
<li>We cannot use ALL option to rebuild existing indexes.</li>
<li>Resumable Index Rebuild operation cannot be used to rebuild an existing index that has either computed column or timestamp column as part of the index key.</li>
<li>We cannot use SORT_IN_TEMPDB=ON option if we choose to use resumable index rebuild option.</li>
</ol>
<p><img decoding="async" class="aligncenter wp-image-1433 size-full" src="http://techyaz.com/wp-content/uploads/2018/01/Resumable-Online-Index-Rebuild.png" alt="Resumable Online Index Rebuild" width="560" height="315" srcset="https://techyaz.com/wp-content/uploads/2018/01/Resumable-Online-Index-Rebuild.png 560w, https://techyaz.com/wp-content/uploads/2018/01/Resumable-Online-Index-Rebuild-300x169.png 300w" sizes="(max-width: 560px) 100vw, 560px" /></p>
<p>&nbsp;</p>
<h3><span style="color: #333399;">How to use Resumable Online Index Rebuild?</span></h3>
<p>I have given multiple examples to demonstrate the different use cases of resumable online index rebuild operation in this section. If we want to use the resumable index rebuild functionality, we need to execute the online index rebuild with <strong>RESUMABLE</strong> keyword because Resumable index rebuild supports only during online index rebuild, so we must specify <strong>ONLINE = ON</strong> along with <strong>RESUMABLE = ON</strong> option. You cannot use this feature until you mention <strong>RESUMABLE = ON </strong>in your code because RESUMABLE=OFF is the default value. Run below command to rebuild index online as resumable option.</p>
<pre><strong><span style="color: #0000ff;">ALTER INDEX INDEX_Name on Table_Name
REBUILD WITH (ONLINE=ON, RESUMABLE=ON) ;
</span></strong></pre>
<p>We can also specify MAXDOP settings during online index rebuild as resumable option to use parallelism. Execute an online index rebuild as resumable operation with <strong>MAXDOP=1</strong> by running below command.</p>
<pre><strong><span style="color: #0000ff;">ALTER INDEX INDEX_Name on Table_Name 
REBUILD WITH (ONLINE=ON, MAXDOP=1, RESUMABLE=ON) ;
</span></strong></pre>
<p>We can also control execution or processing time of resumable online index rebuild by specifying <strong>MAX_DURATION</strong> option. It specifies the number of minutes that the resumable online index operation will be executed, before being paused. Execute an online index rebuild as resumable operation with MAX_DURATION set to 30 minutes.</p>
<pre><strong><span style="color: #0000ff;">ALTER INDEX INDEX_Name on Table_Name 
REBUILD WITH (ONLINE=ON, RESUMABLE=ON, MAX_DURATION=30) ;</span></strong></pre>
<p>Next, we will discuss about pausing these index rebuild operations that are running as resumable option in next section.</p>
<h3><span style="color: #333399;">Pause Online Index Rebuild running with Resumable Option</span></h3>
<p>If you want to manually pause a running resumable online index rebuild then you just need to use PAUSE clause in above ALTER INDEX statements. Run below command to pause a resumable index rebuild operation.</p>
<pre><strong><span style="color: #0000ff;">ALTER INDEX INDEX_Name on Table_Name PAUSE ;
</span></strong></pre>
<p>Now we will discuss about how to resume a paused online index rebuild operation in next section.</p>
<h3><span style="color: #333399;">Resume an Online Index Rebuild running with Resumable Option</span></h3>
<p>As I have mentioned above, you can pause online index rebuild due to any reason. Let’s say suppose you pause it because it is taking lot of time to complete and consuming lot of system resources then you can either resume it later when system has enough resource to run this operation or you can resume it specifying a new value for MAXDOP setting that will allow this operation to use parallelism to finish this task.</p>
<p>Suppose you want to resume an online index rebuild for an index rebuild that was executed as resumable operation specifying a new value for MAXDOP set to 8.</p>
<pre><strong><span style="color: #0000ff;">ALTER INDEX INDEX_Name on Table_Name </span></strong>
<strong><span style="color: #0000ff;">RESUME WITH (MAXDOP=8) ;
</span></strong></pre>
<p>If you want to resume an online index rebuild for an index rebuild that was executed as resumable operation with the same values then you can remove the MAXDOP options from above command and execute the simple command given below.</p>
<pre><strong><span style="color: #0000ff;">ALTER INDEX INDEX_Name on Table_Name RESUME;
</span></strong></pre>
<p>You can also resume an online index rebuild operation for an index rebuild that was executed as resumable with different parameters like you can set MAXDOP to 2, set the execution time for the index being running as resumable to 60 minutes and in case of an index being blocked on the lock wait 10 minutes and after that kill all blockers. Run below command to rebuild your indexes with above criteria.</p>
<pre><strong><span style="color: #0000ff;">ALTER INDEX INDEX_Name on Table_Name
RESUME WITH (MAXDOP=2, MAX_DURATION= 60 MINUTES,
WAIT_AT_LOW_PRIORITY (MAX_DURATION=10, ABORT_AFTER_WAIT=BLOCKERS)) ;
</span></strong></pre>
<p>You can test it in your lower life cycle with multiple options and keywords to get in depth knowledge about this feature.</p>
<h3><span style="color: #333399;">Abort a Resumable Index Rebuild operation</span></h3>
<p>We can also abort resumable index rebuild operation which is running or paused by executing below T-SQL statement.</p>
<pre><strong><span style="color: #0000ff;">ALTER INDEX INDEX_Name on Table_Name ABORT ;
</span></strong></pre>
<p>Once you will run above command, your index rebuild operation will be aborted.</p>
<h3><span style="color: #333399;">Monitor Resumable Index Rebuild Operation</span></h3>
<p>Microsoft has given a system view<strong> sys.index_resumable_operations</strong> that monitors and checks the current execution status for resumable Index rebuild. You can also get the progress details in percentage of resumable index rebuild operation using this system view.</p>
<p>There is a column named <strong>state</strong> in this system view that will let us know the state of the resumable index rebuild operation whether it is paused or still running. You can query this system view to see all the resumable index rebuild operations that are currently paused or running.</p>
<p>Run below command to list all resumable index rebuild operations that are in the PAUSE state. State column value zero means online index rebuild is running and value 1 means they are paused. You can also check the percent completion of all resumable index rebuild operations from column <strong>PERCENT_COMPLETE</strong> from the output received by below command.</p>
<pre><strong><span style="color: #0000ff;">SELECT * FROM  sys.index_resumable_operations WHERE STATE = 1;
</span></strong></pre>
<p><em><span style="color: #800000;"><strong>Related Articles</strong></span></em></p>
<ul>
<li><strong><a href="http://techyaz.com/sql-server/performing-online-index-rebuild-operation/" target="_blank" rel="noopener">Performing Online Index Rebuild Operation</a></strong></li>
<li><strong><a href="http://techyaz.com/sql-server/understanding-sql-server-indexes/" target="_blank" rel="noopener">Understanding SQL Server Indexes and difference between Clustered and Nonclustered Indexes</a></strong></li>
<li><strong><a href="http://techyaz.com/sql-server/difference-index-rebuild-reorganize/" target="_blank" rel="noopener">Difference between Index Rebuild and Index Reorganize Operation </a></strong></li>
</ul>
<p>I hope you like this article. Please follow our <a href="https://www.facebook.com/Techyaz/">Facebook</a> page and <a href="https://twitter.com/Tech_yaz">Twitter </a>handle to get latest updates.</p>
<p>The post <a href="https://techyaz.com/sql-server/indexes/use-resumable-online-index-rebuild-operation-sql-server/">How to Use Resumable Online Index Rebuild Operation in SQL Server?</a> appeared first on <a href="https://techyaz.com">Techyaz.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techyaz.com/sql-server/indexes/use-resumable-online-index-rebuild-operation-sql-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>10 New Features in SQL Server 2017 Database Engine</title>
		<link>https://techyaz.com/sql-server/10-new-features-sql-server-2017-database-engine/</link>
					<comments>https://techyaz.com/sql-server/10-new-features-sql-server-2017-database-engine/#respond</comments>
		
		<dc:creator><![CDATA[Manvendra Deo Singh]]></dc:creator>
		<pubDate>Thu, 05 Oct 2017 15:33:04 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Administration]]></category>
		<category><![CDATA[New features]]></category>
		<category><![CDATA[New features in SQL Server 2017]]></category>
		<category><![CDATA[New Realese]]></category>
		<category><![CDATA[SQL Server 2017]]></category>
		<guid isPermaLink="false">http://techyaz.com/?p=1043</guid>

					<description><![CDATA[<p>SQL Server 2017 is major release that are coming with lots of new features. The most debated new feature in SQL Server 2017 is its support for Linux based operating systems. Yes, now you can install and run SQL Server&#46;&#46;&#46;</p>
<p>The post <a href="https://techyaz.com/sql-server/10-new-features-sql-server-2017-database-engine/">10 New Features in SQL Server 2017 Database Engine</a> appeared first on <a href="https://techyaz.com">Techyaz.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>SQL Server 2017 is major release that are coming with lots of new features. The most debated new feature in SQL Server 2017 is its support for Linux based operating systems. Yes, now you can install and run SQL Server 2017 on Linux based operating system. Here i will discuss top 10 SQL Serve 2017 new features in this article.</p>
<p><img decoding="async" class="wp-image-1044 alignright" src="http://techyaz.com/wp-content/uploads/2017/10/10New-Features-SQL-2017.png" alt="New Features in SQL Server 2017" width="300" height="331" srcset="https://techyaz.com/wp-content/uploads/2017/10/10New-Features-SQL-2017.png 580w, https://techyaz.com/wp-content/uploads/2017/10/10New-Features-SQL-2017-272x300.png 272w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<h3><span style="color: #000080;">SQL Server 2017 New Features in Database Engine</span></h3>
<p>Let&#8217;s discuss SQL Server 2017 features. Below is the list of SQL Server 2017 new features introduced in database engine services.</p>
<p><span style="color: #800000;"><strong>SQL Server on Linux</strong></span></p>
<p>SQL Server is not only Windows based RDBMS anymore now you can run it on different flavor of Linux operating systems.  Now you can develop applications with SQL Server on Linux, Windows, Ubuntu, or Docker and deploy them as well on these platforms. SQL Server can now compete more directly with other RDBMS like Oracle which are more popular on Linux. We can say that <em>SQL Server on Linux</em> is one of the most popular SQL Server 2017 features. You can read below articles if you want to install SQL Server on Linux based operating systems.</p>
<ul>
<li><strong><a href="https://techyaz.com/sql-server/sql-server-on-linux/21-missing-features-in-sql-server-on-linux/" target="_blank" rel="noopener">21 Missing Features in SQL Server on Linux</a></strong></li>
<li><strong><a href="https://techyaz.com/sql-server/sql-server-on-linux/install-sql-server-2017-redhat-linux-without-internet-offline-installation/" target="_blank" rel="noopener">Install SQL Server 2017 on Redhat Linux &#8211; Offline Installation</a></strong></li>
<li><strong><a href="https://techyaz.com/sql-server/sql-server-on-linux/install-sql-server-on-redhat-linux/" target="_blank" rel="noopener">Install SQL Server 2017 on Redhat Linux &#8211; Online Installation</a></strong></li>
<li><strong><a href="https://techyaz.com/sql-server/sql-server-on-linux/install-sql-server-2017-on-ubuntu-server-without-internet-offline-installation/" target="_blank" rel="noopener">How to install SQL Server on Ubuntu &#8211; Offline Installation</a></strong></li>
<li><strong><a href="https://techyaz.com/sql-server/sql-server-on-linux/install-sql-server-2017-ubuntu-internet-access/" target="_blank" rel="noopener">How to install SQL Server on Ubuntu &#8211; Online Installation</a></strong></li>
</ul>
<p><span style="color: #800000;"><strong>Adaptive Query Processing</strong></span></p>
<p>SQL Server 2017 introduce a new generation of query processing improvements that will adapt optimization strategies to your application workload’s runtime conditions. During optimization, the cardinality estimation process is responsible for estimating the number of rows processed at each step in an execution plan. When estimates are <em>inaccurate</em>, the query optimizer may make poor decisions regarding algorithm selection and order of operations. This is also one of the most awaited SQL 2017 new features.</p>
<p>Prior to SQL Server 2017, if we make poor assumptions due to bad cardinality estimates, we do not change our query plan execution strategy during execution. Read attached article Adaptive Query Processing to learn more about it.</p>
<p><span style="color: #800000;"><strong>Resumable Online Index Rebuild</strong></span></p>
<p>Resumable Online Index Rebuild is another SQL 2017 feature. Now we can pause and resume online index rebuild operation. This feature will be very helpful.<strong> <a href="https://techyaz.com/sql-server/use-resumable-online-index-rebuild-operation-sql-server/" target="_blank" rel="noopener">Resumable Online Index Rebuild</a></strong> allows you to resume an online index rebuild operation from where it stopped after a failure. For example, you might need to temporarily free up systems resources in order to execute a high priority task or complete the index rebuild in another maintenance window if the available maintenance windows is too short for a large table. Read attached articles to understand in depth information about this feature.</p>
<ul>
<li><strong><a href="https://techyaz.com/sql-server/use-resumable-online-index-rebuild-operation-sql-server/" target="_blank" rel="noopener">How to Use Resumable Online Index Rebuild in SQL Server?</a></strong></li>
<li><strong><a href="https://techyaz.com/sql-server/performing-online-index-rebuild-operation/" target="_blank" rel="noopener">Performing Online Index Operations</a></strong></li>
</ul>
<p><span style="color: #800000;"><strong>Automatic Database Tuning</strong></span></p>
<p>Automatic tuning is a database feature that provides insight into potential query performance problems, recommend solutions, and automatically fix identified problems. Automatic tuning in SQL Server, notifies you whenever a potential performance issue is detected, and lets you apply corrective actions, or lets the Database Engine automatically fix performance problems.</p>
<p><span style="color: #800000;"><strong>Graph Database Capabilities</strong></span></p>
<p>SQL Server offers graph database capabilities to model many-to-many relationships. The graph relationships are integrated into Transact-SQL and receive the benefits of using SQL Server as the foundational database management system.</p>
<p>A graph database is a collection of nodes (or vertices) and edges (or relationships). A node represents an entity (for example, a person or an organization) and an edge represents a relationship between the two nodes that it connects (for example, likes or friends). Both nodes and edges may have properties associated with them.</p>
<p><span style="color: #800000;"><strong>Cluster less Availability Groups</strong></span></p>
<p>Now we can configure <a href="https://techyaz.com/sql-server/alwayson-availability-group/" target="_blank" rel="noopener"><strong>AOAG\Alwayson Availability group</strong></a> without windows cluster in SQL Server 2017. This feature is added because of another new feature that is to configure AOAG between windows and Linux based SQL Servers. Now you don’t need a windows cluster in place if you want to configure AOAG between windows and Linux based SQL Servers.</p>
<p><span style="color: #800000;"><strong>Cross-OS AOAG</strong></span></p>
<p><strong><a href="https://techyaz.com/sql-server/alwayson-availability-group/" target="_blank" rel="noopener">Availability Groups</a> </strong>can now work across Windows-Linux to enable cross-OS migrations and testing. Now we can configure AOAG between windows based SQL Server and Linux based SQL Server. That is why, Microsoft has also given an option for clusterless AOAG.</p>
<p><span style="color: #800000;"><strong>New Functions</strong></span></p>
<p>There are few <strong><a href="https://techyaz.com/sql-server/t-sql/new-t-sql-functions-introduced-sql-server-2017/" target="_blank" rel="noopener">new T-SQL functions added to SQL Server 2017</a></strong>. Below is the list of those new functions. You can click on hyperlinks to get more about them. These functions are very useful for SQL developers.</p>
<ul>
<li><a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/concat-ws-transact-sql">CONCAT_WS</a></li>
<li><a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/translate-transact-sql">TRANSLATE</a></li>
<li><a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/trim-transact-sql">TRIM</a></li>
<li><a href="https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql">STRING_AGG</a></li>
</ul>
<p><span style="color: #800000;"><strong>New DMVs</strong></span></p>
<p>There are many new DMVs have been introduced as SQL 2017 new features. Below is the list of such DMVs that have been introduced in SQL Server 2017. You can click on hyperlinks to get more about them.</p>
<ul>
<li><a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-tran-version-store-space-usage">sys.dm_tran_version_store_space_usage</a> &#8211; Introduced to track version store usage per database.</li>
<li><a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-stats-histogram-transact-sql">sys.dm_db_stats_histogram (Transact-SQL)</a> is added for examining statistics.</li>
<li><a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-query-statistics-xml-transact-sql">sys.dm_exec_query_statistics_xml</a></li>
<li><a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-host-info-transact-sql">sys.dm_os_host_info</a> is added to provide operating system information for both Windows and Linux.</li>
<li><a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-sys-info-transact-sql">sys.dm_os_sys_info</a> has three new columns added: socket_count, cores_per_socket, numa_node_count.</li>
<li>A new column modified_extent_page_count, is introduced in <u><a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-file-space-usage-transact-sql">sys.dm_db_file_space_usage</a></u> to track differential changes in each database file of the database.</li>
</ul>
<p><span style="color: #800000;"><strong>New DMFs</strong></span></p>
<p>Below is the list of new DMFs introduced in SQL Server 2017. You can click on hyperlinks to get more about them.<strong> </strong></p>
<ul>
<li>This DMF <a href="http://techyaz.com/sql-server/get-total-virtual-log-files/" target="_blank" rel="noopener">sys.dm_db_log_info</a> is introduced to expose the VLF information similar to DBCC LOGINFO to monitor, alert, and avert potential transaction log issues caused due to number of VLFs, VLF size or shrinkfile issues experienced by customers.</li>
<li>Another DMF <a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-log-stats-transact-sql">sys.dm_db_log_stats</a>, is introduced to expose summary level attributes and information on transaction log files. This is very useful for monitoring the health of the transaction log.</li>
</ul>
<p>Here, i have explained about SQL Server 2017 new features. I hope you like this article. Please follow us on our <a href="https://www.facebook.com/Techyaz/">facebook page</a> and on <a href="https://twitter.com/Tech_yaz">Twitter </a>handle to get latest updates.</p>
<p>The post <a href="https://techyaz.com/sql-server/10-new-features-sql-server-2017-database-engine/">10 New Features in SQL Server 2017 Database Engine</a> appeared first on <a href="https://techyaz.com">Techyaz.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://techyaz.com/sql-server/10-new-features-sql-server-2017-database-engine/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
