Most Developers Have No Business In The Database World

I have been around superb developers that understand the concept of approaching efficient code that needs to be ran on the database, and will seek help from database developers/DBAs to ensure that is the case. Unfortunately, most do not really understand the need and approach a solution to certain requirement with one thing in mind: effectiveness.

Yes, If business folks request a page that will show up all kinds of fancy data and drop downs, they will do it. It does not matter if the code behind the scenes goes through an expensive loop to render each record one-by-one.

The database is the most difficult and expensive Tier to scale, and code needs to be written in a way so it does the less amount of reads to get the answer to certain request. Developers need to understand that effectiveness needs to be tied with efficiency whenever they are coding.

If they do not understand/do not know how to make efficient code then seek help from a Database Developer/DBA. For example, why code a process that updates one row at a time instead of performing a bulk operation that updates all at once? Didn’t they know that a nested loop can be the worst route instead of hash or merge join to perform an update? Reducing trips to the I/O subsystem really makes a difference.

Now, there are other type of developers that think they know the answer for improving performance to any database without even looking at their code. I have experienced situations where I was told “we need more indexes” or “the database is timing out” when the issue was another heavy process taking long I/O requests and the developer had an uncommitted transaction respectively.

If developers have a problem, work as a team. Ask for help to someone that really knows their business so they can perform a health check. Imagine if a DBA goes and tells a developer how to write their application tier code.

I have not seen any DBA that has morphed onto being a developer. Most cases are the opposite, where developers become DBAs. I have experienced it myself as a former developer (yeah the procedural days) and DBA. If DBAs become developers this will be a perfect world, as the efficiency techniques will be considered while coding application and web tier code.

My final thoughts are, DBA’s own the database; it does not matter what the developer says. If a developer has an idea, then express it as it; do not demand what needs to be done to a database as they are most likely wrong.

And no, creating a single index on each field will not make the database faster. Let the DBA collect statistical facts and go from there.