A New Beginning

  • Jeff Moden (1/2/2010)


    I've been "talking" with one of the proprieters of a web site that claims to be trying help people understand the idea of "set based" programming. I put "set based" in quotes because this particular site runs coding contests where the rules explicitly state that only single query code is acceptable. That's not what set based programming is and single query code is contrary to the rules of both set based programming and the effeciencies of "Divide'n'Conquer" methods in most cases. I'm particularly ticked about the whole thing because some people I had very high respect for are actively supporting and perpetuating the myth through that site. Some of them even embrace recursive CTE's as "set based" code. Ugh! :sick:

    This is very much the SQL perspective of "set based" I think. SQL is pretty poorly equipped for writing set-based queries. For example I would suggest that the "recursive CTE" syntax exists only because SQL never had any equivalent of the transitive closure operator.

    With a better, more truly relational query language I think this debate goes away because everything would be set-based. So everything in a single query is a quite reasonable set-based thing to do in principle. It's a good thing in fact because it means you don't need to grapple with the complexities of "temp" tables or multiple statement transaction isolation. It's just not very practical in SQL.

    I hope your "Set Based Manifesto" recognises and supports the need for better set-based query languages to succeed SQL. If so, I'd definitely be a supporter. 🙂

  • - Get my MCITP for 2005 database developer

    - Write my first Erlang program

    - Try to be nomiated for MVP

    - Continue to blog

    - Continue to mentor

    - Continue to learn

    Josef Richberg
    2009 Exceptional DBA
    http://www.josef-richberg.squarespace.com
    http://twitter.com/sqlrunner

  • Steve Jones - Editor (1/2/2010)


    D.Oc,

    We have an F# review coming out this week of a book. Looks interesting.

    Nice, looking forward to reading it

    -------------------------------------------------------------
    "It takes 15 minutes to learn the game and a lifetime to master"
    "Share your knowledge. It's a way to achieve immortality."

  • David Portas (1/3/2010)


    SQL is pretty poorly equipped for writing set-based queries. For example I would suggest that the "recursive CTE" syntax exists only because SQL never had any equivalent of the transitive closure operator.[/code]

    Actually, I hope they don't make SQL a "better" set based language. They'll start doing stupid stuff like requiring semi-colons, etc. :-D:-P;-):hehe:

    So everything in a single query is a quite reasonable set-based thing to do in principle.

    I know you also said "It's just not very practical in SQL." but it's no more reasonable to do everything in one query as it is to write a whole screen in a single class.

    I hope your "Set Based Manifesto" recognises and supports the need for better set-based query languages to succeed SQL. If so, I'd definitely be a supporter. 🙂

    You probably won't end up being a supporter then, David. I have no intention of suggesting what most people call a "better set-based language" because I disagree with most people's opinion on that. Despite my feelings about how a lot of the world thinks that databases are nothing more than a place to store data, it is currently incredibly flexible. Along with flexibility come certain choices... chose to do it right or chose to make it slow. The first time a "better set-based language" won't let me do what I need to do is when I make a road trip with a bucket of pork chops.

    I believe that SQL could stand a couple of enhancements but I believe that making it "truly relational" and a "better set-based language" would turn out to be a huge negative. Enhance it if you want, but leave its basic definition alone. Anyone who thinks otherwise... write a new language and call it something else.

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

  • Jeff Moden (1/2/2010)


    I've been "talking" with one of the proprieters of a web site that claims...

    I got an update on that today. It turns out they have a testing engine that currently can't handle something that isn't a single query and that's the big reason for the single query requirement, so far. They've just never come right out and said that. Since they're actually trying to get over that hump, I'm going to try to help... if they'll let me.

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

  • CirquedeSQLeil (12/31/2009)


    SSIS, SSRS, Improve Perf Tuning (perpetual goal), more active in PASS, and Blog

    nice, I should add to my list...

    ---------------------------------------------------------
    How best to post your question[/url]
    How to post performance problems[/url]
    Tally Table:What it is and how it replaces a loop[/url]

    "stewsterl 80804 (10/16/2009)I guess when you stop and try to understand the solution provided you not only learn, but save yourself some headaches when you need to make any slight changes."

  • I'd like to dig into SSRS and into CLR more.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon

  • Achieved my goal for 2009: MCTS for SQL Server 2005!

    Goals for 2010: understand more about performance tuning (have ebook from Grant Fritchey that looks promising as a starting point), delve deeper into SSIS.

    Personal goal: Don't sweat the small stuff!

  • SSRS is probably the at the top of the list. We have only recently moved to 2008, so there are a bunch of new things...but that seems to be the standout. Does anyone have any recommendations for how to read up on it?

  • real_cals (1/6/2010)


    SSRS is probably the at the top of the list. We have only recently moved to 2008, so there are a bunch of new things...but that seems to be the standout. Does anyone have any recommendations for how to read up on it?

    I'd probably start with the tutorial in Books Online on the subject.

    --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 tend not to make calendar-based resolutions - after all, if I need to do something why should I wait until Jan 1 to do it?

    Last year, having up until then merely checked SQLS 2k5 and 2k8 for enough backwards compatibility to support our SQLS 2k based app code and SPs (our apps couldn't see anything but SPs, and I've never understood why they should ever see anything else) I decided that I should start learning to use the new bits in the newer versions, starting with T-SQL enhancements. Call it a new year resolution, if you like, although the resolution was made in June or July (I think) and I actually began to do it a few months later.

    Of course it was too late to play (as opposed to regression test ) with SQL 2k5. So at some time I installed an evaluation version of SQLS 2k8 on my laptop and immediately learnt to hate SSMS. Previously I'd used SSMS - both 2k5 and 2k8 versions - on a rather powerful server and not realised what an awfully bloated resource hog it was (I had however noticed the loss of useful features that had been available in the SQL 2k0 tools).

    So, Steve, I guess I'm improving some part of my technical arsenal just as you recommend. Other parts I'm disimproving (replacing QA and EM by SSMS must be a disimprovement). On the other hand, I'm spending very little time on it (I'm currently too busy trying to aquire fluency in Castellano to spend much time on IT or DB or SQL). But to a great extent I don't do it by looking at specific new things (like SSRS in your example) - instead I do it by reading whatever articles I find here, referenced in the daily emails from SQLS Central. Some of the articles are great - and one can spend a lot of time playing with the techniques illustrated to discover all sorts of new things. For me, that's a sort of paradise.

    The trouble with trying to learn all these bits and pieces of functionality like SSRS, SSIS, SSAS (just to name the three that you refer to) is that the tutorials etc provided by MS teach you how to do the trivial things - things that the average developer would learn to do just bty looking at the technical specs (so what's the point of the tutorials?). The great thing about SQLS Central is that it goes past those tutorials - leads you into areas that the tutorials just don't visit. So if I decide I want to understand some tool or feature at anything above the pigmy understanding level, rather than study those tutorials I'll try to find some articles here and play with the concepts they introduce.

    Tom

Viewing 11 posts - 31 through 40 (of 40 total)

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