<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'sql server 2012' and 'parallelism'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=sql+server+2012,parallelism&amp;orTags=0</link><description>Search results matching tags 'sql server 2012' and 'parallelism'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Connect Digest : 2012-03-06</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2012/03/06/connect-digest-2012-03-06.aspx</link><pubDate>Tue, 06 Mar 2012 13:57:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:42114</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;This time around, I've got five wish list items for T-SQL / DDL, and then one bonus - a parallelism bug. My thinking on the former is that, since we are either about to start (or are just finishing) locking down the code for SQL Server 2012, this is the first moment where some of these suggestions can be seriously considered without the "but we're about to ship" excuse. :-) The last one is just an incorrect results bug that needs to be fixed. I'll start with the T-SQL / DDL wishes:&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="4"&gt;Ordered Set Functions&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;For a while I've been pretty vocal about getting grouped concatenation into SQL Server - functionality that exists in MySQL (&lt;a href="http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat" title="http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat" target="_blank"&gt;GROUP_CONCAT&lt;/a&gt;) and more recently added to Oracle 11gR2 (&lt;a href="http://docs.oracle.com/cd/E14072_01/server.112/e10592/functions087.htm" title="http://docs.oracle.com/cd/E14072_01/server.112/e10592/functions087.htm" target="_blank"&gt;LISTAGG&lt;/a&gt;). (And here I thought we were the only pencil-necks using an R2 moniker.) I've often promoted &lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/247118/sql-needs-version-of-mysql-group-concat-function" title="http://connect.microsoft.com/SQLServer/feedback/details/247118/sql-needs-version-of-mysql-group-concat-function" target="_blank"&gt;this Connect item&lt;/a&gt; when the question comes up on forums or #sqlhelp. This can be solved by a grander implementation - ordered set functions. This comes directly from the standard and supports grouped concatenation (with predictable ordering, unlike many of the workarounds that exist today, such as FOR XML PATH), and a slew of other functionality. The item you should vote for is one that Itzik Ben-Gan just raised this week (and please see &lt;a href="http://tsql.solidq.com/OSF.doc" title="http://tsql.solidq.com/OSF.doc" target="_blank"&gt;this document for more in-depth background&lt;/a&gt;):&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/728969/feature-request-ordered-set-functions-within-group-clause" title="http://connect.microsoft.com/SQLServer/feedback/details/728969/feature-request-ordered-set-functions-within-group-clause" target="_blank"&gt;Connect #728969&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;font size="4"&gt;Create or Replace&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;I'm pretty sure I've pimped this one before, but in the interest of driving up items that might make the T-SQL / DDL feature list for the *next* version of SQL Server... we should have the ability to specify in the DDL that we want to create this thing if it doesn't exist, and alter if it does. This avoids the need to re-script permissions, worry about breaking existing dependencies, or build complicated batch logic with a stub create, dynamic SQL, etc. I would gladly take this for simple modules only (procedures, triggers, functions, non-indexed views) as the logic around completely re-designing, say, a table can quickly become more complex.&lt;br&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/127219/create-or-replace" title="http://connect.microsoft.com/SQLServer/feedback/details/127219/create-or-replace" target="_blank"&gt;Connect #127219&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;font size="4"&gt;Native Regular Expression Support &lt;/font&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;I would love to see RegEx as a first class citizen, and at least in V1 don't expect this to be fully optimized the way LIKE can be. I just get so sick of writing complex and wordy expressions using PATINDEX / SUBSTRING / STUFF / REVERSE while switching between 0-based and 1-based in my head. And I . Since other CLR functionality is slowly making its way into the top T-SQL tier (spatial, FORMAT(), TRY_PARSE(), etc), I think it's high time we can perform RegEx as well without each of us having to write our own complicated assemblies, deploying and maintaining them, all that assuming we can assure the boss or the IT guys that it's ok to use CLR.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/261342/regex-functionality-in-pattern-matching" title="http://connect.microsoft.com/SQLServer/feedback/details/261342/regex-functionality-in-pattern-matching" target="_blank"&gt;Connect #261342&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;font size="4"&gt;Create Table As&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;It would be really nice to have DDL that just says "create a table, but make it a copy of that other table." Today it is easy enough to do this using the tools but to do it in an automated way of any kind is foolhardy - the complexity of the code to generate a CREATE TABLE statement when anything complex is involved can be astounding - consider dependencies, constraints, keys, permissions, triggers, computed columns, indexes, etc. Some folks recommend PowerShell for this but I just think you are trading a different syntax for the same complex code. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/124506/please-add-support-for-complex-data-types-in-t-sql-especially-ability-to-derive-types-from-existing-database-objects-tables-views-and-columns" title="http://connect.microsoft.com/SQLServer/feedback/details/124506/please-add-support-for-complex-data-types-in-t-sql-especially-ability-to-derive-types-from-existing-database-objects-tables-views-and-columns" target="_blank"&gt;Connect #124506&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;font size="4"&gt;Dynamic Pivot&lt;/font&gt;

&lt;p&gt;The PIVOT and UNPIVOT commands as they exist today expect that you know all of the potential values up front. What if you are feeding a report that is more than happy to accept as many columns as you're willing to provide? What ends up happening is we use really ugly workarounds with dynamic SQL after scanning the table and seeing all the potential pivot values (year-month combinations, let's say) that may be represented. I'd like to see this be a little more reactive to the data returned by the query, though it does step into the land of unstructured data at least a little bit...&lt;/p&gt;

&lt;blockquote&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/127071/pivot" title="http://connect.microsoft.com/SQLServer/feedback/details/127071/pivot" target="_blank"&gt;Connect #127071&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;br&gt;&lt;i&gt;...and one of these things is not like the others...&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;br&gt;&lt;font size="4"&gt;Another parallelism bug&lt;/font&gt;&lt;/p&gt;



&lt;p&gt;While at least one of the related bugs has recently been fixed, I've previously talked about a few &lt;a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/03/21/six-reasons-you-should-be-nervous-about-parallelism.aspx" title="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/03/21/six-reasons-you-should-be-nervous-about-parallelism.aspx" target="_blank"&gt;potential perils of parallelism&lt;/a&gt;
 (say that three times fast!). Last week at the MVP Summit I encountered
 an unfortunate scenario in SQL Server 2012, where incorrect and in fact
 unpredictable results can come out of using SUM() OVER() with the new 
windowing functions when combined with parallelism. There are some 
decent workarounds but they're not very intuitive (and it may be 
difficult to notice that you're affected). &lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/728932/parallelism-bug-with-sum-over-and-range" title="http://connect.microsoft.com/SQLServer/feedback/details/728932/parallelism-bug-with-sum-over-and-range" target="_blank"&gt;Connect #728932&lt;/a&gt; &lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;/blockquote&gt;</description></item><item><title>Connect Digest : 2012-01-09</title><link>http://sqlblog.com/blogs/aaron_bertrand/archive/2012/01/09/connect-digest-2012-01-09.aspx</link><pubDate>Mon, 09 Jan 2012 14:50:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:40556</guid><dc:creator>AaronBertrand</dc:creator><description>&lt;p&gt;&lt;font size="4"&gt;Hide databases from users who shouldn't be able to see them&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;This is a long-standing request from Erland Sommarskog which I've highlighted in previous digests. But the underlying problem keeps coming up in multiple venues, so I thought it would be good to call attention to the item one more time. Some will argue that the contained database feature provides a solution for this, but that only works well if you want to restrict a user to exactly one database, and only works well if your application is compatible with the limitations of the feature. Please comment on the item and explain how this feature will help you in your environment.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/273830/need-view-definition-permissions-per-database" title="http://connect.microsoft.com/SQLServer/feedback/details/273830/need-view-definition-permissions-per-database" target="_blank"&gt;#273830 : Need VIEW DEFINITION permissions per database&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="4"&gt;Contained Database users are people too&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;In playing with the contained database feature as a solution to Erland's concern above, I discovered an unfortunate bug: a database-level user (with password) who has connected to their contained database using SSMS will not enjoy most of the important IntelliSense features. I'm highlighting this Connect item not so that you can vote for it, but rather just to be sure you're aware of this limitation if you intend to utilize contained databases in the short term. As an side effect, I also discovered that there doesn't exist a straightforward way to set up a contained user that can bypass the password policy in place, unlike server-level logins (where you can say CHECK_POLICY = OFF). Personally I think they got this backwards - logins are the security entity where you want to make it harder to implement simple passwords. If you want a contained user with a simple password, you can create a server-level login, associate it with a database user, and then use sp_migrate_user_to_contained (note that I haven't tried this).&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/717063/ssms-intellisense-does-not-function-for-a-contained-user" title="http://connect.microsoft.com/SQLServer/feedback/details/717063/ssms-intellisense-does-not-function-for-a-contained-user" target="_blank"&gt;#717063 : SSMS : IntelliSense does not function for a contained user&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/717069/contained-user-syntax-does-not-support-bypassing-password-policy" title="http://connect.microsoft.com/SQLServer/feedback/details/717069/contained-user-syntax-does-not-support-bypassing-password-policy" target="_blank"&gt;#717069 : Contained User syntax does not support bypassing password policy&lt;/a&gt;&amp;nbsp; &lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="4"&gt;Please just go parallel, regardless of other factors&lt;/font&gt; &lt;br&gt;&lt;/p&gt;

&lt;p&gt;Paul White (&lt;a href="http://twitter.com/SQL_Kiwi" title="http://twitter.com/SQL_Kiwi" target="_blank"&gt;@SQL_Kiwi&lt;/a&gt;) has asked for an option that is kind of the opposite of MAXDOP. I say "kind of" because he doesn't want to be able to say MINDOP x, but rather try to coerce the optimizer to use a parallel plan and then follow the same rules it normally would in determining the level of parallelism.&amp;nbsp;


&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/714968/provide-a-hint-to-force-generation-of-a-parallel-plan" title="http://connect.microsoft.com/SQLServer/feedback/details/714968/provide-a-hint-to-force-generation-of-a-parallel-plan" target="_blank"&gt;#714968 : Provide a hint to force generation of a parallel plan&lt;/a&gt; &lt;br&gt;&amp;nbsp;&lt;br&gt;

&lt;/p&gt;&lt;p&gt;&lt;font size="4"&gt;Expose SHOW_STATISTICS through a DMV&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Greg Low has proposed adding a DMV that would mirror DBCC
 SHOW_STATISTICS output, making it easier to work with the results. I'm 
all for this, as it can be quite a hassle to mix monitoring queries with
 DBCC calls.

&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/611155/dbcc-show-statistics-info-should-be-available-as-a-dmv" title="http://connect.microsoft.com/SQLServer/feedback/details/611155/dbcc-show-statistics-info-should-be-available-as-a-dmv" target="_blank"&gt;#611155 : DBCC SHOW_STATISTICS info should be available as a DMV&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;font size="4"&gt;Check constraints during CHECKDB&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;Thanks to Ola Hallengren, they are considering adding the ability to 
check all constraints (and, where appropriate, mark them as trusted) as a
 part of the DBCC CHECKDB process (specifically, using the 
EXTENDED_LOGICAL_CHECKS option). There are already plenty of votes, but 
more votes (and, more importantly, comments about how this will help in 
your environment) will help.

&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/508837/option-to-check-constraints-in-dbcc-checkdb" title="http://connect.microsoft.com/SQLServer/feedback/details/508837/option-to-check-constraints-in-dbcc-checkdb" target="_blank"&gt;#508837 : Option to check constraints in DBCC CHECKDB&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;/p&gt;</description></item></channel></rss>