October 25, 2018 at 10:42 am
patrickmcginnis59 10839 - Thursday, October 25, 2018 10:26 AMJeff Moden - Thursday, October 25, 2018 8:33 AMandycadley - Thursday, October 25, 2018 12:33 AMHaving worked in a university previously, I can tell you that a lot of GUI programs are deliberately not things you're likely to find out in the "real world" simply because it makes it more likely students won't just go off, lift the design from an existing application and then try to implement that. There is more benefit in a student sitting down and thinking through what should be displayed and how they can best get input from the user, than in the practical use of whatever they end up building.Having something run maintenance tasks on an arbitrary database is actually kind of interesting from that perspective. Not only does it involve some database connectivity code (always a good idea) but also means you can have them do demos/tests against a database they haven't necessarily seen before - which can even be pre-created with some known maintenance required.
I totally agree on all counts, Andy. It's why such exercises like the "Fizz Buzz" problem were developed, although that has certainly become seriously public and easy to find. I also agree that the requirement of "people who gonna {sic} use it don't know TSQL" is a driver as to how complete the code should be for the project.
I just don't agree with all of that for this particular case. While I do agree that not everything has to be "real life" to teach thought processes and skills, this one is sending the wrong message, IMHO. (I also believe that it needs to be made absolutely clear that it's not real life so students don't take the wrong ideas forward). Also, consider what could happen if this particular "gypsy moth" gets out into the "wild". "Well, this was developed and tested at the University of {whatever}, so both the concept and the code must be correct". While many with disagree with me, there are a whole lot of people in this world that would blindly copy and use the code.
Also, once this gets out, the argument of having something fresh just because a database changes won't actually be valid anymore anyway. Might as well teach the right way to do it and the real life reasons why.
At some point the SQL community needs to quit being the helpless triggered snowflakes repeatedly lashing out in slanderous fashion against innocent bystanders and start taking some responsibility for our field of endeavor. There are already point and click interfaces to SQL server, if there is ANY HARM AT ALL in a professor and their class investigating another, then its not an indictment against the professor, its rather an indictment against the fragility of the SQL community that it cannot withstand such an imaginary assault against some unpublished morality play.
In other words, get over yourself.
At some point, the SQL Community needs to ensure that students are taught well enough to know how to get the current date and time and that instructors need to start taking responsibility for the crap knowledge and lack of concern that they and their prodigy heap upon the business world. Heh.... and that's all a part of the reason why there are already so many crap point and click interfaces to SQL Server along with the dumbing down of people that claim to be DBAs, Developers, Analysts, and Data Scientists.
Heh... and I don't need to get over myself... I regularly have to get over what the snowflake generating school systems are producing for people that supposedly know things and the tolerance for such junk that other snowflakes have for it all. 😉
In other words, get over your own damned self.
--Jeff Moden
Change is inevitable... Change for the better is not.
October 25, 2018 at 10:49 am
ZZartin - Thursday, October 25, 2018 9:13 AMsgmunson - Wednesday, October 24, 2018 2:46 PMpatrickmcginnis59 10839 - Wednesday, October 24, 2018 1:54 PMJeff Moden - Thursday, October 18, 2018 7:21 AMJonathan AC Roberts - Thursday, October 18, 2018 7:05 AMsgmunson - Thursday, October 18, 2018 6:58 AMJonathan AC Roberts - Thursday, October 18, 2018 6:23 AMsgmunson - Thursday, October 18, 2018 6:16 AMelea.grig - Tuesday, October 16, 2018 12:04 PMsgmunson - Monday, October 1, 2018 1:05 PMelea.grig - Monday, October 1, 2018 12:41 PMsgmunson - Monday, October 1, 2018 8:09 AMIndex maintenance is typically a DBA role, and should NEVER be relegated to users. Just doesn't sound like a good idea to me at all. Determining which method of dealing with the index is not a decision a user or an app is likely to ever be qualified to do. That's the reason you pay a DBA to do it. The DBA has the knowledge and experience to perform that task. The user most likely does not and could easily do far more harm than good. Really bad idea to even consider making an app and letting users run such things.Thanks for the answer! Actually this is a university project for studying, and basically this program will be used by other students. And maintenance plan does not let me choose all the options I will provide on my script
I fail to see how that matters. If your teachers are going to show you a bad idea, then they are not doing you any favors. Besides, whatever database they have it pointed to will quickly get messed up by all that index maintenance, and quickly lose any real value precisely because it will be in a degraded state. Somebody on the faculty isn't too bright a bulb....
I've explained everything that this project is basically useless but in developing countries universities are like this.
So be it. And "in developing countries universities", if that is how their educators teach SQL, watch out world, will there ever be a glut of even less skilled database folks than there already are.... That might just be why those countries are referred to as "developing"... Let's hope that such foolishness is not reflective of the overall state of IT education, because if it is, ... again, WATCH OUT WORLD...
I don't see the sort of application the OP is supposed to develop as much different from the type of tools Redgate and ApexSQL, etc. develop.
How about the fact that the someone doing the developing is an expert selling to other experts? If that's not a rather sizable difference, then we can stop talking about it right here and now. Any app being developed by a student for that kind of work had better be being done by a Mensa-level genius that actually has people skills, or there will be a HUGE difference in the resulting app.
Well the OP did say "Actually this is a university project for studying" so I took it as a learning exercise. Also, if she gets some scripts from the posters here that would check what maintenance operation should be done to different indexes and includes them within her application then she might come up with a useful application.
True enough but let's review the requirements of the project as stated in the original post.
I have to create a project which should have a GUI because people who gonna use it don't know TSQL. It's purpose it to let people choose options with checkboxes than run a index maintenance script on the server with specified options.
Studying in university is supposed to prepare you for real life. In real life, no DBA worth their salt would allow this. If someone doesn't know T-SQL, how would they ever know enough about when, why, or what the settings for index maintenance should be? No.... this absolutely should not be a program executed by users. Index Maintenance should be automated by the DBA. Having some user run index maintenance willy nilly during peak hours could cause real problems for the system and the other users. Worse yet, giving them options could destroy performance by a bad rebuild/reorganize (especially reorganize) or what have you.
As a bit of a side bar, the OP is getting early training to understand that there are certain things that users (and developers) must not be allowed to do and why and that, as in real life, sometimes the answer is going to not only be "No" but "Hell No!" 😉 Heh... and if the OP really knew T-SQL as they claim, they'd agree. 😛
I think this thread has been unnecessarily hosed by Jeff and sgmunson, there are certainly point and click index maintenance programs out there, this is not out of the realm of possibilities that at some point somebody is going to write code to do this. I think its certainly ok to caution against having a program issue incorrect index rebuild statements, but I suspect this would also be part of the assignment. Heck in all likelihood they're going to be working on the exact same server environments I worked on in college, ie., installations that students can hose and the world will still continue to turn.
So my question to Jeff and sgmunson, did your college not have environments expendable enough that students could learn on? Say, SQL express installations? I know when I worked in college, when a computer goofed up, we reinstalled them and the world didn't end. Was this not the case at the colleges you attended? Heck for that matter, reorgs and rebuilds would not be too prohibitive an operation to issue from dot net for instance.
Just assume that I don't know what your concerns are on this one and clue me in! Heck if you are hiring a fresh graduate as your production DBA without a mentoring program or other work experience, doesn't that make this "gui a t-sql command" a bit moot? Wouldn't you have far larger concerns throwing a rookie out on your production servers?
Hosed on, set on fire, and all the other hell we might need to rain down on it. When you have to worry about being able to get decent IT talent to begin with, the last thing you want is some dipwad professor thinkin' he's smarter than the average bear when it's abundantly clear that he/she is doing a great job of promoting unnecessary risk taking in general and specifically some rather bad ideas about index maintenance. More students with that kind of thinking going on just means more such "rookies" that you have to worry about when they come in the door. Promoting bad ideas is the one thing every professor should NEVER do. Maybe we need the functional equivalent of a Hippocratic Oath for education. Unfortunately, most profs would probably fail that these days.
A college is not and should not be job training. So without knowing more information about what this project is actually about it's hard to say what value there is in it. From a purely academic standpoint creating a user interface to simplify complicated back end tasks has a lot of value. That might not be anything you would deploy to your enterprise server but from an academic standpoint it has value, particularly if it teaches the student that there's more to databases than just staring at SSMS.
Really??? That's one of the many problems the IT community and businesses in general are having with graduates these days... They are woefully unprepared for the real world and have been taught a bunch of bad ideas that just don't work in the real world where money is on the line. If it's not going to be job training, then frankly, I'd very likely stop using graduates at all, and start looking at aptitude in high school students to identify those that could be trained on the job. Enough people start doing that and colleges will start to disappear or get replaced by institutions that don't suffer from that disease. Understand that I'm not saying that a college grad is going to know everything out of the gate, but they probably ought to be able to meet certain minimum standards, and that's something that's actually rare these days.
Steve (aka sgmunson) 🙂 🙂 🙂
Rent Servers for Income (picks and shovels strategy)
October 25, 2018 at 10:52 am
Jeff Moden - Thursday, October 25, 2018 10:42 AMpatrickmcginnis59 10839 - Thursday, October 25, 2018 10:26 AMJeff Moden - Thursday, October 25, 2018 8:33 AMandycadley - Thursday, October 25, 2018 12:33 AMHaving worked in a university previously, I can tell you that a lot of GUI programs are deliberately not things you're likely to find out in the "real world" simply because it makes it more likely students won't just go off, lift the design from an existing application and then try to implement that. There is more benefit in a student sitting down and thinking through what should be displayed and how they can best get input from the user, than in the practical use of whatever they end up building.Having something run maintenance tasks on an arbitrary database is actually kind of interesting from that perspective. Not only does it involve some database connectivity code (always a good idea) but also means you can have them do demos/tests against a database they haven't necessarily seen before - which can even be pre-created with some known maintenance required.
I totally agree on all counts, Andy. It's why such exercises like the "Fizz Buzz" problem were developed, although that has certainly become seriously public and easy to find. I also agree that the requirement of "people who gonna {sic} use it don't know TSQL" is a driver as to how complete the code should be for the project.
I just don't agree with all of that for this particular case. While I do agree that not everything has to be "real life" to teach thought processes and skills, this one is sending the wrong message, IMHO. (I also believe that it needs to be made absolutely clear that it's not real life so students don't take the wrong ideas forward). Also, consider what could happen if this particular "gypsy moth" gets out into the "wild". "Well, this was developed and tested at the University of {whatever}, so both the concept and the code must be correct". While many with disagree with me, there are a whole lot of people in this world that would blindly copy and use the code.
Also, once this gets out, the argument of having something fresh just because a database changes won't actually be valid anymore anyway. Might as well teach the right way to do it and the real life reasons why.
At some point the SQL community needs to quit being the helpless triggered snowflakes repeatedly lashing out in slanderous fashion against innocent bystanders and start taking some responsibility for our field of endeavor. There are already point and click interfaces to SQL server, if there is ANY HARM AT ALL in a professor and their class investigating another, then its not an indictment against the professor, its rather an indictment against the fragility of the SQL community that it cannot withstand such an imaginary assault against some unpublished morality play.
In other words, get over yourself.
At some point, the SQL Community needs to ensure that students are taught well enough to know how to get the current date and time and that instructors need to start taking responsibility for the crap knowledge and lack of concern that they and their prodigy heap upon the business world. Heh.... and that's all a part of the reason why there are already so many crap point and click interfaces to SQL Server along with the dumbing down of people that claim to be DBAs, Developers, Analysts, and Data Scientists.
In other words, you're out of line.
+ several trillion googolplexes to the several trillion googolplex power.
I was going to reply to that post myself, but I think you had much better words than what I had in mind. But I will add this: WAY the heck out of line, Patrick...
Steve (aka sgmunson) 🙂 🙂 🙂
Rent Servers for Income (picks and shovels strategy)
October 25, 2018 at 10:59 am
Jeff Moden - Thursday, October 25, 2018 10:42 AMpatrickmcginnis59 10839 - Thursday, October 25, 2018 10:26 AMJeff Moden - Thursday, October 25, 2018 8:33 AMandycadley - Thursday, October 25, 2018 12:33 AMHaving worked in a university previously, I can tell you that a lot of GUI programs are deliberately not things you're likely to find out in the "real world" simply because it makes it more likely students won't just go off, lift the design from an existing application and then try to implement that. There is more benefit in a student sitting down and thinking through what should be displayed and how they can best get input from the user, than in the practical use of whatever they end up building.Having something run maintenance tasks on an arbitrary database is actually kind of interesting from that perspective. Not only does it involve some database connectivity code (always a good idea) but also means you can have them do demos/tests against a database they haven't necessarily seen before - which can even be pre-created with some known maintenance required.
I totally agree on all counts, Andy. It's why such exercises like the "Fizz Buzz" problem were developed, although that has certainly become seriously public and easy to find. I also agree that the requirement of "people who gonna {sic} use it don't know TSQL" is a driver as to how complete the code should be for the project.
I just don't agree with all of that for this particular case. While I do agree that not everything has to be "real life" to teach thought processes and skills, this one is sending the wrong message, IMHO. (I also believe that it needs to be made absolutely clear that it's not real life so students don't take the wrong ideas forward). Also, consider what could happen if this particular "gypsy moth" gets out into the "wild". "Well, this was developed and tested at the University of {whatever}, so both the concept and the code must be correct". While many with disagree with me, there are a whole lot of people in this world that would blindly copy and use the code.
Also, once this gets out, the argument of having something fresh just because a database changes won't actually be valid anymore anyway. Might as well teach the right way to do it and the real life reasons why.
At some point the SQL community needs to quit being the helpless triggered snowflakes repeatedly lashing out in slanderous fashion against innocent bystanders and start taking some responsibility for our field of endeavor. There are already point and click interfaces to SQL server, if there is ANY HARM AT ALL in a professor and their class investigating another, then its not an indictment against the professor, its rather an indictment against the fragility of the SQL community that it cannot withstand such an imaginary assault against some unpublished morality play.
In other words, get over yourself.
At some point, the SQL Community needs to ensure that students are taught well enough to know how to get the current date and time and that instructors need to start taking responsibility for the crap knowledge and lack of concern that they and their prodigy heap upon the business world. Heh.... and that's all a part of the reason why there are already so many crap point and click interfaces to SQL Server along with the dumbing down of people that claim to be DBAs, Developers, Analysts, and Data Scientists.
In other words, you're out of line.
Hey, I'll be happy to get back in line, as long as its the right one!
October 25, 2018 at 11:16 am
patrickmcginnis59 10839 - Thursday, October 25, 2018 10:59 AMJeff Moden - Thursday, October 25, 2018 10:42 AMpatrickmcginnis59 10839 - Thursday, October 25, 2018 10:26 AMJeff Moden - Thursday, October 25, 2018 8:33 AMandycadley - Thursday, October 25, 2018 12:33 AMHaving worked in a university previously, I can tell you that a lot of GUI programs are deliberately not things you're likely to find out in the "real world" simply because it makes it more likely students won't just go off, lift the design from an existing application and then try to implement that. There is more benefit in a student sitting down and thinking through what should be displayed and how they can best get input from the user, than in the practical use of whatever they end up building.Having something run maintenance tasks on an arbitrary database is actually kind of interesting from that perspective. Not only does it involve some database connectivity code (always a good idea) but also means you can have them do demos/tests against a database they haven't necessarily seen before - which can even be pre-created with some known maintenance required.
I totally agree on all counts, Andy. It's why such exercises like the "Fizz Buzz" problem were developed, although that has certainly become seriously public and easy to find. I also agree that the requirement of "people who gonna {sic} use it don't know TSQL" is a driver as to how complete the code should be for the project.
I just don't agree with all of that for this particular case. While I do agree that not everything has to be "real life" to teach thought processes and skills, this one is sending the wrong message, IMHO. (I also believe that it needs to be made absolutely clear that it's not real life so students don't take the wrong ideas forward). Also, consider what could happen if this particular "gypsy moth" gets out into the "wild". "Well, this was developed and tested at the University of {whatever}, so both the concept and the code must be correct". While many with disagree with me, there are a whole lot of people in this world that would blindly copy and use the code.
Also, once this gets out, the argument of having something fresh just because a database changes won't actually be valid anymore anyway. Might as well teach the right way to do it and the real life reasons why.
At some point the SQL community needs to quit being the helpless triggered snowflakes repeatedly lashing out in slanderous fashion against innocent bystanders and start taking some responsibility for our field of endeavor. There are already point and click interfaces to SQL server, if there is ANY HARM AT ALL in a professor and their class investigating another, then its not an indictment against the professor, its rather an indictment against the fragility of the SQL community that it cannot withstand such an imaginary assault against some unpublished morality play.
In other words, get over yourself.
At some point, the SQL Community needs to ensure that students are taught well enough to know how to get the current date and time and that instructors need to start taking responsibility for the crap knowledge and lack of concern that they and their prodigy heap upon the business world. Heh.... and that's all a part of the reason why there are already so many crap point and click interfaces to SQL Server along with the dumbing down of people that claim to be DBAs, Developers, Analysts, and Data Scientists.
In other words, you're out of line.
Hey, I'll be happy to get back in line, as long as its the right one!
My Bachelors degree is from a University, but it was earned through their school of Professional Development which means all the students were actually working adults. In addition, except for a few of the general education courses, were also taught by working professionals. Yes, they taught from college textbooks but at the same time they brought the real world into their classrooms allowing us to know what was really happening in the workplace.
October 25, 2018 at 11:16 am
sgmunson - Thursday, October 25, 2018 10:49 AMZZartin - Thursday, October 25, 2018 9:13 AMsgmunson - Wednesday, October 24, 2018 2:46 PMpatrickmcginnis59 10839 - Wednesday, October 24, 2018 1:54 PMJeff Moden - Thursday, October 18, 2018 7:21 AMJonathan AC Roberts - Thursday, October 18, 2018 7:05 AMsgmunson - Thursday, October 18, 2018 6:58 AMJonathan AC Roberts - Thursday, October 18, 2018 6:23 AMsgmunson - Thursday, October 18, 2018 6:16 AMelea.grig - Tuesday, October 16, 2018 12:04 PMsgmunson - Monday, October 1, 2018 1:05 PMelea.grig - Monday, October 1, 2018 12:41 PMsgmunson - Monday, October 1, 2018 8:09 AMIndex maintenance is typically a DBA role, and should NEVER be relegated to users. Just doesn't sound like a good idea to me at all. Determining which method of dealing with the index is not a decision a user or an app is likely to ever be qualified to do. That's the reason you pay a DBA to do it. The DBA has the knowledge and experience to perform that task. The user most likely does not and could easily do far more harm than good. Really bad idea to even consider making an app and letting users run such things.Thanks for the answer! Actually this is a university project for studying, and basically this program will be used by other students. And maintenance plan does not let me choose all the options I will provide on my script
I fail to see how that matters. If your teachers are going to show you a bad idea, then they are not doing you any favors. Besides, whatever database they have it pointed to will quickly get messed up by all that index maintenance, and quickly lose any real value precisely because it will be in a degraded state. Somebody on the faculty isn't too bright a bulb....
I've explained everything that this project is basically useless but in developing countries universities are like this.
So be it. And "in developing countries universities", if that is how their educators teach SQL, watch out world, will there ever be a glut of even less skilled database folks than there already are.... That might just be why those countries are referred to as "developing"... Let's hope that such foolishness is not reflective of the overall state of IT education, because if it is, ... again, WATCH OUT WORLD...
I don't see the sort of application the OP is supposed to develop as much different from the type of tools Redgate and ApexSQL, etc. develop.
How about the fact that the someone doing the developing is an expert selling to other experts? If that's not a rather sizable difference, then we can stop talking about it right here and now. Any app being developed by a student for that kind of work had better be being done by a Mensa-level genius that actually has people skills, or there will be a HUGE difference in the resulting app.
Well the OP did say "Actually this is a university project for studying" so I took it as a learning exercise. Also, if she gets some scripts from the posters here that would check what maintenance operation should be done to different indexes and includes them within her application then she might come up with a useful application.
True enough but let's review the requirements of the project as stated in the original post.
I have to create a project which should have a GUI because people who gonna use it don't know TSQL. It's purpose it to let people choose options with checkboxes than run a index maintenance script on the server with specified options.
Studying in university is supposed to prepare you for real life. In real life, no DBA worth their salt would allow this. If someone doesn't know T-SQL, how would they ever know enough about when, why, or what the settings for index maintenance should be? No.... this absolutely should not be a program executed by users. Index Maintenance should be automated by the DBA. Having some user run index maintenance willy nilly during peak hours could cause real problems for the system and the other users. Worse yet, giving them options could destroy performance by a bad rebuild/reorganize (especially reorganize) or what have you.
As a bit of a side bar, the OP is getting early training to understand that there are certain things that users (and developers) must not be allowed to do and why and that, as in real life, sometimes the answer is going to not only be "No" but "Hell No!" 😉 Heh... and if the OP really knew T-SQL as they claim, they'd agree. 😛
I think this thread has been unnecessarily hosed by Jeff and sgmunson, there are certainly point and click index maintenance programs out there, this is not out of the realm of possibilities that at some point somebody is going to write code to do this. I think its certainly ok to caution against having a program issue incorrect index rebuild statements, but I suspect this would also be part of the assignment. Heck in all likelihood they're going to be working on the exact same server environments I worked on in college, ie., installations that students can hose and the world will still continue to turn.
So my question to Jeff and sgmunson, did your college not have environments expendable enough that students could learn on? Say, SQL express installations? I know when I worked in college, when a computer goofed up, we reinstalled them and the world didn't end. Was this not the case at the colleges you attended? Heck for that matter, reorgs and rebuilds would not be too prohibitive an operation to issue from dot net for instance.
Just assume that I don't know what your concerns are on this one and clue me in! Heck if you are hiring a fresh graduate as your production DBA without a mentoring program or other work experience, doesn't that make this "gui a t-sql command" a bit moot? Wouldn't you have far larger concerns throwing a rookie out on your production servers?
Hosed on, set on fire, and all the other hell we might need to rain down on it. When you have to worry about being able to get decent IT talent to begin with, the last thing you want is some dipwad professor thinkin' he's smarter than the average bear when it's abundantly clear that he/she is doing a great job of promoting unnecessary risk taking in general and specifically some rather bad ideas about index maintenance. More students with that kind of thinking going on just means more such "rookies" that you have to worry about when they come in the door. Promoting bad ideas is the one thing every professor should NEVER do. Maybe we need the functional equivalent of a Hippocratic Oath for education. Unfortunately, most profs would probably fail that these days.
A college is not and should not be job training. So without knowing more information about what this project is actually about it's hard to say what value there is in it. From a purely academic standpoint creating a user interface to simplify complicated back end tasks has a lot of value. That might not be anything you would deploy to your enterprise server but from an academic standpoint it has value, particularly if it teaches the student that there's more to databases than just staring at SSMS.
Really??? That's one of the many problems the IT community and businesses in general are having with graduates these days... They are woefully unprepared for the real world and have been taught a bunch of bad ideas that just don't work in the real world where money is on the line. If it's not going to be job training, then frankly, I'd very likely stop using graduates at all, and start looking at aptitude in high school students to identify those that could be trained on the job. Enough people start doing that and colleges will start to disappear or get replaced by institutions that don't suffer from that disease. Understand that I'm not saying that a college grad is going to know everything out of the gate, but they probably ought to be able to meet certain minimum standards, and that's something that's actually rare these days.
Yes really, this is just my opinion but the same as an engineering degree isn't job training for being a car mechanic or an economics degree isn't job training to be a stock broker a degree in computers is not job training to be a DBA(or a sys admin, or a game developer, or a web developer etc...). It shouldn't be treated as such and it's as much the fault of people on both the hiring and the student side assuming that it is that results in problems. Maybe there should be technical schools that really are job training but that's not what a university program is for.
So in that context no I can't tell you whether the idea of building a GUI to perform various database tasks has value or not. But it certainly doesn't sound like something that the OP is planning to deploy to your enterprise DB and I'm not going to judge as such.
October 25, 2018 at 11:21 am
ZZartin - Thursday, October 25, 2018 11:16 AMsgmunson - Thursday, October 25, 2018 10:49 AMZZartin - Thursday, October 25, 2018 9:13 AMsgmunson - Wednesday, October 24, 2018 2:46 PMpatrickmcginnis59 10839 - Wednesday, October 24, 2018 1:54 PMJeff Moden - Thursday, October 18, 2018 7:21 AMJonathan AC Roberts - Thursday, October 18, 2018 7:05 AMsgmunson - Thursday, October 18, 2018 6:58 AMJonathan AC Roberts - Thursday, October 18, 2018 6:23 AMsgmunson - Thursday, October 18, 2018 6:16 AMelea.grig - Tuesday, October 16, 2018 12:04 PMsgmunson - Monday, October 1, 2018 1:05 PMelea.grig - Monday, October 1, 2018 12:41 PMsgmunson - Monday, October 1, 2018 8:09 AMIndex maintenance is typically a DBA role, and should NEVER be relegated to users. Just doesn't sound like a good idea to me at all. Determining which method of dealing with the index is not a decision a user or an app is likely to ever be qualified to do. That's the reason you pay a DBA to do it. The DBA has the knowledge and experience to perform that task. The user most likely does not and could easily do far more harm than good. Really bad idea to even consider making an app and letting users run such things.Thanks for the answer! Actually this is a university project for studying, and basically this program will be used by other students. And maintenance plan does not let me choose all the options I will provide on my script
I fail to see how that matters. If your teachers are going to show you a bad idea, then they are not doing you any favors. Besides, whatever database they have it pointed to will quickly get messed up by all that index maintenance, and quickly lose any real value precisely because it will be in a degraded state. Somebody on the faculty isn't too bright a bulb....
I've explained everything that this project is basically useless but in developing countries universities are like this.
So be it. And "in developing countries universities", if that is how their educators teach SQL, watch out world, will there ever be a glut of even less skilled database folks than there already are.... That might just be why those countries are referred to as "developing"... Let's hope that such foolishness is not reflective of the overall state of IT education, because if it is, ... again, WATCH OUT WORLD...
I don't see the sort of application the OP is supposed to develop as much different from the type of tools Redgate and ApexSQL, etc. develop.
How about the fact that the someone doing the developing is an expert selling to other experts? If that's not a rather sizable difference, then we can stop talking about it right here and now. Any app being developed by a student for that kind of work had better be being done by a Mensa-level genius that actually has people skills, or there will be a HUGE difference in the resulting app.
Well the OP did say "Actually this is a university project for studying" so I took it as a learning exercise. Also, if she gets some scripts from the posters here that would check what maintenance operation should be done to different indexes and includes them within her application then she might come up with a useful application.
True enough but let's review the requirements of the project as stated in the original post.
I have to create a project which should have a GUI because people who gonna use it don't know TSQL. It's purpose it to let people choose options with checkboxes than run a index maintenance script on the server with specified options.
Studying in university is supposed to prepare you for real life. In real life, no DBA worth their salt would allow this. If someone doesn't know T-SQL, how would they ever know enough about when, why, or what the settings for index maintenance should be? No.... this absolutely should not be a program executed by users. Index Maintenance should be automated by the DBA. Having some user run index maintenance willy nilly during peak hours could cause real problems for the system and the other users. Worse yet, giving them options could destroy performance by a bad rebuild/reorganize (especially reorganize) or what have you.
As a bit of a side bar, the OP is getting early training to understand that there are certain things that users (and developers) must not be allowed to do and why and that, as in real life, sometimes the answer is going to not only be "No" but "Hell No!" 😉 Heh... and if the OP really knew T-SQL as they claim, they'd agree. 😛
I think this thread has been unnecessarily hosed by Jeff and sgmunson, there are certainly point and click index maintenance programs out there, this is not out of the realm of possibilities that at some point somebody is going to write code to do this. I think its certainly ok to caution against having a program issue incorrect index rebuild statements, but I suspect this would also be part of the assignment. Heck in all likelihood they're going to be working on the exact same server environments I worked on in college, ie., installations that students can hose and the world will still continue to turn.
So my question to Jeff and sgmunson, did your college not have environments expendable enough that students could learn on? Say, SQL express installations? I know when I worked in college, when a computer goofed up, we reinstalled them and the world didn't end. Was this not the case at the colleges you attended? Heck for that matter, reorgs and rebuilds would not be too prohibitive an operation to issue from dot net for instance.
Just assume that I don't know what your concerns are on this one and clue me in! Heck if you are hiring a fresh graduate as your production DBA without a mentoring program or other work experience, doesn't that make this "gui a t-sql command" a bit moot? Wouldn't you have far larger concerns throwing a rookie out on your production servers?
Hosed on, set on fire, and all the other hell we might need to rain down on it. When you have to worry about being able to get decent IT talent to begin with, the last thing you want is some dipwad professor thinkin' he's smarter than the average bear when it's abundantly clear that he/she is doing a great job of promoting unnecessary risk taking in general and specifically some rather bad ideas about index maintenance. More students with that kind of thinking going on just means more such "rookies" that you have to worry about when they come in the door. Promoting bad ideas is the one thing every professor should NEVER do. Maybe we need the functional equivalent of a Hippocratic Oath for education. Unfortunately, most profs would probably fail that these days.
A college is not and should not be job training. So without knowing more information about what this project is actually about it's hard to say what value there is in it. From a purely academic standpoint creating a user interface to simplify complicated back end tasks has a lot of value. That might not be anything you would deploy to your enterprise server but from an academic standpoint it has value, particularly if it teaches the student that there's more to databases than just staring at SSMS.
Really??? That's one of the many problems the IT community and businesses in general are having with graduates these days... They are woefully unprepared for the real world and have been taught a bunch of bad ideas that just don't work in the real world where money is on the line. If it's not going to be job training, then frankly, I'd very likely stop using graduates at all, and start looking at aptitude in high school students to identify those that could be trained on the job. Enough people start doing that and colleges will start to disappear or get replaced by institutions that don't suffer from that disease. Understand that I'm not saying that a college grad is going to know everything out of the gate, but they probably ought to be able to meet certain minimum standards, and that's something that's actually rare these days.
Yes really, this is just my opinion but the same as an engineering degree isn't job training for being a car mechanic or an economics degree isn't job training to be a stock broker a degree in computers is not job training to be a DBA(or a sys admin, or a game developer, or a web developer etc...). It shouldn't be treated as such and it's as much the fault of people on both the hiring and the student side assuming that it is that results in problems. Maybe there should be technical schools that really are job training but that's not what a university program is for.
So in that context no I can't tell you whether the idea of building a GUI to perform various database tasks has value or not. But it certainly doesn't sound like something that the OP is planning to deploy to your enterprise DB and I'm not going to judge as such.
Learning principles. The project may be a bad idea if the intent is to actually try and use it in a real world environment. But the principles learned doing it can be used in a variety of ways that are beneficial. I will agree with that. Perhaps, if the professor were to state that this may not be something you would actually use but is a tool for learning the principles being taught, that I could also get behind.
October 25, 2018 at 12:11 pm
Lynn Pettis - Thursday, October 25, 2018 11:21 AMZZartin - Thursday, October 25, 2018 11:16 AMsgmunson - Thursday, October 25, 2018 10:49 AMZZartin - Thursday, October 25, 2018 9:13 AMsgmunson - Wednesday, October 24, 2018 2:46 PMpatrickmcginnis59 10839 - Wednesday, October 24, 2018 1:54 PMJeff Moden - Thursday, October 18, 2018 7:21 AMJonathan AC Roberts - Thursday, October 18, 2018 7:05 AMsgmunson - Thursday, October 18, 2018 6:58 AMJonathan AC Roberts - Thursday, October 18, 2018 6:23 AMsgmunson - Thursday, October 18, 2018 6:16 AMelea.grig - Tuesday, October 16, 2018 12:04 PMsgmunson - Monday, October 1, 2018 1:05 PMelea.grig - Monday, October 1, 2018 12:41 PMsgmunson - Monday, October 1, 2018 8:09 AMIndex maintenance is typically a DBA role, and should NEVER be relegated to users. Just doesn't sound like a good idea to me at all. Determining which method of dealing with the index is not a decision a user or an app is likely to ever be qualified to do. That's the reason you pay a DBA to do it. The DBA has the knowledge and experience to perform that task. The user most likely does not and could easily do far more harm than good. Really bad idea to even consider making an app and letting users run such things.Thanks for the answer! Actually this is a university project for studying, and basically this program will be used by other students. And maintenance plan does not let me choose all the options I will provide on my script
I fail to see how that matters. If your teachers are going to show you a bad idea, then they are not doing you any favors. Besides, whatever database they have it pointed to will quickly get messed up by all that index maintenance, and quickly lose any real value precisely because it will be in a degraded state. Somebody on the faculty isn't too bright a bulb....
I've explained everything that this project is basically useless but in developing countries universities are like this.
So be it. And "in developing countries universities", if that is how their educators teach SQL, watch out world, will there ever be a glut of even less skilled database folks than there already are.... That might just be why those countries are referred to as "developing"... Let's hope that such foolishness is not reflective of the overall state of IT education, because if it is, ... again, WATCH OUT WORLD...
I don't see the sort of application the OP is supposed to develop as much different from the type of tools Redgate and ApexSQL, etc. develop.
How about the fact that the someone doing the developing is an expert selling to other experts? If that's not a rather sizable difference, then we can stop talking about it right here and now. Any app being developed by a student for that kind of work had better be being done by a Mensa-level genius that actually has people skills, or there will be a HUGE difference in the resulting app.
Well the OP did say "Actually this is a university project for studying" so I took it as a learning exercise. Also, if she gets some scripts from the posters here that would check what maintenance operation should be done to different indexes and includes them within her application then she might come up with a useful application.
True enough but let's review the requirements of the project as stated in the original post.
I have to create a project which should have a GUI because people who gonna use it don't know TSQL. It's purpose it to let people choose options with checkboxes than run a index maintenance script on the server with specified options.
Studying in university is supposed to prepare you for real life. In real life, no DBA worth their salt would allow this. If someone doesn't know T-SQL, how would they ever know enough about when, why, or what the settings for index maintenance should be? No.... this absolutely should not be a program executed by users. Index Maintenance should be automated by the DBA. Having some user run index maintenance willy nilly during peak hours could cause real problems for the system and the other users. Worse yet, giving them options could destroy performance by a bad rebuild/reorganize (especially reorganize) or what have you.
As a bit of a side bar, the OP is getting early training to understand that there are certain things that users (and developers) must not be allowed to do and why and that, as in real life, sometimes the answer is going to not only be "No" but "Hell No!" 😉 Heh... and if the OP really knew T-SQL as they claim, they'd agree. 😛
I think this thread has been unnecessarily hosed by Jeff and sgmunson, there are certainly point and click index maintenance programs out there, this is not out of the realm of possibilities that at some point somebody is going to write code to do this. I think its certainly ok to caution against having a program issue incorrect index rebuild statements, but I suspect this would also be part of the assignment. Heck in all likelihood they're going to be working on the exact same server environments I worked on in college, ie., installations that students can hose and the world will still continue to turn.
So my question to Jeff and sgmunson, did your college not have environments expendable enough that students could learn on? Say, SQL express installations? I know when I worked in college, when a computer goofed up, we reinstalled them and the world didn't end. Was this not the case at the colleges you attended? Heck for that matter, reorgs and rebuilds would not be too prohibitive an operation to issue from dot net for instance.
Just assume that I don't know what your concerns are on this one and clue me in! Heck if you are hiring a fresh graduate as your production DBA without a mentoring program or other work experience, doesn't that make this "gui a t-sql command" a bit moot? Wouldn't you have far larger concerns throwing a rookie out on your production servers?
Hosed on, set on fire, and all the other hell we might need to rain down on it. When you have to worry about being able to get decent IT talent to begin with, the last thing you want is some dipwad professor thinkin' he's smarter than the average bear when it's abundantly clear that he/she is doing a great job of promoting unnecessary risk taking in general and specifically some rather bad ideas about index maintenance. More students with that kind of thinking going on just means more such "rookies" that you have to worry about when they come in the door. Promoting bad ideas is the one thing every professor should NEVER do. Maybe we need the functional equivalent of a Hippocratic Oath for education. Unfortunately, most profs would probably fail that these days.
A college is not and should not be job training. So without knowing more information about what this project is actually about it's hard to say what value there is in it. From a purely academic standpoint creating a user interface to simplify complicated back end tasks has a lot of value. That might not be anything you would deploy to your enterprise server but from an academic standpoint it has value, particularly if it teaches the student that there's more to databases than just staring at SSMS.
Really??? That's one of the many problems the IT community and businesses in general are having with graduates these days... They are woefully unprepared for the real world and have been taught a bunch of bad ideas that just don't work in the real world where money is on the line. If it's not going to be job training, then frankly, I'd very likely stop using graduates at all, and start looking at aptitude in high school students to identify those that could be trained on the job. Enough people start doing that and colleges will start to disappear or get replaced by institutions that don't suffer from that disease. Understand that I'm not saying that a college grad is going to know everything out of the gate, but they probably ought to be able to meet certain minimum standards, and that's something that's actually rare these days.
Yes really, this is just my opinion but the same as an engineering degree isn't job training for being a car mechanic or an economics degree isn't job training to be a stock broker a degree in computers is not job training to be a DBA(or a sys admin, or a game developer, or a web developer etc...). It shouldn't be treated as such and it's as much the fault of people on both the hiring and the student side assuming that it is that results in problems. Maybe there should be technical schools that really are job training but that's not what a university program is for.
So in that context no I can't tell you whether the idea of building a GUI to perform various database tasks has value or not. But it certainly doesn't sound like something that the OP is planning to deploy to your enterprise DB and I'm not going to judge as such.
Learning principles. The project may be a bad idea if the intent is to actually try and use it in a real world environment. But the principles learned doing it can be used in a variety of ways that are beneficial. I will agree with that. Perhaps, if the professor were to state that this may not be something you would actually use but is a tool for learning the principles being taught, that I could also get behind.
People literally do use gui's on SQL server in real world environments. Once you connect SSMS to SQL Server for instance, you can right click yourself right into all the trouble you can ask for AND YOU LITERALLY NEED NO DOT NET PROGRAMMING AT ALL.
October 25, 2018 at 12:15 pm
Jeff Moden - Thursday, October 25, 2018 8:33 AMI totally agree on all counts, Andy. It's why such exercises like the "Fizz Buzz" problem were developed, although that has certainly become seriously public and easy to find. I also agree that the requirement of "people who gonna {sic} use it don't know TSQL" is a driver as to how complete the code should be for the project.
I just don't agree with all of that for this particular case. While I do agree that not everything has to be "real life" to teach thought processes and skills, this one is sending the wrong message, IMHO. (I also believe that it needs to be made absolutely clear that it's not real life so students don't take the wrong ideas forward). Also, consider what could happen if this particular "gypsy moth" gets out into the "wild". "Well, this was developed and tested at the University of {whatever}, so both the concept and the code must be correct". While many with disagree with me, there are a whole lot of people in this world that would blindly copy and use the code.
Also, once this gets out, the argument of having something fresh just because a database changes won't actually be valid anymore anyway. Might as well teach the right way to do it and the real life reasons why.
"people who gonna use it don't know TSQL" = professor speak for "You can't just create an SMSS clone and have the user type in the SQL manually"
And I'd despair for anyone who took a piece of undergrad student coursework and assumed it was a tool for production use. Even if the "problem" was a practical one, the end result is usually barely functional and epically flaky. And that's as true of the 100s of Traffic Light Controller / Washing Machine projects I seemed to get back when I was an undergrad as it is this one.
Forget the end product, think about what a student ends up needing to learn:
1) How to design and code a basic GUI
2) How to make that talk to SQL Server
3) Useful maintenance tasks that need to be performed on a database and the SQL commands for performing them
4) How to interrogate the metadata of a database to learn about it's structure
And there's a good "sliding scale" on most of those steps, e.g. simply being able to list indexes is a good start but a better student can extract information about fragmentation, usage, page allocation etc - all things that can help to differentiate student performance.
October 25, 2018 at 12:22 pm
sgmunson - Thursday, October 25, 2018 10:49 AMReally??? That's one of the many problems the IT community and businesses in general are having with graduates these days... They are woefully unprepared for the real world and have been taught a bunch of bad ideas that just don't work in the real world where money is on the line. If it's not going to be job training, then frankly, I'd very likely stop using graduates at all, and start looking at aptitude in high school students to identify those that could be trained on the job. Enough people start doing that and colleges will start to disappear or get replaced by institutions that don't suffer from that disease. Understand that I'm not saying that a college grad is going to know everything out of the gate, but they probably ought to be able to meet certain minimum standards, and that's something that's actually rare these days.
A good graduate should have learnt how to think about a problem, take a step back and not just dive into writing code as quickly as possible. They aren't (generally) going to be fantastic programmers though, they aren't going to be experienced in large team working, they aren't going to really understand the implications involved in changing an old, quirky, real world system with real world implications for getting things wrong. Some things really do just require experience and a degree in CS isn't a programming course.
October 25, 2018 at 1:33 pm
patrickmcginnis59 10839 - Thursday, October 25, 2018 12:11 PMPeople literally do use gui's on SQL server in real world environments. Once you connect SSMS to SQL Server for instance, you can right click yourself right into all the trouble you can ask for AND YOU LITERALLY NEED NO DOT NET PROGRAMMING AT ALL.
Well, duh. But it isn't a college project. And if if you right click yourself into trouble it is on you not the GUI.
October 25, 2018 at 2:02 pm
Lynn Pettis - Thursday, October 25, 2018 1:33 PMpatrickmcginnis59 10839 - Thursday, October 25, 2018 12:11 PMPeople literally do use gui's on SQL server in real world environments. Once you connect SSMS to SQL Server for instance, you can right click yourself right into all the trouble you can ask for AND YOU LITERALLY NEED NO DOT NET PROGRAMMING AT ALL.
Well, duh. But it isn't a college project. And if if you right click yourself into trouble it is on you not the GUI.
The thread went downhill when the assignment to produce T-SQL reindexing instructions was somehow deemed "harmful" despite the real unlikelyhood of it never seeing production whereas SSMS lets anybody who can drive a mouse generate any variety of indexing requests without any programming and yet this is all good.
I'm declaring that NEITHER of these situations should inherently violate anybody's professional standards EXCEPT in the case where the communities standards are lacking.
October 26, 2018 at 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.
Steve (aka sgmunson) 🙂 🙂 🙂
Rent Servers for Income (picks and shovels strategy)
October 26, 2018 at 7:12 am
sgmunson - Friday, October 26, 2018 6:58 AMI 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!
edit: let me know whats the next worst thing that can happen and I'll tackle that too, I'm in a helpful mood today and on a roll, it took me literally seconds to come up with a solution to sgmunsons problem!
October 26, 2018 at 7:30 am
The OP's project is teaching students how to query a database's metadata, interpret it and use that information to do something potentially useful. As a learning exercise that's fine. Would I buy a SQL Server configuration/maintenance product from the university of whatever? No. Would I give sa access to everyone in my company that has downloaded SSMS? No. If a company allows the installation of a server maintenance product that has no recognised credentials and allows its use on production servers by people who don't understand what it's doing, they deserve everything they get.
Viewing 15 posts - 31 through 45 (of 56 total)
You must be logged in to reply to this topic. Login to reply