How to build an app with GUI that works with SQL Server?

  • patrickmcginnis59 10839 - Friday, October 26, 2018 7:12 AM

    sgmunson - Friday, October 26, 2018 6:58 AM

    I don't know about the rest of you, but I'm disgusted that so many allegedly professional working adults are so ready to excuse bad ideas that they will even start inventing excuses.   The lamest one of all is "it's a learning exercise".   Would you say that if the task involved was building an explosive?   Teaching a student how to do something that's a bad idea, and in spades, isn't going to get excused by me, ever.   Bad ideas are bad ideas.   Going snowflake on everyone here and then even having the gall to claim that my objections to foolishness make me the snowflake, are patently offensive and just plain BS.   I'm calling it out as that and if you don't like it, all I can tell you is "T.S., Elliott".   I found a t-shirt recently that I just couldn't resist having, which says "No, you're right.   Let's do it the dumbest way possible because it's easier for you."    I would be wearing it right now if I were able to work from home.

     what I do in cases when I suspect something is a bad idea is imagine what would be the worst thing that could happen, and what I found in this instance is that if you passworded your database servers, this would prevent rando's from off the street from accessing your servers and trying to maliciously issue reindexing commands against your database. Obviously it will take them longer than using SSMS because in this worst case, they'll have to code up a dot net app in the hopefully small window that they have successfully accessed your unpassworded servers, but if you aren't passwording your servers, you're probably also leaving the door unlocked for long enough for them to code up that malicious app.

    so hopefully I've solved everyones problems on this one and university instructors can then continue challenging their students to access publically available apis' in dot net code. Hope I've helped out some here!

    All you've done is advocate the status quo, which is broken.  Anyone that can build a GUI to play against a database can build one to do so without knowing a thing about the database or the tools it has available.  Anyone that doesn't currently know how to build such a GUI can quickly learn how to do so although writing one to play Tic-Tac-Toe or maintain a check book would be more challenging, in this case.

    This project merely perpetuates ignorance, especially in the area of indexes, and the poor student is going to leave college thinking they know something and be seriously disappointed when they apply for their first job because they're no different than a million other neophytes that haven't actually learned much about their major in college, especially if that major has to do with IT.

    If the professor actually wanted to do something to prepare the student with skills beyond simply regurgitating the same mistakes that so many have made (including, apparently, the professor) with their own poor representations of an index maintenance GUI, they would have the student write a GUI that breaks the mold and actually does something useful and doesn't make the same mistakes that everyone else has been taught to make.

    So, let's follow the requirement in the given post...  The one about enabling people who don't know about "people who gonna use it don't know TSQL" to maintain indexes which, unfortunately, includes a lot of people that call themselves DBAs simply because they've been exposed to it for an extended period of time.  The OP says "I know TSQL" so have them study indexes at the page level and then write a GUI that actually has SQL Server sample the page chain of a given problematic index (one that quickly fragments, for example) for percent of page fullness and display it as a scatter chart so that the operator can analyze what's going on with the index.  For example, why is it that your Clustered Index with that nice "Ever Increasing" key that should never get fragmented is in constant need of being defragmented and will decreasing the Fill Factor on something that was supposed to never fragment actually help or hurt?  Add to that some analysis over time of the datatypes in the columns of the CI and you'll suddenly find out that the current "Best Practice" methods of index maintenance will do nothing but perpetuate the need for index maintenance unless something is done to the CI.

    Now THAT would really help "people who gonna use it don't know TSQL" but, even better than that, this fresh graduate would really know how to write a GUI and really know something about SQL Server (enough to recognize that they're in a box and need to think outside of it) and maybe even be able to pass an interview for their first job.

    Getting back to your comment about you imagining what would be the worst thing that can happen, I don't have to "imagine the worst", in such cases.  I live it every time I have to write a work around in SQL Server for something it should easily be able to do but doesn't (like return the ordinal position in a splitter, making a fast FORMAT function, making PIVOT as useful as it is in Access, making a partitioning or other wizard that actually works, etc, etc, etc).  I also live it when I interview DBAs and Developers (Front-end or Database) that claim more than 10 years of experience and they can't even tell me which function will return the current date and time in T-SQL.

    The system is broken and it needs to be fixed, especially in our colleges and universities.  You haven't solved a thing by advocating the status quo.

    --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)
    Intro to Tally Tables and Functions

  • All you've done is advocate the status quo, which is broken. Anyone that can build a GUI to play against a database can build one to do so
    without knowing a thing about the database or the tools it has available. Anyone that doesn't currently know how to build such a GUI can
    quickly learn how to do so although writing one to play Tic-Tac-Toe or maintain a check book would be more challenging, in this case.

    I like the idea of students collecting indexes and information related to them into a grid, and providing reasonable actions
    to send to the server as a result of the uneducated end user clicking on some part of that grid. The students are then
    going to be tasked with determining what reasonable actions are. Sure maybe its a status quo, but this status quo gets students
    learning. Remember, the students determine the reasonable action the program takes, not the uneducated end user.

    Hey, I doubt the students are going to get the indexing operation perfect, but fortunately for me and the professor, this is
    probably a database programming class and its going to accomplish goals adequate to the classes objectives and additionally,
    contrary to assertions otherwise, I see no evidence that this assignment will do any harm at all.

    Theres going to be students who "know it all" and refuse supervision in wherever their career choice takes them but this
    assignment and its goals are ORTHOGONAL to those concerns.

    This project merely perpetuates ignorance, especially in the area of indexes, and the poor student is going to leave college thinking they
    know something and be seriously disappointed when they apply for their first job because they're no different than a million other
    neophytes that haven't actually learned much about their major in college, especially if that major has to do with IT.

    You have to provide adequate evidence that it "perpetuates ignorance", I just can't accept this at face value. I know you have
    serious problems with the set of IT workers you've come to loath and I can't change your mind there, but what I'm unable
    to distill from anyones posts is how this nice looking student assignment adds to our industry's ills.

    If the professor actually wanted to do something to prepare the student with skills beyond simply regurgitating the same mistakes that so
    many have made (including, apparently, the professor) with their own poor representations of an index maintenance GUI, they would have the
    student write a GUI that breaks the mold and actually does something useful and doesn't make the same mistakes that everyone else has been
    taught to make.

    Again, subjective and nonsubstantiated, this literally gives me no evidence except that "jeff modens world sucks" and this is not
    nearly enough for me to work with. I can't help you until you substantiate your findings, heck I'd go with even proposed
    "cause and effect" theories, but you are giving me nothing. The only effort you are expending is some quality strawmen that
    SSC traditionally constructs to perpetrate what we hate this week. I don't actually mind the strawmen, occasionally I like to burn
    a few down 😉

    I get it, you hate the assignment, its enough for me to post criticisms of your hate and admiration for the cool assignment idea
    that started the thread.

    Heck I'm even having trouble distilling down an exact chain of events that would cause any consternation at all. Nothing. Heck
    it'd be cool for me if I could identify a chain of reasoning that I could either agree or disagree with, but man I'm getting
    nothing.

    So, let's follow the requirement in the given post... The one about enabling people who don't know about "people who gonna use it don't
    know TSQL" to maintain indexes which, unfortunately, includes a lot of people that call themselves DBAs simply because they've been
    exposed to it for an extended period of time. The OP says "I know TSQL" so have them study indexes at the page level and then write a GUI
    that actually has SQL Server sample the page chain of a given problematic index (one that quickly fragments, for example) for percent of
    page fullness and display it as a scatter chart so that the operator can analyze what's going on with the index. For example, why is it
    that your Clustered Index with that nice "Ever Increasing" key that should never get fragmented is in constant need of being defragmented
    and will decreasing the Fill Factor on something that was supposed to never fragment actually help or hurt? Add to that some analysis over
    time of the datatypes in the columns of the CI and you'll suddenly find out that the current "Best Practice" methods of index maintenance
    will do nothing but perpetuate the need for index maintenance unless something is done to the CI.

    Thats why the requirement for the app is that the end user will not know T-SQL. The student programmer does this research. They're
    not going to get it 100 percent but thats ok. This is the nature of the assignment. If an index needs a different fill factor, the
    student will either figure this out or won't, and that consideration is ORTHOGONAL to the assignment. This assignment is dot net querying
    metadata and sending T-SQL hopefully with some mouse clicks.

    If the student reads what indexing does, or alternatively if the instructor instructs on what indexing does, thats what the student
    is going to take with them, and again its ORTHOGONAL in relation to the assignment.

    The VERY BEST interpretation of your premise is that students are going to BRIEFLY touch on indexing and they will then assume THEY
    KNOW IT ALL AND DAMAGE THE NEXT IT CENTER THEY WALK INTO, but if we took this at face value we would never successfully teach computer
    programming again. We just can't do this man, we can't let Jeff's terrible life experiences ruin our chances for using computers
    to get things done. I'm sorry, its not the professor, its you.

    I think you are trying to build up both the students and the instructor (and heck probably the entire educational system) into some
    ridiculous caricature that you can blame for whatever irritates you and I'm just here asking you to stop. I obviously don't expect
    you to but I can at least defend the perfectly reasonable course assignment the instructor has given.

    Now THAT would really help "people who gonna use it don't know TSQL" but, even better than that, this fresh graduate would really know how
    to write a GUI and really know something about SQL Server (enough to recognize that they're in a box and need to think outside of it) and
    maybe even be able to pass an interview for their first job.

    But that will not get them the graphical app experience that the assignment is asking for. Where are your considerations for this
    graphical app?

    Getting back to your comment about you imagining what would be the worst thing that can happen, I don't have to "imagine the worst", in
    such cases.

    I'm guessing that you not feeling the need here is part of our disconnect. I think these things through. Thats fine, I personally
    don't need you to, I'm here defending this classroom asignment as reasonable and desireable. Post more assertions for me to
    refute, thats fine. If you can pull up a solid objection with reasoning I can go with, you have a chance to change my mind.
    I have no problem with being persuaded, and I would like to think I can admit when I'm wrong if the evidence becomes
    compelling enough.

  • patrickmcginnis59 10839 - Friday, October 26, 2018 10:39 AM

    All you've done is advocate the status quo, which is broken. Anyone that can build a GUI to play against a database can build one to do so
    without knowing a thing about the database or the tools it has available. Anyone that doesn't currently know how to build such a GUI can
    quickly learn how to do so although writing one to play Tic-Tac-Toe or maintain a check book would be more challenging, in this case.

    I like the idea of students collecting indexes and information related to them into a grid, and providing reasonable actions
    to send to the server as a result of the uneducated end user clicking on some part of that grid. The students are then
    going to be tasked with determining what reasonable actions are. Sure maybe its a status quo, but this status quo gets students
    learning. Remember, the students determine the reasonable action the program takes, not the uneducated end user.

    Hey, I doubt the students are going to get the indexing operation perfect, but fortunately for me and the professor, this is
    probably a database programming class and its going to accomplish goals adequate to the classes objectives and additionally,
    contrary to assertions otherwise, I see no evidence that this assignment will do any harm at all.

    Theres going to be students who "know it all" and refuse supervision in wherever their career choice takes them but this
    assignment and its goals are ORTHOGONAL to those concerns.

    This project merely perpetuates ignorance, especially in the area of indexes, and the poor student is going to leave college thinking they
    know something and be seriously disappointed when they apply for their first job because they're no different than a million other
    neophytes that haven't actually learned much about their major in college, especially if that major has to do with IT.

    You have to provide adequate evidence that it "perpetuates ignorance", I just can't accept this at face value. I know you have
    serious problems with the set of IT workers you've come to loath and I can't change your mind there, but what I'm unable
    to distill from anyones posts is how this nice looking student assignment adds to our industry's ills.

    If the professor actually wanted to do something to prepare the student with skills beyond simply regurgitating the same mistakes that so
    many have made (including, apparently, the professor) with their own poor representations of an index maintenance GUI, they would have the
    student write a GUI that breaks the mold and actually does something useful and doesn't make the same mistakes that everyone else has been
    taught to make.

    Again, subjective and nonsubstantiated, this literally gives me no evidence except that "jeff modens world sucks" and this is not
    nearly enough for me to work with. I can't help you until you substantiate your findings, heck I'd go with even proposed
    "cause and effect" theories, but you are giving me nothing. The only effort you are expending is some quality strawmen that
    SSC traditionally constructs to perpetrate what we hate this week. I don't actually mind the strawmen, occasionally I like to burn
    a few down 😉

    I get it, you hate the assignment, its enough for me to post criticisms of your hate and admiration for the cool assignment idea
    that started the thread.

    Heck I'm even having trouble distilling down an exact chain of events that would cause any consternation at all. Nothing. Heck
    it'd be cool for me if I could identify a chain of reasoning that I could either agree or disagree with, but man I'm getting
    nothing.

    So, let's follow the requirement in the given post... The one about enabling people who don't know about "people who gonna use it don't
    know TSQL" to maintain indexes which, unfortunately, includes a lot of people that call themselves DBAs simply because they've been
    exposed to it for an extended period of time. The OP says "I know TSQL" so have them study indexes at the page level and then write a GUI
    that actually has SQL Server sample the page chain of a given problematic index (one that quickly fragments, for example) for percent of
    page fullness and display it as a scatter chart so that the operator can analyze what's going on with the index. For example, why is it
    that your Clustered Index with that nice "Ever Increasing" key that should never get fragmented is in constant need of being defragmented
    and will decreasing the Fill Factor on something that was supposed to never fragment actually help or hurt? Add to that some analysis over
    time of the datatypes in the columns of the CI and you'll suddenly find out that the current "Best Practice" methods of index maintenance
    will do nothing but perpetuate the need for index maintenance unless something is done to the CI.

    Thats why the requirement for the app is that the end user will not know T-SQL. The student programmer does this research. They're
    not going to get it 100 percent but thats ok. This is the nature of the assignment. If an index needs a different fill factor, the
    student will either figure this out or won't, and that consideration is ORTHOGONAL to the assignment. This assignment is dot net querying
    metadata and sending T-SQL hopefully with some mouse clicks.

    If the student reads what indexing does, or alternatively if the instructor instructs on what indexing does, thats what the student
    is going to take with them, and again its ORTHOGONAL in relation to the assignment.

    The VERY BEST interpretation of your premise is that students are going to BRIEFLY touch on indexing and they will then assume THEY
    KNOW IT ALL AND DAMAGE THE NEXT IT CENTER THEY WALK INTO, but if we took this at face value we would never successfully teach computer
    programming again. We just can't do this man, we can't let Jeff's terrible life experiences ruin our chances for using computers
    to get things done. I'm sorry, its not the professor, its you.

    I think you are trying to build up both the students and the instructor (and heck probably the entire educational system) into some
    ridiculous caricature that you can blame for whatever irritates you and I'm just here asking you to stop. I obviously don't expect
    you to but I can at least defend the perfectly reasonable course assignment the instructor has given.

    Now THAT would really help "people who gonna use it don't know TSQL" but, even better than that, this fresh graduate would really know how
    to write a GUI and really know something about SQL Server (enough to recognize that they're in a box and need to think outside of it) and
    maybe even be able to pass an interview for their first job.

    But that will not get them the graphical app experience that the assignment is asking for. Where are your considerations for this
    graphical app?

    Getting back to your comment about you imagining what would be the worst thing that can happen, I don't have to "imagine the worst", in
    such cases.

    I'm guessing that you not feeling the need here is part of our disconnect. I think these things through. Thats fine, I personally
    don't need you to, I'm here defending this classroom asignment as reasonable and desireable. Post more assertions for me to
    refute, thats fine. If you can pull up a solid objection with reasoning I can go with, you have a chance to change my mind.
    I have no problem with being persuaded, and I would like to think I can admit when I'm wrong if the evidence becomes
    compelling enough.

    You've been ignoring compelling evidence from the git-go.  Why would we ever believe that bit about reasoning you can go with....   That's just a bunch of bloviation that disrespects common sense.   You ignore good reasons and expect us to trust your judgment ???   Seriously?   What Jeff is saying makes more sense than anything you've posted on this topic.   Status quo IS the problem, and if you can't see it, then I'd conclude you're blind.

  • You've been ignoring compelling evidence from the git-go. Why would we ever believe that bit about reasoning you can go with.... That's just a bunch of bloviation that disrespects common sense. You ignore good reasons and expect us to trust your judgment ??? Seriously? What Jeff is saying makes more sense than anything you've posted on this topic. Status quo IS the problem, and if you can't see it, then I'd conclude you're blind.

    I believe one of the most valuable skills of debate is bringing points of contention to the opponent in such a way that you not only acknowledge your opponents debate points but you display genuine care in presenting your debate points to your opponent so that they are clear and ready to refute, and in the case where they cannot be refuted, they could be either the basis for further debate or concession of the point in contention. Theres no real victory to me in obscuring them, nor constructing nebulous threads that wouldn't stand up to examination by reasonable persons.

    I do enjoy debating topics like this one, that's for sure!

  • patrickmcginnis59 10839 - Friday, October 26, 2018 10:39 AM

    All you've done is advocate the status quo, which is broken. Anyone that can build a GUI to play against a database can build one to do so
    without knowing a thing about the database or the tools it has available. Anyone that doesn't currently know how to build such a GUI can
    quickly learn how to do so although writing one to play Tic-Tac-Toe or maintain a check book would be more challenging, in this case.

    I like the idea of students collecting indexes and information related to them into a grid, and providing reasonable actions
    to send to the server as a result of the uneducated end user clicking on some part of that grid. The students are then
    going to be tasked with determining what reasonable actions are. Sure maybe its a status quo, but this status quo gets students
    learning. Remember, the students determine the reasonable action the program takes, not the uneducated end user.

    Hey, I doubt the students are going to get the indexing operation perfect, but fortunately for me and the professor, this is
    probably a database programming class and its going to accomplish goals adequate to the classes objectives and additionally,
    contrary to assertions otherwise, I see no evidence that this assignment will do any harm at all.

    Theres going to be students who "know it all" and refuse supervision in wherever their career choice takes them but this
    assignment and its goals are ORTHOGONAL to those concerns.

    I can't argue there.  I like that same idea from a training aspect for writing code against a database, writing a decent user interface, and the security aspects, but there are a huge number of rabbit holes if someone at the university decides to use this particular project code even on "practice" databases especially since it doesn't require someone to know T-SQL, which also means they really don't know anything about indexes .  A great deal of harm can be done to a database/server in the areas of MDF and LDF file expansion even if things like backups, log shipping ,and replication aren't in play,

    That's why I suggest a checkbook project instead.  It would require the same amount of user interface work, not require the user to know anything of T-SQL, Indexes, or even be aware that a database was involved, and has little chance of causing any damage by accident or otherwise.  It could even be expanded to a multi-tenant application, which would provide additional training in the area of security.  And, just as this project requires no one that will use it to have a glimmer of knowledge about indexes,  the checkbook project would not require someone to have a esoteric knowledge in accounting.

    Whether you agree with my morality on that subject or not, I'm just trying to ensure that the project doesn't cause the university or other students problems that can easily be avoided, perhaps even help drive home the idea of "unintended consequences", which they don't seem to teach much in database/front end courses.

    This project merely perpetuates ignorance, especially in the area of indexes, and the poor student is going to leave college thinking they
    know something and be seriously disappointed when they apply for their first job because they're no different than a million other
    neophytes that haven't actually learned much about their major in college, especially if that major has to do with IT.

    You have to provide adequate evidence that it "perpetuates ignorance", I just can't accept this at face value. I know you have
    serious problems with the set of IT workers you've come to loath and I can't change your mind there, but what I'm unable
    to distill from anyones posts is how this nice looking student assignment adds to our industry's ills.

    Understood and appreciated.  The "perpetualization of ignorance" that I'm speaking of IS a fairly abstract notion on my part and I do expect a lot of people to take exception to it because it IS a fair bit outside what people think of, or rather what they don't consider, when it comes to education.   That concept, of course, is the concept of "unintended consequences" that I've already spoken of.

    Now, I DO agree that, in the environment of the university, such consequences will probably never be realized but that actually exacerbates the problem because people simply can't anticipate an issue they've not seen before and probably won't see at the university but WILL see in real life.  It's a bit like when learning how to code in a database (even in real life, according to the posts I've seen)... people are frequently not exposed to solving issues with more than a handful of rows (10, 100, even just several thousand) and are left ignorant of what can happen when the inevitable occurs.

    Since I'm not the only one in this world that suffers from people we try to hire or work with not knowing about indexes and the related "unintended consequences" even though they claim knowledge (sometimes years of "experience")of databases, I'd like to see the "status quo" change.  At the very least, it would provide the students that are in a university where such a change has been implemented, a real leg up and the ability to hit the ground running when they graduate.  Think of it as them actually getting their money's worth from their education.  They are, after all, working for a degree that says they know stuff that will be applicable to the real world.

    It's also OK to disagree with that notion.  My purpose in this thread is to let people know of other options and that some of us are pretty well fed up with the "status quo" whether it has to do with databases or not but especially with database training and knowledge.

    If the professor actually wanted to do something to prepare the student with skills beyond simply regurgitating the same mistakes that so
    many have made (including, apparently, the professor) with their own poor representations of an index maintenance GUI, they would have the
    student write a GUI that breaks the mold and actually does something useful and doesn't make the same mistakes that everyone else has been
    taught to make.

    Again, subjective and nonsubstantiated, this literally gives me no evidence except that "jeff modens world sucks" and this is not
    nearly enough for me to work with. I can't help you until you substantiate your findings, heck I'd go with even proposed
    "cause and effect" theories, but you are giving me nothing. The only effort you are expending is some quality strawmen that
    SSC traditionally constructs to perpetrate what we hate this week. I don't actually mind the strawmen, occasionally I like to burn
    a few down 😉
    I get it, you hate the assignment, its enough for me to post criticisms of your hate and admiration for the cool assignment idea
    that started the thread.
    Heck I'm even having trouble distilling down an exact chain of events that would cause any consternation at all. Nothing. Heck
    it'd be cool for me if I could identify a chain of reasoning that I could either agree or disagree with, but man I'm getting
    nothing.

    Again, understood and appreciated.  On the surface, it would seem to be just a hatred for an assignment based on some arbitrary "today, I'm going to hate topics on this" or "this has recently ticked me off" thought but it's not that at all.  Hopefully, I've explained that in the previous reply just above the quotes above.  I'd really like to see a change for the better and it doesn't even have to be "my way".  I only expressed an opinion of what the assignment could be.

    I expect you may still disagree and that's ok.  If someone else reads all of this, perhaps they won't disagree and someone will help make the change come about.  Those stuck with the current "Status Quo" methods aren't going to suffer deeper just because of what I've written.  They'll still meet "status quo".

    So, let's follow the requirement in the given post... The one about enabling people who don't know about "people who gonna use it don't
    know TSQL" to maintain indexes which, unfortunately, includes a lot of people that call themselves DBAs simply because they've been
    exposed to it for an extended period of time. The OP says "I know TSQL" so have them study indexes at the page level and then write a GUI
    that actually has SQL Server sample the page chain of a given problematic index (one that quickly fragments, for example) for percent of
    page fullness and display it as a scatter chart so that the operator can analyze what's going on with the index. For example, why is it
    that your Clustered Index with that nice "Ever Increasing" key that should never get fragmented is in constant need of being defragmented
    and will decreasing the Fill Factor on something that was supposed to never fragment actually help or hurt? Add to that some analysis over
    time of the datatypes in the columns of the CI and you'll suddenly find out that the current "Best Practice" methods of index maintenance
    will do nothing but perpetuate the need for index maintenance unless something is done to the CI.

    Thats why the requirement for the app is that the end user will not know T-SQL. The student programmer does this research. They're
    not going to get it 100 percent but thats ok. This is the nature of the assignment. If an index needs a different fill factor, the
    student will either figure this out or won't, and that consideration is ORTHOGONAL to the assignment. This assignment is dot net querying
    metadata and sending T-SQL hopefully with some mouse clicks.
    If the student reads what indexing does, or alternatively if the instructor instructs on what indexing does, thats what the student
    is going to take with them, and again its ORTHOGONAL in relation to the assignment.
    The VERY BEST interpretation of your premise is that students are going to BRIEFLY touch on indexing and they will then assume THEY
    KNOW IT ALL AND DAMAGE THE NEXT IT CENTER THEY WALK INTO, but if we took this at face value we would never successfully teach computer
    programming again. We just can't do this man, we can't let Jeff's terrible life experiences ruin our chances for using computers
    to get things done. I'm sorry, its not the professor, its you.
    I think you are trying to build up both the students and the instructor (and heck probably the entire educational system) into some
    ridiculous caricature that you can blame for whatever irritates you and I'm just here asking you to stop. I obviously don't expect
    you to but I can at least defend the perfectly reasonable course assignment the instructor has given.

    I suppose I can agree with one aspect of that.  If someone were to write a checkbook program, for example, someone with no knowledge of checkbooks could improperly click on the checkbox that says a check has been cashed and returned.  Of course, a popup hint may help educate an ignorant user there and overdraft warnings/protections would also help.  Shifting back to the posted project...  Certainly, ignorant users could assign the wrong Fill Factor to an index or try to rebuild an index when there's no space to do so, etc, ad infinitum and it would, indeed, be on them to learn more.  IF the program were to include such checks, warnings, and related disallowments (to coin a phrase), I'd definitely feel better about this particular project.  It WILL be interesting if the project results in such nuances based on the given requirements of someone not knowing T-SQL being able to use it.

    And, yes... please do understand that I don't think of this project as a simple dot net related read some meta data and do something with it project.  If someone else wants to relegate it to that simple level, that's fine so long as people realize that's just status quo and writing a checkbook application would do as well.  What would really be cool is if they emulated real life in understanding that this particular project could be the first step in an Angile-like project but, considering the problem definition, I doubt that's the intent.

    Hopefully you realize that I'm not the only one that feels the way I do nor am I the only one that has suffered through such experiences.  Hopefully you'll realize that I'm just more vocal about it than many others and that these issues not only exist  in the wild but are rather prevalent well beyond my small/immediate world.  If you don't have that same realization, then we'll have to agree to disagree.

    Now THAT would really help "people who gonna use it don't know TSQL" but, even better than that, this fresh graduate would really know how
    to write a GUI and really know something about SQL Server (enough to recognize that they're in a box and need to think outside of it) and
    maybe even be able to pass an interview for their first job.

    But that will not get them the graphical app experience that the assignment is asking for. Where are your considerations for this
    graphical app?

    Considering the length of our posts, it was an easy thing for you to miss where I explained it.

    --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)
    Intro to Tally Tables and Functions

  • And sorry for the quote blocks not encompassing everything that I intended.  It would appear that the forum code was written as so many other have and I've gotten used to it because it's status quo for most forums.

    --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)
    Intro to Tally Tables and Functions

  • All you've done is advocate the status quo, which is broken. Anyone that can build a GUI to play against a database can
    build one to do so without knowing a thing about the database or the tools it has available. Anyone that doesn't currently
    know how to build such a GUI can quickly learn how to do so although writing one to play Tic-Tac-Toe or maintain a check
    book would be more challenging, in this case.

    I like the idea of students collecting indexes and information related to them into a grid, and providing reasonable
    actions to send to the server as a result of the uneducated end user clicking on some part of that grid. The students are then
    going to be tasked with determining what reasonable actions are. Sure maybe its a status quo, but this status quo gets
    students learning. Remember, the students determine the reasonable action the program takes, not the uneducated end user.

    Hey, I doubt the students are going to get the indexing operation perfect, but fortunately for me and the professor,
    this is probably a database programming class and its going to accomplish goals adequate to the classes objectives and
    additionally, contrary to assertions otherwise, I see no evidence that this assignment will do any harm at all.

    Theres going to be students who "know it all" and refuse supervision in wherever their career choice takes them but this
    assignment and its goals are ORTHOGONAL to those concerns.

    I can't argue there. I like that same idea from a training aspect for writing code against a database, writing a decent
    user interface, and the security aspects, but there are a huge number of rabbit holes if someone at the university
    decides to use this particular project code even on "practice" databases especially since it doesn't require someone to
    know T-SQL, which also means they really don't know anything about indexes . A great deal of harm can be done to a
    database/server in the areas of MDF and LDF file expansion even if things like backups, log shipping ,and replication
    aren't in play,

    No the requirement was that the USER of the app didn't know T-SQL. The student author would have to put together
    the T-SQL. But thats just nitpicking, because does it really matter in this case? If a great deal of harm happens
    on the student database server, isn't this sort of a good thing? Don't we want the errors of ommission for instance
    to show up in college, to be a topic of discussion in college?

    Now maybe you meant the great deal of harm happens in production during their first employment opportunity because
    of their experience in college. I also think theres some arguing about the entire lack of database knowledge
    on the part of the professor, but this is also sort of a wildcard, we just don't know what the lecture portion
    or textbook reference is like. But for the sake of argument, lets assume the instructor gives the worst case
    performance, and their students are numbnuts with an undeserved 4.0 gpa.

    These students are going to graduate, show up on the market, and their success or failure again will probably
    be orthogonal to whether they attempted this gui indexer.

    Additionally, you yourself have only recently put together your study on when to index and how, you have also
    disagreed with the author of the reorg code, so clearly you'd be dissatisfied with the instructor unless they
    called you directly and honed their curriculum directly according to your needs.

    There is either a decent body of knowledge out there about indexing or there isn't. Lets take them one at a time.

    Lets assume there is a decent body of knowledge out there about indexing, when to do it, whether to reorg or
    rebuild. This implies that the instructor can make use of this information when describing the assignment. We
    could also assume the instructor could give out resources for the student programmers to use when putting together
    the assignment. Lets assume the subcase that the instructor is competent. This is the "informed student" case.
    It says we can let the instructor proceed with the assignment because any failure or detrimental actions
    on the student database server are learning experiences.

    Lets assume again the body of knowledge but the instructor is an uninformed unmotivated dolt. The entire class
    body is going to fail to learn, regardless of whether the instructor passes them or not, and the GUI is moot

    What about if there isn't a decent body of knowledge out there about indexing. this pretty much means that anybody
    is going to just put their best guess out there, whether they put together an indexing GUI during college or not,
    and additionally the instructor competence might not have impact on the success or failure of the indexing op,
    although the competent instructor will at least get the student doing the app.

    Is a lack of a decent body of knowledge for SQL server indexing a situation that calls for the instructor to
    refrain from issuing the GUI as an assignment? Wouldn't manually issuing T-SQL commands be best forbidden also?
    Wouldn't untold number of "accidental dba's" be slinging arbitrary and unhelpful commands at the database
    server anyways regardless of this classroom exercize? Heck for that matter, without a decent body of knowledge
    available, is there anybody besides Jeff Moden who would be rebuilding indexes to the standards required by
    Jeff Moden?

    Either case seems to mean that we're going to have ex students enter the job market either with access to indexing
    knowledge or not. So given this, do we feel ourselves justified in denigrating the instructor BASED SOLEY ON THE
    GUI INDEXER ASSIGNMENT? Well I don't. I'm going through these alternatives and nothing jumps out.

    That's why I suggest a checkbook project instead. It would require the same amount of user interface work, not require
    the user to know anything of T-SQL, Indexes, or even be aware that a database was involved, and has little chance of
    causing any damage by accident or otherwise. It could even be expanded to a multi-tenant application, which would
    provide additional training in the area of security. And, just as this project requires no one that will use it to have
    a glimmer of knowledge about indexes, the checkbook project would not require someone to have a esoteric knowledge in
    accounting.

    I agree that a checkbook project would be cool, but I'd rather focus on the GUI index program, and leave the "keep
    students database dumb" out of it, I don't know if simply refraining from educating students is our path forward to fixing
    the IT industry. Even the checkbook program should
    hit on the database since its a good opportunity, but enough said about that, I'd like to focus on whether we
    need to insult the instructor or not based on the suggested gui indexer.

    Whether you agree with my morality on that subject or not, I'm just trying to ensure that the project doesn't cause the
    university or other students problems that can easily be avoided, perhaps even help drive home the idea of "unintended
    consequences", which they don't seem to teach much in database/front end courses.

    I'm a bit different that way, the students should better get all sorts of "unintended consequences" while they're in
    school 😉

    This project merely perpetuates ignorance, especially in the area of indexes, and the poor student is going to leave
    college thinking they know something and be seriously disappointed when they apply for their first job because they're
    no different than a million other neophytes that haven't actually learned much about their major in college,
    especially if that major has to do with IT.

    You have to provide adequate evidence that it "perpetuates ignorance", I just can't accept this at face value. I know
    you have serious problems with the set of IT workers you've come to loath and I can't change your mind there, but what I'm unable
    to distill from anyones posts is how this nice looking student assignment adds to our industry's ills.

    Understood and appreciated. The "perpetualization of ignorance" that I'm speaking of IS a fairly abstract notion on my
    part and I do expect a lot of people to take exception to it because it IS a fair bit outside what people think of, or
    rather what they don't consider, when it comes to education. That concept, of course, is the concept of "unintended
    consequences" that I've already spoken of.

    Even more so, you and I are completely uninformed about the quality of the instructors course materials, the instructor
    maybe be hitting on all areas of index maintenance or alternatively be completely ignorant or anywhere in between.
    Given that, we're evaluating the severity of the impact of the students coding this app.

    Now, I DO agree that, in the environment of the university, such consequences will probably never be realized but that
    actually exacerbates the problem because people simply can't anticipate an issue they've not seen before and probably
    won't see at the university but WILL see in real life. It's a bit like when learning how to code in a database (even in
    real life, according to the posts I've seen)... people are frequently not exposed to solving issues with more than a
    handful of rows (10, 100, even just several thousand) and are left ignorant of what can happen when the inevitable occurs.

    It certainly might be the case that students study somewhere where the ability to synthesize a table with realistic
    and challenging row counts are not available. lets again follow through on this one.

    If the students do not have at their disposal a table or tables that don't have enough rowcounts that indexes even
    matter, then no database work they do will be realistic, with or without the app. If the students DO have at their
    disposal a database with some realistic and challenging characteristics, then a realistic study of indexing is a possiblity.

    In both of these cases, we should realistically determine the impact of that gui app and get solid evidence of the
    detrimental effect before denigrating the instructor.

    One of the PLUSES of the app, is that during testing of this app during assignments, students actually see the rebuild
    or reorg operation and depending on the database, might measure the effects. If the gui app is done well, the students
    can issue a boatload of rebuild / reorg ops by selecting a range in a grid for instance.

    The supposed downside is that the students will be graduated with bad knowledge and an intent to get into your
    datacenter and issue commands without supervision and in spite of instructions otherwise. These students will refuse
    mentoring because they have issued indexing commands and based on their experience they assume themselves superior
    in skill based on something that hasn't really been identified in any of our arguments to date.

    Hopefully we're both aware at this point that I'm not quite buying that the above paragraph is caused by the gui app.

    Since I'm not the only one in this world that suffers from people we try to hire or work with not knowing about indexes
    and the related "unintended consequences" even though they claim knowledge (sometimes years of "experience")of
    databases, I'd like to see the "status quo" change. At the very least, it would provide the students that are in a
    university where such a change has been implemented, a real leg up and the ability to hit the ground running when they
    graduate. Think of it as them actually getting their money's worth from their education. They are, after all, working
    for a degree that says they know stuff that will be applicable to the real world.

    It's also OK to disagree with that notion. My purpose in this thread is to let people know of other options and that
    some of us are pretty well fed up with the "status quo" whether it has to do with databases or not but especially with
    database training and knowledge.

    I think part of the problem for me here is that we're only getting a downside from this assignment by following a very
    specific causal relationship. We're determining that this student programmer leaves the program with some lapse. I'm thinking
    that you're also including a decent lack of self awareness in our hypothetical student right?

    I can MAYBE make the stretch that the app is making a "bad situation worse", but what sort of student does this happen with?
    We'll need this student to be a successful coder yet unable to muster a competent measure of self awareness. A student with
    a healthy understanding of the difference between undergraduate college course work and work on production servers will probably
    navigate this situation ok, especially if they find employment somewhere with a competent mentoring program (formal or informal).

    What about the student without the sense of awareness? Maybe they think they know it all, but either they do (and succeed wherever), or
    they don't. Do these guys make it through the higher education program they enter, assuming that institution is competent? What sort of
    self unaware but otherwise requirement achieving person do we have here?

    And above all, where does the app fit in with our two scenarios above, the self aware and the other guy?

    There may be an argument to make, but its not getting made here, I'm trying to follow every which way and heck I even feel like I'm
    trying to make your argument for you and I'm literally getting nowhere.

    If the professor actually wanted to do something to prepare the student with skills beyond simply regurgitating the same
    mistakes that so many have made (including, apparently, the professor) with their own poor representations of an index maintenance GUI,
    they would have the student write a GUI that breaks the mold and actually does something useful and doesn't make the same mistakes that
    everyone else has been taught to make.

    Again, subjective and nonsubstantiated, this literally gives me no evidence except that "jeff modens world sucks" and
    this is not nearly enough for me to work with. I can't help you until you substantiate your findings, heck I'd go with even proposed
    "cause and effect" theories, but you are giving me nothing. The only effort you are expending is some quality strawmen
    that SSC traditionally constructs to perpetrate what we hate this week. I don't actually mind the strawmen, occasionally I
    like to burn a few down 😉

    I get it, you hate the assignment, its enough for me to post criticisms of your hate and admiration for the cool
    assignment idea that started the thread.

    Heck I'm even having trouble distilling down an exact chain of events that would cause any consternation at all.
    Nothing. Heck it'd be cool for me if I could identify a chain of reasoning that I could either agree or disagree with, but man I'm
    getting nothing.

    Again, understood and appreciated. On the surface, it would seem to be just a hatred for an assignment based on some
    arbitrary "today, I'm going to hate topics on this" or "this has recently ticked me off" thought but it's not that at
    all. Hopefully, I've explained that in the previous reply just above the quotes above. I'd really like to see a change
    for the better and it doesn't even have to be "my way". I only expressed an opinion of what the assignment could be.

    I expect you may still disagree and that's ok. If someone else reads all of this, perhaps they won't disagree and
    someone will help make the change come about. Those stuck with the current "Status Quo" methods aren't going to suffer
    deeper just because of what I've written. They'll still meet "status quo".

    We're not solving the worlds IT problems here, we're examining this app and determining this impact.

    So, let's follow the requirement in the given post... The one about enabling people who don't know about "people who
    gonna use it don't know TSQL" to maintain indexes which, unfortunately, includes a lot of people that call themselves DBAs simply because
    they've been exposed to it for an extended period of time. The OP says "I know TSQL" so have them study indexes at the page level and
    then write a GUI that actually has SQL Server sample the page chain of a given problematic index (one that quickly fragments, for
    example) for percent of page fullness and display it as a scatter chart so that the operator can analyze what's going on with the index. For
    example, why is it that your Clustered Index with that nice "Ever Increasing" key that should never get fragmented is in constant need of
    being defragmented and will decreasing the Fill Factor on something that was supposed to never fragment actually help or hurt? Add to that
    some analysis over time of the datatypes in the columns of the CI and you'll suddenly find out that the current "Best Practice" methods of
    index maintenance will do nothing but perpetuate the need for index maintenance unless something is done to the CI.

    Thats why the requirement for the app is that the end user will not know T-SQL. The student programmer does this
    research. They're not going to get it 100 percent but thats ok. This is the nature of the assignment. If an index needs a different fill
    factor, the student will either figure this out or won't, and that consideration is ORTHOGONAL to the assignment. This assignment is
    dot net querying metadata and sending T-SQL hopefully with some mouse clicks.

    If the student reads what indexing does, or alternatively if the instructor instructs on what indexing does, thats what
    the student is going to take with them, and again its ORTHOGONAL in relation to the assignment.

    The VERY BEST interpretation of your premise is that students are going to BRIEFLY touch on indexing and they will then
    assume THEY KNOW IT ALL AND DAMAGE THE NEXT IT CENTER THEY WALK INTO, but if we took this at face value we would never successfully
    teach computer programming again. We just can't do this man, we can't let Jeff's terrible life experiences ruin our chances for using
    computers to get things done. I'm sorry, its not the professor, its you.

    I think you are trying to build up both the students and the instructor (and heck probably the entire educational
    system) into some ridiculous caricature that you can blame for whatever irritates you and I'm just here asking you to stop. I obviously
    don't expect you to but I can at least defend the perfectly reasonable course assignment the instructor has given.

    -- irrelevent text about a different app.

    No objections on the check app. I want to discuss the gui indexer.

    And, yes... please do understand that I don't think of this project as a simple dot net related read some meta data and
    do something with it project. If someone else wants to relegate it to that simple level, that's fine so long as people
    realize that's just status quo and writing a checkbook application would do as well. What would really be cool is if
    they emulated real life in understanding that this particular project could be the first step in an Angile-like project
    but, considering the problem definition, I doubt that's the intent.

    Hopefully you realize that I'm not the only one that feels the way I do nor am I the only one that has suffered through
    such experiences. Hopefully you'll realize that I'm just more vocal about it than many others and that these issues not
    only exist in the wild but are rather prevalent well beyond my small/immediate world. If you don't have that same
    realization, then we'll have to agree to disagree.

    I think the ills of the IT industry is an interesting topic for discussion and the college curriculum is a great subtopic,
    can you describe your college experience? I went to a small tech school and didn't even touch on relational databases until I got
    a few workstudy assignments. Windows 3 wasn't even out yet, and we were pretty much limitted to our supermini for the most
    part. None the less, we had quite a few programming assignments and some of them had to be by necessity sort of "toy scaled,"
    but it would have been pretty difficult to go from this obviously introductory level into a decent midrange IT shop and
    try to take it over by virtue of me knowing it all 😉 I'm not saying these sorts of misinterpretations don't exist, and
    heck in a few cases there were probably some "hot shot" students graduating, but often times students with these inclinations
    are not going to limit themselves to the course assignments anyways.

    Hey I've seen some folks who's participation in IT I'd sort of regret 😉 I remember a fellow here with over 90k of
    (sure meaningless) points who couldn't tell the difference between (nolock) hints and optimistic concurrency AND REFUSED
    TO ENTERTAIN ANY TEXT INDICATING THERE WAS. Heck as far as folks I've personally had to navigate getting things done with,
    he may have been the genius in the mix for all I know. This sort of intellectual lapse didn't come from any app the guy
    did in college, heck for that matter, this guy DIDN'T DO NEARLY ENOUGH IN MY BOOK.

    Lets hear about your college experience.

  • Jeff Moden - Sunday, October 28, 2018 1:11 PM

    And sorry for the quote blocks not encompassing everything that I intended.  It would appear that the forum code was written as so many other have and I've gotten used to it because it's status quo for most forums.

    I don't like the forum editor, that'd be another thing I'd have to terminate in Pats new IT industry 🙂

  • Jeff Moden - Sunday, October 28, 2018 1:04 PM

    patrickmcginnis59 10839 - Friday, October 26, 2018 10:39 AM

    All you've done is advocate the status quo, which is broken. Anyone that can build a GUI to play against a database can build one to do so
    without knowing a thing about the database or the tools it has available. Anyone that doesn't currently know how to build such a GUI can
    quickly learn how to do so although writing one to play Tic-Tac-Toe or maintain a check book would be more challenging, in this case.

    I like the idea of students collecting indexes and information related to them into a grid, and providing reasonable actions
    to send to the server as a result of the uneducated end user clicking on some part of that grid. The students are then
    going to be tasked with determining what reasonable actions are. Sure maybe its a status quo, but this status quo gets students
    learning. Remember, the students determine the reasonable action the program takes, not the uneducated end user.

    Hey, I doubt the students are going to get the indexing operation perfect, but fortunately for me and the professor, this is
    probably a database programming class and its going to accomplish goals adequate to the classes objectives and additionally,
    contrary to assertions otherwise, I see no evidence that this assignment will do any harm at all.

    Theres going to be students who "know it all" and refuse supervision in wherever their career choice takes them but this
    assignment and its goals are ORTHOGONAL to those concerns.

    I can't argue there.  I like that same idea from a training aspect for writing code against a database, writing a decent user interface, and the security aspects, but there are a huge number of rabbit holes if someone at the university decides to use this particular project code even on "practice" databases especially since it doesn't require someone to know T-SQL, which also means they really don't know anything about indexes .  A great deal of harm can be done to a database/server in the areas of MDF and LDF file expansion even if things like backups, log shipping ,and replication aren't in play,

    That's why I suggest a checkbook project instead.  It would require the same amount of user interface work, not require the user to know anything of T-SQL, Indexes, or even be aware that a database was involved, and has little chance of causing any damage by accident or otherwise.  It could even be expanded to a multi-tenant application, which would provide additional training in the area of security.  And, just as this project requires no one that will use it to have a glimmer of knowledge about indexes,  the checkbook project would not require someone to have a esoteric knowledge in accounting.

    Whether you agree with my morality on that subject or not, I'm just trying to ensure that the project doesn't cause the university or other students problems that can easily be avoided, perhaps even help drive home the idea of "unintended consequences", which they don't seem to teach much in database/front end courses.

    This project merely perpetuates ignorance, especially in the area of indexes, and the poor student is going to leave college thinking they
    know something and be seriously disappointed when they apply for their first job because they're no different than a million other
    neophytes that haven't actually learned much about their major in college, especially if that major has to do with IT.

    You have to provide adequate evidence that it "perpetuates ignorance", I just can't accept this at face value. I know you have
    serious problems with the set of IT workers you've come to loath and I can't change your mind there, but what I'm unable
    to distill from anyones posts is how this nice looking student assignment adds to our industry's ills.

    Understood and appreciated.  The "perpetualization of ignorance" that I'm speaking of IS a fairly abstract notion on my part and I do expect a lot of people to take exception to it because it IS a fair bit outside what people think of, or rather what they don't consider, when it comes to education.   That concept, of course, is the concept of "unintended consequences" that I've already spoken of.

    Now, I DO agree that, in the environment of the university, such consequences will probably never be realized but that actually exacerbates the problem because people simply can't anticipate an issue they've not seen before and probably won't see at the university but WILL see in real life.  It's a bit like when learning how to code in a database (even in real life, according to the posts I've seen)... people are frequently not exposed to solving issues with more than a handful of rows (10, 100, even just several thousand) and are left ignorant of what can happen when the inevitable occurs.

    Since I'm not the only one in this world that suffers from people we try to hire or work with not knowing about indexes and the related "unintended consequences" even though they claim knowledge (sometimes years of "experience")of databases, I'd like to see the "status quo" change.  At the very least, it would provide the students that are in a university where such a change has been implemented, a real leg up and the ability to hit the ground running when they graduate.  Think of it as them actually getting their money's worth from their education.  They are, after all, working for a degree that says they know stuff that will be applicable to the real world.

    It's also OK to disagree with that notion.  My purpose in this thread is to let people know of other options and that some of us are pretty well fed up with the "status quo" whether it has to do with databases or not but especially with database training and knowledge.

    If the professor actually wanted to do something to prepare the student with skills beyond simply regurgitating the same mistakes that so
    many have made (including, apparently, the professor) with their own poor representations of an index maintenance GUI, they would have the
    student write a GUI that breaks the mold and actually does something useful and doesn't make the same mistakes that everyone else has been
    taught to make.

    Again, subjective and nonsubstantiated, this literally gives me no evidence except that "jeff modens world sucks" and this is not
    nearly enough for me to work with. I can't help you until you substantiate your findings, heck I'd go with even proposed
    "cause and effect" theories, but you are giving me nothing. The only effort you are expending is some quality strawmen that
    SSC traditionally constructs to perpetrate what we hate this week. I don't actually mind the strawmen, occasionally I like to burn
    a few down 😉
    I get it, you hate the assignment, its enough for me to post criticisms of your hate and admiration for the cool assignment idea
    that started the thread.
    Heck I'm even having trouble distilling down an exact chain of events that would cause any consternation at all. Nothing. Heck
    it'd be cool for me if I could identify a chain of reasoning that I could either agree or disagree with, but man I'm getting
    nothing.

    Again, understood and appreciated.  On the surface, it would seem to be just a hatred for an assignment based on some arbitrary "today, I'm going to hate topics on this" or "this has recently ticked me off" thought but it's not that at all.  Hopefully, I've explained that in the previous reply just above the quotes above.  I'd really like to see a change for the better and it doesn't even have to be "my way".  I only expressed an opinion of what the assignment could be.

    I expect you may still disagree and that's ok.  If someone else reads all of this, perhaps they won't disagree and someone will help make the change come about.  Those stuck with the current "Status Quo" methods aren't going to suffer deeper just because of what I've written.  They'll still meet "status quo".

    So, let's follow the requirement in the given post... The one about enabling people who don't know about "people who gonna use it don't
    know TSQL" to maintain indexes which, unfortunately, includes a lot of people that call themselves DBAs simply because they've been
    exposed to it for an extended period of time. The OP says "I know TSQL" so have them study indexes at the page level and then write a GUI
    that actually has SQL Server sample the page chain of a given problematic index (one that quickly fragments, for example) for percent of
    page fullness and display it as a scatter chart so that the operator can analyze what's going on with the index. For example, why is it
    that your Clustered Index with that nice "Ever Increasing" key that should never get fragmented is in constant need of being defragmented
    and will decreasing the Fill Factor on something that was supposed to never fragment actually help or hurt? Add to that some analysis over
    time of the datatypes in the columns of the CI and you'll suddenly find out that the current "Best Practice" methods of index maintenance
    will do nothing but perpetuate the need for index maintenance unless something is done to the CI.

    Thats why the requirement for the app is that the end user will not know T-SQL. The student programmer does this research. They're
    not going to get it 100 percent but thats ok. This is the nature of the assignment. If an index needs a different fill factor, the
    student will either figure this out or won't, and that consideration is ORTHOGONAL to the assignment. This assignment is dot net querying
    metadata and sending T-SQL hopefully with some mouse clicks.
    If the student reads what indexing does, or alternatively if the instructor instructs on what indexing does, thats what the student
    is going to take with them, and again its ORTHOGONAL in relation to the assignment.
    The VERY BEST interpretation of your premise is that students are going to BRIEFLY touch on indexing and they will then assume THEY
    KNOW IT ALL AND DAMAGE THE NEXT IT CENTER THEY WALK INTO, but if we took this at face value we would never successfully teach computer
    programming again. We just can't do this man, we can't let Jeff's terrible life experiences ruin our chances for using computers
    to get things done. I'm sorry, its not the professor, its you.
    I think you are trying to build up both the students and the instructor (and heck probably the entire educational system) into some
    ridiculous caricature that you can blame for whatever irritates you and I'm just here asking you to stop. I obviously don't expect
    you to but I can at least defend the perfectly reasonable course assignment the instructor has given.

    I suppose I can agree with one aspect of that.  If someone were to write a checkbook program, for example, someone with no knowledge of checkbooks could improperly click on the checkbox that says a check has been cashed and returned.  Of course, a popup hint may help educate an ignorant user there and overdraft warnings/protections would also help.  Shifting back to the posted project...  Certainly, ignorant users could assign the wrong Fill Factor to an index or try to rebuild an index when there's no space to do so, etc, ad infinitum and it would, indeed, be on them to learn more.  IF the program were to include such checks, warnings, and related disallowments (to coin a phrase), I'd definitely feel better about this particular project.  It WILL be interesting if the project results in such nuances based on the given requirements of someone not knowing T-SQL being able to use it.

    And, yes... please do understand that I don't think of this project as a simple dot net related read some meta data and do something with it project.  If someone else wants to relegate it to that simple level, that's fine so long as people realize that's just status quo and writing a checkbook application would do as well.  What would really be cool is if they emulated real life in understanding that this particular project could be the first step in an Angile-like project but, considering the problem definition, I doubt that's the intent.

    Hopefully you realize that I'm not the only one that feels the way I do nor am I the only one that has suffered through such experiences.  Hopefully you'll realize that I'm just more vocal about it than many others and that these issues not only exist  in the wild but are rather prevalent well beyond my small/immediate world.  If you don't have that same realization, then we'll have to agree to disagree.

    Now THAT would really help "people who gonna use it don't know TSQL" but, even better than that, this fresh graduate would really know how
    to write a GUI and really know something about SQL Server (enough to recognize that they're in a box and need to think outside of it) and
    maybe even be able to pass an interview for their first job.

    But that will not get them the graphical app experience that the assignment is asking for. Where are your considerations for this
    graphical app?

    Considering the length of our posts, it was an easy thing for you to miss where I explained it.

    I continue to be amazed that this topic continues to be debated.   Someone who is NOT in a position to see the evidence for the "status quo" is not at all qualified to participate in the debate.   They have no frame of reference, and thus it could logically be claimed that they "don't know what they're talking about".   I refuse to spend my time debating such topics with such persons.   It's a waste of time and effort, and does nothing to either solve the problem or educate the person who is missing the necessary data from their own experience.   This isn't the kind of data you can go find a study for so that you can cite a reference, so you either have the knowledge or you don't.   How much time and effort do you think some business is going to spend criticizing itself  by engaging a university and getting it studied ???  Precious little, in most cases.   If logic and reason can not lead a person to those conclusions, a debate on this topic is worthless.  They may simply not have sufficient skill in logic and reason to be capable of a reasonable debate, because you have no common frame of reference, and will thus disagree on basic facts, and again, debating facts serves no useful purpose.

  • sgmunson - Monday, October 29, 2018 1:15 PM

    I continue to be amazed that this topic continues to be debated.   Someone who is NOT in a position to see the evidence for the "status quo" is not at all qualified to participate in the debate.   They have no frame of reference, and thus it could logically be claimed that they "don't know what they're talking about".   I refuse to spend my time debating such topics with such persons.   It's a waste of time and effort, and does nothing to either solve the problem or educate the person who is missing the necessary data from their own experience.   This isn't the kind of data you can go find a study for so that you can cite a reference, so you either have the knowledge or you don't.   How much time and effort do you think some business is going to spend criticizing itself  by engaging a university and getting it studied ???  Precious little, in most cases.   If logic and reason can not lead a person to those conclusions, a debate on this topic is worthless.  They may simply not have sufficient skill in logic and reason to be capable of a reasonable debate, because you have no common frame of reference, and will thus disagree on basic facts, and again, debating facts serves no useful purpose.

    edit: removed original text.

    Anyways I get the feeling that you didn't have a question or anything and just wanted to vent, and furthermore you're pretty sure I'm not qualified to participate in the debate, etc. Your position has been duly noted and you can rest assured your post is unambiguous enough that I can tell pretty much where you're coming from and I wouldn't want to unnecessarily waste your time asking for further clarifications. I hope you have otherwise enjoyed my participation in this thread as much as I have enjoyed yours!

  • @patrick-2,

    Heh... it's so odd.  You and I actually are joined at the hip on a lot of things.

    On the subject of the original app, I agree that the things you speak of could happen providing the students and maybe even the users with the opportunity to solve some great problems... if nothing else, they'd become keenly aware of them.  There may be some instructors/professors that do properly "give the student the opportunity to fail", which also provides them with the opportunity to succeed if the instructor does a follow up rather than just assigned a grade and washing their hands of it.

    As you say, though, neither of us know what the professor in this situation has in mind.  It could be as terrible as I've implied or it could be as great as we'd both like it to be.  As for all the tangents to my tangents that you've brought up, yes... a thousand different things could or could not happen to the student.  I'm just trying to look at it through the eyes of an instructor but, again, none of us know what the professor in this case has in mind.  I am, in fact, imagining the worse only because of the not only the product that I've seen in the form of interviewees but also in fellow instructors when I've been an instructor and some instructors when I've been a student.

    On the checkbook thing, I'm sorry if I wasn't clear... it would definitely have a database in the background and I said I thought a "multi-tenant" database would go far in teaching select-ability, control, and security.

    On the index stuff, yes... I agree that I've recently learned and, in some cases, discovered some very interesting things but that wasn't my big point on all of this (although I'll admit I did mention it).  As described, I saw the original problem as being described too simply and without further guidance, wouldn't lend itself to much understanding and could cause problems not only for the student in the future, but immediately if someone used it on their databases at the university.  If we can drop that latter objection of mine (as I intend to, although a bit reluctantly), we can both agree that could be a good learning tool both by success and by failure.  It depends a whole lot on what the instructor does with it all and neither of us know what that will be.

    I also say that, although some really good points have come out on both sides, you and I will have to agree to disagree on many things concerning this project.

    --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)
    Intro to Tally Tables and Functions

  • Jeff Moden - Monday, October 29, 2018 7:05 PM

    @patrick-2,
     It depends a whole lot on what the instructor does with it all and neither of us know what that will be.

    If a decade working in a University Comp-Sci department taught me anything, it's that it'll either be immediately disposed of and forgotten, or recycled for the next 'n' years coursework until somebody is forced to re-write the lecture notes due to a change in course structure/programming language etc.

Viewing 12 posts - 46 through 56 (of 56 total)

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