re: "I wish you (DBAs) would stop telling me to change my queries, and just tune the damned database!!". We can't really blame them because we been telling them for two generations that "the optimizer uses the optimal plan". That's a big fat lie of corse. The optimizer does the best it can with obfuscated SQL, defective logical design, inadeqate physical design, limited parsing time, limited information (statistics), and limited capabilities (the optimizer is a continuous work in progress with a very long way to go). It is a myth that the optimizer uses the optimal plan; nobody has studied the success rate of this claim. The myth dates back to the 1980s when the RDBMS salesmen where competing against network technology but it has endured for two generations. Since database administrators themselves believe this myth (as I did for a very long time), they believe that tuning SQL, indexing, partitioning, etc are their responsibility. But I now see that the application developers who develop the application are responsible for all aspects of application performance. They should have access to every sort of performance data, whether it be real-time views into database and application performance; ASH, AWR, and Statspack reports; and 10053 and 10046 traces, and they should understand how the database works (undo, redo, temp, read consistency, etc). If an application developer develops an application without consideration to performance,without an understanding of performance issues, without access to performance data, what are the chances that the developer will develop a well-performing application? But I'm preaching to the choir. Iggy Date: Sat, 31 Jan 2015 10:58:27 -0500 Subject: Re: Re[2]: EM access to developers From: mark.brinsmead@xxxxxxxxx To: kellyn.potvin@xxxxxxxxx CC: dmarc-noreply@xxxxxxxxxxxxx; oracle-l@xxxxxxxxxxxxx I can't fault this reasoning. Sharing information is how things are improved just about anywhere, and certainly in IT. I still maintain, though, that placing a large amount of data into the hands of people who do not understand how to interpret it is a recipe for disaster. The sort of disaster I have seen numerous times. Training and education (along with an actual will to learn) are essential to making this sort of thing successful. Where the resources and the will exist, I am sure this will be wildly successful. Often I have dreamed of a world where developers would analyse wait events and tune their own queries, but in my present reality, I much more frequently hear things like "I wish you (DBAs) would stop telling me to change my queries, and just tune the damned database!!". We all have a common goal -- effective and efficient IT services -- but sometimes key people in the organiztion (DBAs, network administrators, or system administrators, for example) are required to play the role of "guardians" in order to prevent well intentioned people from doing themselves harm. That can be a really tough balancing act, and one that we are rarely thanked for performing. One thing we probably all need is more "DBA" skills (or rather skills that we have traditionally considered to be DBA skills, like query tuning and performance management) on the development side of the IT department. Premature tuning can be a costly mistake, but its usually nowhere near as costly as letting a system go all the way to production before performance and scalability are carefully considered. On Fri, Jan 30, 2015 at 10:29 PM, <kellyn.potvin@xxxxxxxxx> wrote: Mladen, You proceeded to read one out of about every five words I wrote. Sharing knowledge is how we are all more successful. I know a number of developers I was told, "they'll never learn any new tricks..." and yet after learning how to make the most of performance data, were able to produce better code in less time. For those that asked, EM Express is an excellent performance tool to allow Developers to view the resource demands and wait events in database environments, but that is a product fully installed on the user database and no management agent. It doesn't have many of the management features that DBAs liked in it's predecessor, DBConsole, but it was never meant to be. With EM12c the product has far grown past just a DBA management tool- features like database replay, (RUEI), middleware features, cloud management pack features like Database as a Service that let's the DBA automate many of the tedious tasks of provisioning and schema refreshes so they can be free to do more interesting work that provides the business, with a self-service portal for developers, PM's, etc. submitting requests. This is so all of IT can be more successful, not just DBAs. Kyle already knows this, Delphix offers a similar product as DBaaS, freeing up DBAs so they are no longer viewed as roadblocks and lessen resource constraints. This is not your father's Enterprise Manager. Kellyn Sent from myMail for iOS Friday, January 30, 2015, 8:07 PM -0700 from Mladen Gogala <dmarc-noreply@xxxxxxxxxxxxx>: Responses in-line: On 01/30/2015 09:37 PM, kellyn.potvin@xxxxxxxxx wrote: > > > I saw too many IT departments remove DBA roles from their staff > because DBAs were viewed as roadblocks to project success. So have I. The IT departments that have done so have never succeeded, in the long run. > Attend a conference like ODTUG's KSCOPE and you'll hear this story so > often from the developers that it will make you realize that the "us > vs. them" scenario is making DBAs a liability instead of an asset. DBA is the guardian of the production database, the person ultimately responsible for its performance and availability. If the developer wants to put a huge full table scan in an OLTP application and use PQ to resolve it quickly, it's the DBA job to prevent that from happening, because such query would consume resources needed for other programs. I used to work as a production DBA in a companies with several thousands of online users, using web applications. If DBA doesn't exercise a tight control over the database, performance will ultimately become sluggish for everybody. And that is a resume generating event. It's my job to prevent that from happening. > Steven Feuerstein often asks in his sessions, "of the DBAs in here, > how many grant access to performance views in Enterprise Manager?" I'm > often the only one who raises their hand and the common excuse is, "If > we grant them access, then they'll be able to see things" Really. Of course they will be able to see things, but would they be able to interpret them correctly? Performance tuning requires certain training and certain mindset. Developers are rarely trained for performance tuning. From my experience, they don't show too much interest in the performance analysis. You would be surprised to learn how many developers still think in terms of buffer cache hit ratios. > > Well, here's the way I see it. No DBA has any excuse for complaining > about the quality of code released in production if they aren't > willing to provide developers and testing the same access to view > performance data in tools such as Enterprise Manager as they have. Why is that? What would you achieve by giving an access to trace files to the person who doesn't know how to analyze them? What would you achieve by giving access to all those performance monitors to the people who are not sure how to interpret them? Instead of a diagnosis we would get a debate about the meaning of the monitoring data. > With more and more companies moving towards Agile, more companies > using scrum masters/scrum collaboration, it is essential for everyone > to understand the challenges they are up against and truly work as a team. Agile is frequently used incorrectly and becomes the source of the problem. The financial appeal of Agile is cutting the costs of QA. The end result is frequently spewing large quantities of code, without DBA being able to influence it. About 3 years ago, I resigned my DBA position at a company which was doing Agile, precisely because of that. There was an application code in the SYS schema. I am not a big fan of Agile. -- Mladen Gogala Oracle DBA http://mgogala.freehostia.com -- //www.freelists.org/webpage/oracle-l