Adding to SQL Server

  • We have native backup compression now, so why not native backup encryption (no, I don't mean TDE). Are redgate paying microsoft not to do this? πŸ™‚

    Why can't SSIS and SSRS be cluster aware? Microsoft provide a workaround for SSIS, why not build it into the installer? SSAS was made cluster aware so it can be done and IIRC DTS was cluster aware.

    ---------------------------------------------------------------------

  • I would like them to basically fix everything they added the last few versions to useful levels:

    1. Output clause issues

    Output result set only works when no trigger is present (but output to table works);

    Does not output computed column values post update;

    Does not allow the same readable syntax as the select clause ( select resultColumn = SomeExpression )

    2. Fix the long standing bug in SSMS that causes filtered indexes to get lost on table modifications requiring a table rebuild (change column order for example)

    3. Introduce a proper hierarchical date-time type, so that one can, in compact form, express and store just a specific month

    4. Sorely missing are string literal prefixes (and others) in the T-SQL syntax.

    We have N'abc' to express abc as nvarchar(4000), we do not have the same for varchar(max) and nvarchar(max)..they require cluttering explicit casts.

    5. A like expression that can hold a list of patterns to match against

    6. Regular expression...just for constraints and the like.

    7. While stored procedures can accept a table of values, the same is missing for regular table variables, making us rely on manual coded string splinters and the like.

    8. Queue optimized table storage that you can talk to with SQL like it is a regular table (nearly every real business app needs one or more)

    9. Remove the pointless mandatory specification of null-able columns when inserting on tables with instead-of trigger and partitioned views (which seems simulated using an instead of-trigger)

    10. C# stored procedures and the like functions that are not in an assembly, but are stored and handled like any other procedure and are compiled just in time and operate with better integration (less overhead).

    11. Make table variables passable as arguments to procedures and functions, in other words, make tables first class types

    12. Fix the query plan row-count estimation to improve query plans

    13. Have the optimizer review the performance of its plans in a background process and improve on them in spare time using run-time statistics

    14. Find a syntax that allows reuse of select expressions in the having clause when grouping.

    Having to write down the same expressions twice, especially when complicated is not helping readability!

    15. Allow lower limit control of parallel plan creation (mindop N)

    16. Introduce strict evaluation order of several query clauses (make it the default, changeable with the option clause).

    Right now a select expression can be executed before a where condition for example, this can lead to unexpected hard to spot errors.

    In 2012 they tried to add some safe to use functions, but those are just stupid and do nothing to fix the underlying issue.

    17. For the love of god, make compression of strings work for the (max) types!

    These are the types that need it the most!

    The current limited implementation is a farce and a slap in the face of every form of intelligence!

    And please make it available in ALL versions instead of just the enterprise one.

    18. Add SQL fault detection for sniffing out wrong assumptions and incomplete statements

    Right now a select on a table without using an 'order by' is almost certain to return a sorted result.

    But nowhere is this guaranteed and thus this can easily creep into production code and seem to work well for a long time doing damage every day.

    I want to see random order when the SQL is not dictating what order it should be, making such issues easy to detect during development.

    19. Overall, rethink the whole edition thing it hurts developments and keeps SQL Server use down.

    There are plenty of features in the Enterprise edition that are just as valuable for small projects. Artificially removing these ensures knowledge about and use of those features never takes off. Segment the product based on resource consumption (RAM, DB size, cluster options) instead. This is a far more benign way and better targeted at actual client needs.

    For some specialized features or extra resources, have a "shop" system to enable to add just what the system needs. Do not let users choose between too much for too high a price and a bare bone version that is called standard. There is a lot of application in between that goes untapped right now and that is very stupid of Microsoft.

    I am sure i can come up with 20 more, but right now that last one got me all mad as it does since 2005, so i keep it at this.

  • How could I forget and not add this to my primary wish list:

    * Allow computed columns to reference other computed columns. Just throw an error in case of a circular reference on expression!

    * Make computed column expressions keep their SQL code formatting

  • I'm not sure how many people have a wish list like Peter and I but I'll just bet there's a ton of lurkers going "True dat!". Microsoft should have a year long moratorium on new development and fix all the legacy problems. SQL Server would be untouchable by any other RDBMS if they did it right.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Good lists, and I agree with most of them. I also agree with Jeff. If Microsoft bothered to "do it right" with many of these features, I suspect more and more people would move and support Microsoft more than other platforms.

  • One more that would be very high on my personal list:

    Currently, cascading behavior on foreign key constraints is severely limited, for unnecessary reasons I might add, see the case below:

    create table WillGetReferred

    (

    IdWillGetReferred int not null

    , constraint pk_WillGetReferred primary key clustered ( IdWillGetReferred )

    );

    go

    create table WillMakeReferences

    (

    IdWillMakeReferences int not null

    , IdWillGetReferred_first int null

    , IdWillGetReferred_last int null

    , constraint pk_WillMakeReferences primary key clustered ( IdWillMakeReferences )

    , constraint fk_WillMakeReferences_WillGetReferred_IdWillGetReferred_first foreign key ( IdWillGetReferred_first ) references WillGetReferred( IdWillGetReferred ) on delete set null

    , constraint fk_WillMakeReferences_WillGetReferred_IdWillGetReferred_last foreign key ( IdWillGetReferred_last ) references WillGetReferred( IdWillGetReferred ) on delete set null

    )

    go

    Will generate this error:

    Msg 1785, Level 16, State 0, Line 1

    Introducing FOREIGN KEY constraint 'fk_WillMakeReferences_WillGetReferred_IdWillGetReferred_last' on table 'WillMakeReferences' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

    Msg 1750, Level 16, State 0, Line 1

    Could not create constraint. See previous errors.

    Multiple cascade paths in such a simple and common scenario are easily resolved at run-time and not complicated at all. Currently you are forced to create half a referential relational model and fill in the rest with trigger code. Which as you remember from my previous list has issues when combined with the output clause.

    It is this sort of mixture of half implemented features that creates problems in what otherwise be easy and straightforward data modelling. it also makes it very hard to learn proper modelling and puts people off. It is not in Microsoft's interest for sure and definitely not in the interest of its customers. it is not too dissimilar to the early years of HTML 4 which costed billions of dollars in of wasted man hours and we are still not finished dealing with the aftermath!

  • Steven.Howes (1/31/2014)


    I'd love an undockable results pane in SSMS. so I can put my results on one monitor and keep working on my script in another.

    That would be soooooo useful.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • Something I would like to see is an enhancement to tracking of statistics creation and last modified/updated date. Without the use of a TF, I would also like to manipulate the auto-update rules. Give us a couple of nobs to tweak those types of things and it would be really nice.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • Jeff Moden (2/1/2014)


    ...

    And my biggest peeves of all... how about a built in Tally Table function that operates at machine language speeds or a decent built in split function? How long have those been on everyone's wish lists? There's actually a CONNECT item on the subject of the Tally/Numbers table/Function and it has been in an ACTIVE status for 7 bloody years! Is it THAT hard, Microsoft? You wrote CLRs to support HIERARCHYID! How hard is it to write a looping CLR that produces a sequence of numbers? Here’s the link for the Numbers Table CONNECT item.

    https://connect.microsoft.com/SQLServer/feedback/details/258733/add-a-built-in-table-of-numbers

    ...

    Good point. Voted for this one.

    Gaz

    -- Stop your grinnin' and drop your linen...they're everywhere!!!

  • Does there exist some form of datatiering within a database in ms sql server? Like moving popular data to faster disk (automagically?)

  • Jo Pattyn (2/5/2014)


    Does there exist some form of datatiering within a database in ms sql server? Like moving popular data to faster disk (automagically?)

    No. People tend to use partitioning here, sticking the filegroups on different classes of storage.

  • Some High end SAN devices will do this, not at the file level but at the block level. And I just reached the end of my expertise about this. πŸ˜€

  • The ability to declare a variable to be the same data type and size as a field in a table, like Oracle's %type function, to eliminate implicit data type conversion.

    John

Viewing 13 posts - 31 through 42 (of 42 total)

You must be logged in to reply to this topic. Login to reply