Thursday, August 17, 2006

DBA vs. Developer

A few days ago there was a short thread on asktom about the role of the developer and the dba. This is a topic that is usually discussed. Some think dbas are a blockage to stop the developers doing their work, some think dba is the king.

I have seen some dbas who think they do not need to know about plsql, analytics and other things related to development. I have seen many developers who are not aware of anything called analytics, tkprof, plsql features like bulk collect, etc. I think both are dangerous.

I have started my career as a developer writing code on Oracle Forms and plsql. I currently work as a production dba. This does not involve routine administration like backups, upgrades, installations, tablespace management, etc. only.  It involves sql tuning, reviewing the developers' code for performance improvements, suggesting physical schema design changes. Usually developers come to me to ask about a poorly performing sql or plsql procedure, about how to do something efficiently in plsql, about how to design the schemas. I can say I work as an internal consultant to developers.

Actually what I like in being this kind of a dba is the "working with developers" part, not the "production dba" part. I like to learn and study database features, sql and plsql tuning. Fortunately routine administration tasks are becoming easier and easier as new versions bring new features that are helpful to dbas and they take less amount of time in each new version.

Tom has a nice classification for dbas and developers. I consider myself as a dba/developer according to that. To be a successful dba you should know about development also, to be a successful developer you should know what the database features are, what it offers to you to do your job in an efficient way.

I cannot understand a dba who thinks that developers are a waste of time, who does not like to work with developers, who throws the code to the developers and order them to correct and tune it. As far as I have seen it is true that most developers do not know about cbo, analytics, tkprof, stuff they should know about, but the dba must take responsibility on this and try to make the developer aware of these and help them use all the features of the database appropriately. Databases are there to store data and data is there to be made available to users through programs made by developers. So it is a team work including dbas and developers to make the database useful to users.


  1. hi brother,
    nice blog to follow. i like the caption u choosed. BTW, I was asked by Application Team to estimate the storage requirements for holding addtional 500K records for 11 tables. also the performance impact on the existing system. Until that point of time I never thougt Capacity Planning is such complicated thing and deserves so much expereince. Yet to complete the report. My questions are :

    What is the best way of estimating the storage requirements for new tables.

    How to estimate the Transaction Load?

    How to estimate the Performance Impact?

    Is there any scale which guides us that this much Memory can support this many transactions per hour?


  2. To estimate the storage requirement for a table you try to find out how many rows are expected in that table, look at the datatypes of the columns and calculate the size based on that.

    If this is not a new table then you can query the AVG_ROW_LEN column from DBA_TABLES to see the average row size for the table if you have gathered statistics.

    If you are using the cost based optimizer than it is possible that query plans will change when number of rows changes. You must make these changes on your test system and test your application in order to see the effect of the data change.

  3. This is one of the best blogs I had ever read...

    - Vamsi chikkam

  4. This comment has been removed by a blog administrator.

  5. I agree with you that DBA should know programming stuff and vise versa .. pls read my 1st blog in the same issue but very simple.

  6. Hi currently i am working as a Application developer in php and perl and i want to switch the job to Oracle filed so please suggest me which one is better field Oracle DBA or Oracle Application Developer for 10g.And what is the role of Oracle DBA and what is the role of Oracle Application developer in an organization.

  7. This comment has been removed by a blog administrator.

  8. Please let me know your email ad...i need help from you.....