Are the posted questions getting worse?

  • GSquared (1/13/2012)


    Tom, is there something I'm not seeing here? Here's what Jared's response looked like:

    SQLKnowItAll (1/11/2012)


    DeanORenO (1/11/2012)


    The job failure triggers an email sent to an operator which is done

    I don't see the reason for this. You want your job to complete, but send an email.

    ....

    From my perspective, Jared's response was reasonable, professional, and made sense, and Dean reacted rudely to it. Jared then responded to that with a bit of shock.

    But I don't see where Jared was out-of-line on this.

    What are you seeing as rude on Jared's part, that I'm not?

    What you are missing is the context. I'd seen the previous few posts immediately before reading that post of Jared's. In one post Jared told Dean that using RAISERROR (with severity 16) would not cause the job to fail - Dean then pointed out (politely) that the code he had posted was working code. Jared posted something like "what, it fails the job?" which to me looked as if he was saying he didn't believe it. Dean suggested he read the BoL page (I don't see what else he could have said; maybe just let it go without response, but perhaps he thought that as it was a question he ought to respond. Then Jared's post which you quoted came next - and that first line in the context of thoise previous posts sure looks like "OK I got it wrong but you shouldn't be doing that anyway" - an attempt to score a point, rather than to help. If he had started with that post first, instead of insisting that RAISERROR wouldn't work and questioning it when told it did work, it might have seemed perfectly reasonable, but in the context of the previous email exchange it came over as ill-mannered point-scoring.

    Incidentally, I'm probably in a minority here but I'm reasonably happy with using RAISERROR cause a failure to raise an alert (I would put WITH LOG on it, though, so that as well as the alert I had a log entry). That, after all, is what it's there for - to report that user code has detected an error of some sort not detected by the SQL Server system. I so though agree that it is right to ask people to look at each case and see if it is really appropriate here.

    Tom

  • L' Eomot Inversรฉ (1/13/2012)


    Incidentally, I'm probably in a minority here but I'm reasonably happy with using RAISERROR cause a failure to raise an alert (I would put WITH LOG on it, though, so that as well as the alert I had a log entry). That, after all, is what it's there for - to report that user code has detected an error of some sort not detected by the SQL Server system. I so though agree that it is right to ask people to look at each case and see if it is really appropriate here.

    I'd post something about that, but it would be technical and I don't want to get banned from the THREAD/ :w00t:

  • L' Eomot Inversรฉ (1/13/2012)


    GSquared (1/13/2012)


    Tom, is there something I'm not seeing here? Here's what Jared's response looked like:

    SQLKnowItAll (1/11/2012)


    DeanORenO (1/11/2012)


    The job failure triggers an email sent to an operator which is done

    I don't see the reason for this. You want your job to complete, but send an email.

    ....

    From my perspective, Jared's response was reasonable, professional, and made sense, and Dean reacted rudely to it. Jared then responded to that with a bit of shock.

    But I don't see where Jared was out-of-line on this.

    What are you seeing as rude on Jared's part, that I'm not?

    What you are missing is the context. I'd seen the previous few posts immediately before reading that post of Jared's. In one post Jared told Dean that using RAISERROR (with severity 16) would not cause the job to fail - Dean then pointed out (politely) that the code he had posted was working code. Jared posted something like "what, it fails the job?" which to me looked as if he was saying he didn't believe it. Dean suggested he read the BoL page (I don't see what else he could have said; maybe just let it go without response, but perhaps he thought that as it was a question he ought to respond. Then Jared's post which you quoted came next - and that first line in the context of thoise previous posts sure looks like "OK I got it wrong but you shouldn't be doing that anyway" - an attempt to score a point, rather than to help. If he had started with that post first, instead of insisting that RAISERROR wouldn't work and questioning it when told it did work, it might have seemed perfectly reasonable, but in the context of the previous email exchange it came over as ill-mannered point-scoring.

    Incidentally, I'm probably in a minority here but I'm reasonably happy with using RAISERROR cause a failure to raise an alert (I would put WITH LOG on it, though, so that as well as the alert I had a log entry). That, after all, is what it's there for - to report that user code has detected an error of some sort not detected by the SQL Server system. I so though agree that it is right to ask people to look at each case and see if it is really appropriate here.

    Okay. I wasn't seeing the "that won't work" part as rude, but I can see how it could be taken a bit that way.

    Makes sense.

    I just read that part differently. What you're saying on that point makes more sense now. Thanks.

    On the Raiserror piece being right for the job, my only problem with it is that it requires significantly more documentation when used that way than a more explicit process would. It'll work, but it's going to be (a) harder to document, (b) harder to trace back if being debugged (now or later), (c) harder to refactor later, (d) easier to break without knowing it.

    It creates dependencies in the SQL script for the SQL Agent notifications to be set up properly to handle that alert, for error handling in the job itself to be set up to pass it along correctly (Quit Job Reporting Failure), and for that alert to always go to the person who would receive SQL Agent job failure alerts, which isn't guaranteed in an organization of any size/scope.

    Generally speaking, the DBA isn't responsible for the contents of the database, in terms of knowing what rows go in what tables. He doesn't keep track of who customers are, for example, he just makes sure that dbo.Customers is correctly built, indexes on it are maintained properly, et al. So an alert that "there's a row missing in table X" should, in most businesses in most cases, really be the business of whomever is in charge of table X's contents, which isn't usually the DBA. But if it's just being sent to the person who monitors SQL Agent jobs, which usually is the DBA, it then requires that the DBA (a) know to whom it should be forwarded, (b) do so in a timely fashion.

    A more explicit handling, including checking for the row's existence directly (If Exists() construct), an alert that goes directly to the correct person/group (best if it's not a personal e-mail address; I prefer groups, even if it's just one person, for expansion of scope and ease in personnel change situations), and then an explicit termination of the job, all built right into where the Raiserror is being done, does add a few lines of code to the T-SQL object, but makes it much simpler to document, less dependent on decoupled external variables, less prone to human error ("What do you mean I forwarded it to the wrong person?"), and easier to debug/refactor later. It's all in one place, and very easy to sight-read the functionality. The business-process is right there in one place in the code, not in at least three places with no explicit dependency.

    That's my preference, pretty much spelled out. (I wrote much the same, but with somewhat less detail in the original thread we're discussing.)

    Catastophic disaster to break it up by using Raiserror that way? Probably not. But I do consider it a mistake in terms of future effort being created where it could easily be avoided.

    Does that clarify why I consider it a mildly bad idea?

    - 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

  • GSquared (1/13/2012)


    Does that clarify why I consider it a mildly bad idea?

    My CS teachers at university would have considered it a very bad idea and I would never have passed an exam handlind business logic that way.

    That said, I must admit that I have done this myself in some cases.

    -- Gianluca Sartori

  • GSquared (1/13/2012)


    That's my preference, pretty much spelled out. (I wrote much the same, but with somewhat less detail in the original thread we're discussing.)

    Catastophic disaster to break it up by using Raiserror that way? Probably not. But I do consider it a mistake in terms of future effort being created where it could easily be avoided.

    Does that clarify why I consider it a mildly bad idea?

    I disagree simply for one reason. If I don't raiseerror on a logic failure for a multi-step job, it will continue processing after a problem has been located. I want to force the job to stop period, and thus, must send a failure to the job so the next step does not proceed.

    The rest I agree with. A multi-structure failure component (email to the business owners and dev responsible for the data, another to the DBAs requesting them to deactivate the job until further notice, etc) is preferable in these cases.


    - Craig Farrell

    Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

    For better assistance in answering your questions[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • I need a favor. I'm trying to use Microsoft Connect and I'm... well... really the only time I go there is when someone links a particular issue. I'm attempting to find out if an issue has been reported and I'm floundering.

    So, I go to connect.microsoft.com, go to Servers/SQL Server.

    I use Feedback and type in Linked Server (If anyone's familiar this is in regards to the thread Brandie started about her job not failing as expected due to timeouts).

    I can't seem to find anything regarding remote query timouts not causing an error in any way (TRY/CATCH won't trigger, no error #s) in SQL 2k8 R1. Now, I'm not sure if I'm just not using it properly for keywords or if there's just nothing there. Can someone double check me?


    - Craig Farrell

    Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

    For better assistance in answering your questions[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

  • Jack Corbett (1/13/2012)


    SQL Kiwi (1/13/2012)


    What's the general feeling about asking Steve to remove that "Question for the Experts" thread? +1 vote here.

    I wouldn't delete it. I think there is some decent discussion in there and I think it demonstrates who is and has been rude. I know that it has caused me to rethink how I post since Tom seems to think SQLKnowItAll was rude and I don't. Maybe I have come across rudely or unprofessionally in some of my posts without realizing it. If that's the only positive thing that comes out of the discussion I think it is worthwhile.

    It's odd. If you look at the posts individually, none come across as rude. If you look at the sequence of posts leading up to it, you get a view like this:-

    OP: I've solved it, here's my code

    Jared: That won't work

    OP: actually it's implemented and does work

    Jared: Come on, does it really work?

    OP: Suggest you read the BoL page

    Jared: No, you should never do it that way...if you do it like that you have to document it. tecetera

    I'm somewhat bemused by the idea that you have to document why you have written 1 line of code when you could have done it differently with 6 or more (depending on how deep into the nest of stored procs you are when you make that test), but that isn't my real point.

    The sequence reads of messages as if Jared (a) doesn't know how raiserror works, (b) challenges the correction of that lack of knowledge, and (c) attacks the use of that knowledge because he wants to prove his own superiority.

    Now contrast Gus, who came in with "I wouldn't do it that way" without the previous dialogue which demonstrated that he didn't know that "that way" would work. I think you should be able to see why that post didn't get a rude response, while Jared's did. The OP was happy to see that suggestion, when there was no context suggesting that it was just point-scoring.

    I've been pointed at other threads and looked, and I now see that the OP there has a big problem with being able to take questions about his problems. I probably shouldn't have made statements based on the single thread that Craig (?) referenced, but on that one thread I am absolutely sure that the OP comes out pretty clean compared to Jared - Jared asked for it, and got it (of course we should always refrain from giving it to those who ask for it, and the OP was wrong in failing to refrain: but that's an werror that most of us commit from time to time and I count that error against no-one). (Especially not against Craig and his sometimes OTT anti-Celko rants, with which I usually concur, much to my shame, although I often also concur with what Celko said, despite thinking the way he said it was disgraceful.)

    Tom

  • GSquared (1/13/2012)


    On the Raiserror piece being right for the job, my only problem with it is that it requires significantly more documentation when used that way than a more explicit process would. It'll work, but it's going to be (a) harder to document, (b) harder to trace back if being debugged (now or later), (c) harder to refactor later, (d) easier to break without knowing it.

    It creates dependencies in the SQL script for the SQL Agent notifications to be set up properly to handle that alert, for error handling in the job itself to be set up to pass it along correctly (Quit Job Reporting Failure), and for that alert to always go to the person who would receive SQL Agent job failure alerts, which isn't guaranteed in an organization of any size/scope.

    Generally speaking, the DBA isn't responsible for the contents of the database, in terms of knowing what rows go in what tables. He doesn't keep track of who customers are, for example, he just makes sure that dbo.Customers is correctly built, indexes on it are maintained properly, et al. So an alert that "there's a row missing in table X" should, in most businesses in most cases, really be the business of whomever is in charge of table X's contents, which isn't usually the DBA. But if it's just being sent to the person who monitors SQL Agent jobs, which usually is the DBA, it then requires that the DBA (a) know to whom it should be forwarded, (b) do so in a timely fashion.

    A more explicit handling, including checking for the row's existence directly (If Exists() construct), an alert that goes directly to the correct person/group (best if it's not a personal e-mail address; I prefer groups, even if it's just one person, for expansion of scope and ease in personnel change situations), and then an explicit termination of the job, all built right into where the Raiserror is being done, does add a few lines of code to the T-SQL object, but makes it much simpler to document, less dependent on decoupled external variables, less prone to human error ("What do you mean I forwarded it to the wrong person?"), and easier to debug/refactor it later. It's all in one place, and very easy to sight-read the functionality. The business-process is right there in one place in the code, not in at least three places with no explicit dependency.

    That's my preference, pretty much spelled out. (I wrote much the same, but with somewhat less detail in the original thread we're discussing.)

    Catastophic disaster to break it up by using Raiserror that way? Probably not. But I do consider it a mistake in terms of future effort being created where it could easily be avoided.

    Does that clarify why I consider it a mildly bad idea?

    Oh, I don't actually think this was a good example of where to use raiserror: not every use of raiserror to cause an immediate exit is sensible, and not every such use is wrong. We always need t look at the individual case and its ramifications, and decide whether it;s appropriate or not. Because I don't know the structure or that job, or how deeply buried inside that structure this test is, I don't know whether this is a case where using raiserror is esnsible or not. The question should have been raised, but not (since Jafred also didn't have the knowledge I'm missing) with a "this way is wrong" beginning ("this way is usually wrong, so please make sure it's right here" is the appropriate introduction). Your post in that thread seemed to me to be taking that view, and if the OP had taken offence at that I would probably have joined in the general condemnation of his attitude.

    One thing I should be clear on: I don't for a moment believe that Jared's motivation for the post was what I suggested it might have been interpreted as being; I just think that it is an interpretation that could easily be assumed by someone reading the stuff quickly, especially someone overstressed and a bit paranoid (which is where I guess the OP is). As for the OP's posts in other threads - well, the ones I can't see may be scrambled because he was so embarrassed at being such a prat that he wanted to conceal the evidence of his shame (that's the charitable interpretation, but I guess maybe most people here think I am too charitable).

    Tom

  • MysteryJimbo (1/13/2012)


    Steve Jones - SSC Editor (1/13/2012)


    SQL Kiwi (1/13/2012)


    What's the general feeling about asking Steve to remove that "Question for the Experts" thread? +1 vote here.

    Arguments are welcome, but it is highly unlikely. As much as I don't necessarily agree with the debate, I'm not sure it's worth removing. Feel free to ignore or stop posting.

    I didnt bother replying as it was just an internet "troll" who gets their kicks out of winding people up. Probably sat at home sniggering to himself at the responses.

    I did the same. "Ignore the trolls".

    --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 have to say this whole situation has left me feeling extremely reluctant to post on just about anything for fear that I come across as "one of those", or maybe I am one which would be even worse. It is unfortunate that the well was poisoned. This site has been a fantastic learning opportunity for myself as well as many others.

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 โ€“ Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/

  • Shifting gears a bit...

    I've always felt that using Transcender and other "practice tests" just wasn't the right thing to do. It seems to me that using such services is "gaming the system" and produces people who are certified but know not of the real world. As a result of such things and the fact that I've worked with many "certified folks" that just don't get it, I've always been kind of sour on certification even though I know there are some very good people who "did it right" and deserve whatever certification they have achieved. Thanks to Microsoft, that sour taste has become absolutely bitter for me.

    I still believe there are people who have and will do it right but the following URL makes me distrust certs even more...

    https://partner.microsoft.com/40161629

    It would appear that MS finding out about someone using such a site and revoking their cert because of it has been and certainly is nothing but a myth.

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

  • Sean Lange (1/13/2012)


    I have to say this whole situation has left me feeling extremely reluctant to post on just about anything for fear that I come across as "one of those", or maybe I am one which would be even worse. It is unfortunate that the well was poisoned. This site has been a fantastic learning opportunity for myself as well as many others.

    Don't fall for the trap of the troll. You, good sir, and many others that feel like you do, actually feel that way because you're one of the good ones. Compare the number of people you've helped (even if some don't thank you) and who have thanked you profusely to the uninformed accusations of a blatherskite troll who probably hasn't helped a soul in his life.

    The next rain will clear the well. You just have to be careful not to piss in your own well. ๐Ÿ˜‰

    --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/13/2012)


    Sean Lange (1/13/2012)


    I have to say this whole situation has left me feeling extremely reluctant to post on just about anything for fear that I come across as "one of those", or maybe I am one which would be even worse. It is unfortunate that the well was poisoned. This site has been a fantastic learning opportunity for myself as well as many others.

    Don't fall for the trap of the troll. You, good sir, and many others that feel like you do, actually feel that way because you're one of the good ones. Compare the number of people you've helped (even if some don't thank you) and who have thanked you profusely to the uninformed accusations of a blatherskite troll who probably hasn't helped a soul in his life.

    The next rain will clear the well. You just have to be careful not to piss in your own well. ๐Ÿ˜‰

    Thanks Jeff. I make it a point not to piss in the river I drink from, but on those rare occasions where I have no choice I do it downstream. ๐Ÿ˜›

    I have no intentions of leaving or anything just saying how the whole situation rubbed me.

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 โ€“ Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/

  • Sean Lange (1/13/2012)


    Jeff Moden (1/13/2012)


    Sean Lange (1/13/2012)


    I have to say this whole situation has left me feeling extremely reluctant to post on just about anything for fear that I come across as "one of those", or maybe I am one which would be even worse. It is unfortunate that the well was poisoned. This site has been a fantastic learning opportunity for myself as well as many others.

    Don't fall for the trap of the troll. You, good sir, and many others that feel like you do, actually feel that way because you're one of the good ones. Compare the number of people you've helped (even if some don't thank you) and who have thanked you profusely to the uninformed accusations of a blatherskite troll who probably hasn't helped a soul in his life.

    The next rain will clear the well. You just have to be careful not to piss in your own well. ๐Ÿ˜‰

    Thanks Jeff. I make it a point not to piss in the river I drink from, but on those rare occasions where I have no choice I do it downstream. ๐Ÿ˜›

    I have no intentions of leaving or anything just saying how the whole situation rubbed me.

    If you really want to see something that should have made someone leave, you should see the "wonderful" posts I got on the discussion for the running totals/Quirky Update articles I've written.

    Glad to hear it rubbed you the wrong way... Like I said, things like what that troll said will always rub good people the wrong way. I bit my lip clean through when I read that thread.

    And, yeah... I was worried about you leaving because of that bit of diatribe. Thanks for confirming that you're not. You would be sorely missed.

    --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/13/2012)


    Shifting gears a bit...

    I've always felt that using Transcender and other "practice tests" just wasn't the right thing to do. It seems to me that using such services is "gaming the system" and produces people who are certified but know not of the real world. As a result of such things and the fact that I've worked with many "certified folks" that just don't get it, I've always been kind of sour on certification even though I know there are some very good people who "did it right" and deserve whatever certification they have achieved. Thanks to Microsoft, that sour taste has become absolutely bitter for me.

    I still believe there are people who have and will do it right but the following URL makes me distrust certs even more...

    https://partner.microsoft.com/40161629

    It would appear that MS finding out about someone using such a site and revoking their cert because of it has been and certainly is nothing but a myth.

    Transcender (not sure about MeasureUp) has often teamed up with Microsoft for things like this. I have even seen some of these practice tests and can say that they are not like the actual exam. Sure they give you a butload of questions to try and simulate a test taking experience. But it is not a dump of the exam. From what I have seen it is very much constructed to be easier than the real exams. The questions are veeeeeerrrry basic and based typically on MOC (which is lacking).

    Don't fret too much that there is this discount. Some people like the warm fuzzy of simulating an exam because they don't test well. These particular test engines are for those people. But if you think you can just use transcender and not have real experience and common sense in the field, then you won't pass unless you are lucky.

    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

Viewing 15 posts - 33,676 through 33,690 (of 66,712 total)

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