SQL Server

Microsoft SQL Server powers your entire data estate by supporting structured and unstructured data sources. It builds on previous versions of SQL Server, which have been industry leading for four years in a row and a leader in TPC-E. It scales to petabytes of data and allows customers to process big data through PolyBase using T-SQL over any data. SQL Server has also been the least vulnerable database during the last seven years. SQL Server brings data insights with business intelligence capabilities that provide analytics at a fraction of the cost on any device along with advanced analytics with support for R and Python.

More details about SQL Server are available in the SQL Server documentation.
If you have a technical issue, please open a post on the developer forums through Stack Overflow or MSDN.


  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Multi-threaded rebuilds of Clustered Columnstore Indexes break the sequence of pre-sorted segment ordering (Order Clustering)

    In order to get a better performance as well as compression results, we can sort the data in a RowStore engine before creating Columnstore Index to get a better Segment Elimination.

    What happens is that if we build a Clustered Columnstore directly after sorted RowStore with (DROP_EXISTING=ON) to get a perfect Order Clustering, we have the order maintained just partially.

    To test it, download ContosoRetailDW (http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=18279),
    and run the following script:

    ALTER TABLE dbo.[FactOnlineSales] DROP CONSTRAINT [FKFactOnlineSalesDimCurrency];
    ALTER TABLE dbo.[FactOnlineSales] DROP CONSTRAINT [FKFactOnlineSalesDimCustomer];
    ALTER TABLE dbo.[FactOnlineSales] DROP CONSTRAINT [FKFactOnlineSalesDimDate];
    ALTER TABLE dbo.[FactOnlineSales]…

    28 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 47

    <=-=Jul 3 2014 10:03AM=-=>

    This would definitely be a good build. I walked through an initial investigation of clustered columnstore on one of our data sets, and the number of reads was reduced by about 80% for some queries in the workload once I started paying careful attention to segments and loading data in a single-threaded manner to optimize segment elimination. However, this results in slower loading of data, and it would be great to be able to create columnstore indexes in order for segment elimination.

    Having an optional ORDER BY clause for the columnstore initial creation, removing the need to first create a clustered index in order to control order and allowing parallelism without breaking order, would be particularly powerful.

    <=-=Jul 3 2014 10:30AM=-=>

    Neugebauer: thanks. you identified the issue correctly. This is something we are actively looking. One question
    (1) once the index is build, the…

  2. Query plans with MSTVFs in them don't include time populating the table variable

    Imagine if you will, that you're using a multi statement table valued function. When you run a query that calls it, it may run for a very long time, but when you look at the operator times in your query plan, the time spent in the MSTVF isn't anywhere obvious.

    The time will show up in the plan properties as elapsed time, so it is associated with the query somehow. I think it would be beneficial to present the time spent in the function in the TVF operator.

    27 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  3. Add Central Management Server support to Azure SQL Database

    Registering a new Central Management Server currently requires msdb and as such, we cannot register a Central Management Server in an Azure SQL Database. It would be great to have this feature to help support managing on-premise database instances as well as Azure SQL Servers.

    27 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  4. Eager Index Spools Should Generate Wait Stats

    In query plans where an Eager Index Spool is directly after a data access operator, wait stats should be generated while the Spool is built. In a parallel plan, EXECSYNC waits are generated, but in a serial plan, you don't see anything. Problem scenarios will become more common when FROID is released and adopted.

    I would not expect this to happen when a Lazy Index Spool occurs above a subtree.

    24 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  5. Database Diagram

    I was really sad to learn that the Database Diagram function is being removed from the SSMS-18. I find it EXTREMELY useful in the database modelleing and buidling. I hope that you will take it back into the SSMS sometime soon.
    Is there any way to run an older version in parallell to the new one in order to be able to use the Diagram-function?
    Regards
    Magnus

    24 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  6. Change the way Script Task/Components are handled in SSIS

    When having to work with script task or components inside of SSIS it becomes quiet tedious because the loading times are exessive and the functionalities are rather limited.
    I would like to propose a new form of Script Task, a Script Task v2 if you will. Instead of just exposing a subset of VS making this Script Task a proper C#/VB.net proj that compiles down to a dll. That has a Main Class that implements an interface that contains a execute-method.
    These Projects would be added to the SSIS Solution as seperate Projects offering everything from Nuget to properly allowing…

    24 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    under review  ·  0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  7. sys.dm_os_sys_info/ms_ticks in Azure SQL DB

    It is often useful, when doing real-time activity monitoring, to be able to understand when workers are spending a long time sitting on the runnable queue after entering a wait state.

    This information is available in the on-prem product by using the sys.dmosworkers DMV, which gives numbers in terms of "msticks." Converting these ticks to actual clock time requires pulling an "msticks" value from the sys.dmossys_info DMV.

    Unfortunately, Microsoft pulled the latter DMV from Azure SQL DB, making this information completely inaccessible. And it would be quite useful there, especially when DTU throttling is…

    24 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    under review  ·  2 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  8. provide lpad/rpad funtion

    In 15 years of sql server development, was the lack of native lpad/rpad string funtions, one of the main pain. Please provide native left padding (lpad) and right padding (rpad) funtions.
    Every main DBMS supports this function, except MS SQL Server.
    I think this an easy subject that has to be changed.

    The follwolling DBMS supports rpad/lpad:
    - Oracle
    - Postgresql ()
    - MySQL
    - DB2
    - Informix

    24 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 1

    <=-=May 29 2017 1:07PM=-=>

    Thanks you for the idea. We will keep it into the backlog but we cannot guarantee when it would be implemented. We have already added several new string functions STRING_AGG, TRIM, TRANSLATE, and it would be good to add more. We are prioritizing functions that might be added so we cannot confirm when we will add this one.

  9. Group Tables By Schema in Object Explorer

    Hi,
    For efficiency, it would be nice that, in object explorer of MSSMS, tables be grouped by schema.

    Thanks!

    24 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    6 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  10. Installation option for Lock Pages in Memory

    I would like to have an option to set Lock Pages in Memory in the SQL Server command line installation.

    Something like this:

    /SQLSVCLOCKPAGESINMEMORY

    https://docs.microsoft.com/en-us/sql/database-engine/install-windows/install-sql-server-from-the-command-prompt

    24 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    under review  ·  0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  11. Remove or make optional the $ShardName column for sp_execute_remote

    This will enhance portability between SQL Server and Azure SQL Database. It will also make the output look like sp_executesql. Otherwise, when doing cross-database queries, we cannot use the following logic:

    IF @@VERSION LIKE '%Azure%'
    BEGIN

    INSERT INTO myTable
    
    EXEC sp_execute_remote @stmt

    END
    ELSE
    BEGIN

    INSERT INTO myTable
    
    EXEC sp_executesql @stmt

    END

    Instead the output of spexecuteremote has to be copied into a temporary table variable, which impacts performance, just to strip away the $ShardName field.

    23 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    under review  ·  0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  12. Add array-support to SQL server engine

    Arrays are a core part of programming, except in SQL-server, where they don't exist.

    PostgreSQL has had array support for over 15 years (version 7.1 in 2001) by now...
    https://www.postgresql.org/docs/current/static/arrays.html

    And yet, in the year 2016, in the MS-universe, we still can't even parametrize an IN-clause in a SIMPLE & performant way, for example in a table-valued function or when passing a multiple-choice drop-down selection from SQL-Server reporting-services, or the combination of the two...

    Instead, there are a multitude of horrible, error-prone, complicated, user-unfriendly, slow & unperformant ways of working around the problem. For example, when you need to prevent…

    23 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 6

    <=-=Mar 3 2017 2:00PM=-=>

    We are aware that this is important missing feature; however, we have no plans to add this in the near future. We will keep this request in backlog to see how many votes will get.

    <=-=Jul 1 2017 7:03PM=-=>

    Can’t even remember how many times I’ve wished to have this in SQL server.

    If you want to get a somewhat realistic feel of how talked about this feature really is, you can check out the number of votes and more importantly views that this StackOverflow question has:

    https://stackoverflow.com/questions/1732613/how-to-declare-array-inside-sql-server-stored-procedure

    Unfortunately, not many people visit this website and participate in voting here so it’s not a reliable indicator of how much any particular feature is requested. Please consider moving to UserVoice. Visual Studio UserVoice for example has loads more activity.

    <=-=Jul 1 2017 11:17PM=-=>

    We totally understand that t-sql as a language itself is desigened to…

  13. Sort order of Environment Variables in "Set Parameter Value" dialog of SSIS Solution

    When mapping Parameters to Environment Variables in the Configure screen of an SSIS project, the dropdown containing environment variables isn't sorted alphabetically. This makes finding the required variable difficult when working with large lists of values.

    23 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    5 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  14. Should be possible to create a filtered index on a deterministic persisted computed column

    On a client site the other day, I came across a situation (unfortunately too common) where a column in a table was being used for two purposes. It could either hold an integer value or a string. Only about 100 rows out of many millions had the integer value. Some of the client code needed to calculate the maximum value when it was an integer. First step I tried was to add a persisted computed column like so:

    CREATE TABLE dbo.LousyTable
    ( ColumnWithMixedValues varchar(20),
    SomeOtherColumn varchar(10),
    MixedValueColumnAsInt AS

    CASE WHEN ISNUMERIC(ColumnWithMixedValues) = 1
    
    THEN CAST(ColumnWithMixedValues AS int)
    ELSE NULL
    END
    23 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 158

    <=-=Dec 4 2009 10:01PM=-=>

    I think this goes further than computed columns, as a filtered index can’t be used for something as simple as WHERE num % 2 = 0 (with no computed columns in sight). I really want to see filtered indexes become more useful.

    <=-=Dec 7 2009 10:29AM=-=>

    Greg,

    Thanks for your feedback. I agree we should allow filtered indexes on persisted computed columns, and should support more complex filter expressions, at some point in the future. We restricted the functionality for the first version but we’ll consider this for a future release. The documentation should be more precise about the restrictions on predicate expressions. I’ll follow up on that.

    Best regards,
    Eric

    <=-=Dec 8 2009 8:56PM=-=>

    I was AMAZED when I could not create a filtered index on computed column.

    But I as APPALLED and DUMBFOUNDED when I could not create a filtered indexes on…

  15. Data Migration Assistant - Save

    Data Migration Assistant - Ability to Save projects and assessment results.

    The DMA does not save/remember configured assessment/migration projects - once the DMA application is closed all settings are lost and need to be re-defined to perform another assessment.
    Also the most recent assessment results cannot be viewed using the DMA application as they are not saved - the only way to "save" an assessment results-set is to export it to CSV or JSON, neither of which can be re-imported into DMA to use DMA to view the assessment.
    We have a fleet of SQL server instances and databases we…

    22 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  16. Provide a way to update SSDT system database reference DACPACs

    Please provide a method for updating the master.dacpac and model.dacpac reference databases that install with SSDT.

    The versions that install with SSDT are static and do not reflect any changes/enhancements/bug-fixes that are made within SQL Server.

    For example, the SQL Server 2017 master.dacpac is missing the new system DMV's [sys].[dmoshostinfo] and [sys].[dmdblogstats], and the recently released SQL Server 2016 SP2 adds a new DMV [sys].[dmdbloginfo] and new columns to the DMV [sys].[dmossysinfo] which will be missing from the SQL Server 2016 master.dacpac.

    Any referenes to new DMV's/columns generate…

    22 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    under review  ·  1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  17. New security role for SQL Agent - SQLAgentAdminRole

    I feel the SQL Agent roles are too limiting. If you want to allow freedom in a development, or assign management of SQL Agent jobs to a person; even SQLAgentOperatorRole doesn't do much. This means SysAdmins are still required to assist others in altering/removing jobs.

    I propose a new role that allows the member to do anything with SQL Agent, like a member of SysAdmin, but without the access to all other parts of SQL Server that SysAdmin provides.

    22 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    5 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  18. Accessible PDF Generation from SSRS

    It should be possible to generate accessible, WCAG/Section 508 compliant PDFs from SSRS. Please add this capability to SSRS.

    22 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    under review  ·  0 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  19. Add columns has_victims and is_intra_query_deadlock to the event xml_deadlock_report

    When working with deadlocks I have found that it would be useful to to have some columns added to the event xmldeadlockreport.


    • hasvictims - SQL Server sometimes generates large number of intra-query xmldeadlock_report - events with no victims, and no errors. It would be useful to be able to filter them out.


    • isintraquery_deadlock - Intra-query deadlocks where the process is aborted (getting an error) are rather serious bugs in SQL Server.
      When working with Microsoft Support you are often asked for stack dumps. You can use extended events to generate stack dumps, but then…

    22 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →
  20. Add a "delete" option for JSON_MODIFY() to remove deleted keys instead of setting them to NULL

    Originally based on this Connect item: https://connect.microsoft.com/SQLServer/feedback/details/3120404

    The JSON_MODIFY delete functionality via NULL works inconsistently. On properties, NULL removes the item from the JSON completely. On arrays, NULL nullifies the value but does not remove it from the array.

    Example:
    -- Our JSON data with three properties:
    DECLARE @data nvarchar(100) = JSON_QUERY('{ "Property1" : "A", "Property2" : "B", "Property3" : "C" }')
    -- Output: { "Property1" : "A", "Property2" : "B", "Property3" : "C" }

    -- Deleting the second property with NULL completely removes it from our JSON:
    SELECT JSON_MODIFY(@data, '$.Property2', NULL)
    -- Output: { "Property1" : "A", "Property3" :…

    22 votes
    Sign in
    (thinking…)
    Sign in with: Microsoft
    Signed in as (Sign out)

    We’ll send you updates on this idea

    6 comments  ·  Suggestions  ·  Flag idea as inappropriate…  ·  Admin →

    Upvotes: 10

    <=-=Apr 10 2017 4:40AM=-=>

    Thanks for the feedback. We agree with your proposal and this request is in our backlog. We will let people to vote for this. Also feel free to report any other option that you find useful. Note that we cannot commit when this request ill be implemented, because it depends on the number of votes and schedule.

  • Don't see your idea?

SQL Server

Categories

Feedback and Knowledge Base