What Is the Hardest Feature to Learn About SQL Server?

  • Off the top of my head, probably recursive CTE.

    Recursive processes in POSH, .Net or VBS - say to explore a directory structure - clear as a bell. But for some reason recursive SQL doesn't sit terribly well with me, I can do it, but if asked to pen an example in an interview I'd leave that one 'till last

    I'm a DBA.
    I'm not paid to solve problems. I'm paid to prevent them.

  • I think the hardest thing for me is that I don't spend enough time using SQL Server at my current job. Sometimes I don't touch it for weeks, other times I'm forced to dive in and solve immediate problems. Normally I'm a jack of all trades,(admin, analyst, developer, project manager, trainer), but next week I'm supposed to be ETL master of the universe and design SSIS packages in my spare time. (Any one want to help port VFP .dbf files to SQL Server 2008R2?)

    :w00t:

  • Service Broker is a bit awkward to comprehend at first, even once you get it working. But I think the hardest feature to learn is Analysis Services. It's a completely different language and paradigm to describe the data. I get the basics, you're defining relationships between your fact and dimension tables, metrics, attributes, hierarchies within the data, etc. But there's a lot less visibility inside the workings of it (DMVs and such), MDX and DMX instead of standard SQL, and data mining algorithms that boggle the mind.

    While I'm here,

    chrisn-585491 (7/18/2014)


    next week I'm supposed to be ETL master of the universe and design SSIS packages in my spare time. (Any one want to help port VFP .dbf files to SQL Server 2008R2?)

    I'd recommend you use the OLE DB provider for Visual FoxPro

    http://www.microsoft.com/en-us/download/details.aspx?id=14839

    and in your "OLE DB Source" properties set AlwaysUseDefaultCodePage=True

    I've had better results with that then trying to use the JET or ACE OLE DB providers with DBF files.

  • I'd say that the hardest feature to learn, is the one that you don't care about. I can learn many things as a developer, but don't ask me for HA options.

    When you have real interest, you'll learn faster and better.

    Luis C.
    General Disclaimer:
    Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?

    How to post data/code on a forum to get the best help: Option 1 / Option 2
  • For me, the hardest thing seems to be high performing xml queries.

    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

  • I've heard others say Service Broker as well. I think this is because Microsoft, most bloggers, tutorials, etc try to present way too much SB content without a quick and dirty example. For instance, message types and contracts give noobs problems. But, like foreign key constraints, they aren't even needed. Just avoid them for the first few demos then demo how these things help you avoid errors.

    Also, people not familiar with MSMQ or JMS, etc, get hung up on the concept of the "dialog" pattern and don't understand how a sender can do something asynchronously, yet still need to end the convo later. Huh? This is because most people (IMHO) really want to use Service Broker as fire-and-forget. There are safe ways to implement this pattern that are far less confusing for people.

  • andrew gothard (7/18/2014)


    Off the top of my head, probably recursive CTE.

    Recursive processes in POSH, .Net or VBS - say to explore a directory structure - clear as a bell. But for some reason recursive SQL doesn't sit terribly well with me, I can do it, but if asked to pen an example in an interview I'd leave that one 'till last

    +1 on CTEs. Recursion I get. CTEs? Not yet.

    I clearly haven't given it enough time as I get it then when I come back to thinking about it it certainly isn't there to any reasonable level of understanding.

    Gaz

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

  • andrew gothard (7/18/2014)


    Off the top of my head, probably recursive CTE.

    Recursive processes in POSH, .Net or VBS - say to explore a directory structure - clear as a bell. But for some reason recursive SQL doesn't sit terribly well with me, I can do it, but if asked to pen an example in an interview I'd leave that one 'till last

    Considering that they're a form of RBAR that is frequently (my experience is "usually") worse for performance and resource usage than a WHILE Loop or Firehose Cursor, I'm glad that most people have a difficult time with them. I usually recommend that they be avoided even where recursion is absolutely necessary.

    --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)

  • I think that the hardest thing (a hidden feature, for sure) for people in general to learn about SQL Server is the paradigm shift necessary to produce high performance code. Like it says in my signature line, you have to train yourself to stop thinking in rows and start thinking in columns. Once you've actually made that paradigm shift, then you can easily grasp such "advanced" topics such as the use of the naturally occurring "pseudo-cursors" built into every SELECT, INSERT, UPDATE, and DELETE and index usage, etc.

    --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)

  • I find hardest part learning Spatial Data , Xml Queries, Cte.

  • 1. CTE's. I get it, but I don't.

    2. Performance. How to build high performance queries takes time to understand and master. I'm still working my way through the understanding stages.

    3. Graphical everything. Coming from the Unix/MacOS/Oracle/mySQL world, working on any windows app is a challenge. Finding, let alone remembering, where all those check box things are located (little uniformity even among windows apps) can take a lifetime. All the right clicking for menu's and sub-menu's is a nightmare.

    4. XML. Just because I have never had to write a query that interacted with XML.

  • MDX and DMX and data mining, Poor at SSAS :w00t:

Viewing 13 posts - 1 through 12 (of 12 total)

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