|
Posted by Greg D. Moore \(Strider\) on 10/20/05 05:31
"serge" <sergea@nospam.ehmail.com> wrote in message
news:6Cu5f.25444$Ms1.963793@weber.videotron.net...
> Thank you all for the answers.
>
> If I may continue adding more information as I am learning
> by discussing with some of our developers in our shop.
>
> Our developers are using .NET and I know very little .NET.
That's ok, sounds like they know even less about proper programming.
You're at least asking the right questions.
> I am not even an advanced SQL person to know if what
> they want to do is actually good and not bad.
>
> Here's what they are doing. They want to use SPs calling
> a single common View and in the view return ALL the columns all the
> time.
This is VERY bad design. I'm not even sure where to begin.
Basically it sounds like they're taking a database and throwing out any
semblance of Codd's ideas.
> Maybe the biggest table we have has 50 columns maximum.
> If I can summarize their points:
> 1- They are writing our application's SDK and they are standardizing
> all the SPs by using "SELECT * from View1 WHERE a = b"
> 2- They will have our application use these SPs.
> 3- Only if we encounter performance problems they will deal with
> accordingly by adding new SPs. Actually before they even select
> that approach they will tackle the performance problem as a DBA
> issue and not a developer issue.
And the DBA will start by telling them "DON'T DO THIS!"
But as they're already decided that they're going to ignore the advice of
numerous DBAs, why would they listen then?
> That is they will expect the DBAs
> to deal with the performance problem by making changes on the
> tables, indexes etc... before the DBAs get to do anything with the
> SPs' code.
As a DBA I'd break the view. Oops, that means them fixing their code.
> 4- One of their reasons to use this approach is to guarantee that a
> developer will not mess up by adding a new column to the UI and
> forget to add it also to x number of SPs.
But, this actually completely negates that goal.
What happens when they add a new column to one of the base tables?
Do they recompile the view? What do they do now when select * returns the
columsn in a different order than before. All their code has to be
rewritten.
>
> Now they seem confident that their approach is very good and does
> not have any known problems now or down the road.
>
> I am skeptical that the way they're looking at this is as simple as
> they're explain it and don't have any complications down the road. I am
> not an expert in performance so I couldn't even make my argument
> about network traffic that is returning all columns for them to consider
> as a problem.
Network traffic is a definite issue. This won't scale well.
But not only that, they are actually making their maintenace problems far
worse in my opinion.
>
> What do you think?
>
> Thank you
>
>
Navigation:
[Reply to this message]
|