Singapore: sending out an SOS

The Oracle community rocks! I mentioned previously that the beginning of the OTN APAC tour will take me to Singapore to meet Doug Burns again. Well, Doug took the opportunity to organize a little meetup of the local Singapore Oracle User community for Free Pizza, Free Beer and Free Oracle Presentations next monday, November 3rd. If you are in Singapore or can get there with reasonable effort, I would love to meet you there. See the flyer and rsvp to the email address if you want to come as seats are limited.
The speaker lineup sounds like a european takeover. You will have to listen to me talk about SQL Plan management first only to be rewarded with presentations by Doug Burns (Scotland) on Real Time SQL Monitoring and Morten Egan (Denmark) on Big Data.

on the road again: OTN APAC tour and rest of 2014

I should be packing right now. But as much as I love travelling, I yet have to grow fond of packing. So instead I am updating my blog which I have neglected a bit over the past months. But excuses are plenty and I have been quite busy and it won’t get any better anytime soon. But this is a good kind of busy since I get to present at a bunch of events and meet a lot of good friends around the world. I was lucky enough to be accepted on the OTN APAC tour again. Last year, I was “only” able to attend two stops in New Zealand and Australia but this year I will manage to visit China (twice) and Japan in addition to Australia. The trip starts this week with a client visit after which I will fly straight to Singapore for a long weekend to meet up with Doug Burns. After that these will be the tour stops:

After Beijing, I am leaving directly to Nuremberg for the annual DOAG conference and one more customer meeting the day after before finally heading home for a weekend. But that will not be the last trip of the year, the Oracle Midlands user group is having a “german night” with two of my talks and a stroll over the German christmas market in Birmingham on November 25th. And then finally the last event of the year will be the UKOUG tech14 conference in Liverpool from December 8th to 10th where I will get to co-present with Philippe Fierens.

OpenWorld 2014 activities

In just a few days I will be sitting on a plane to San Francisco for this year’s geek festivities of Oracle OpenWorld and the schedule is already pretty full. This is the second time I am invited to the ACE Director briefing at HQ on Thursday and Friday before the conference. This is not only a great opportunity to hear about all the new and upcoming stuff directly from product managers and executives but also two days of seeing a ton of familiar old and new faces.

Sunday will be super packed and propably has enough content and activities to fill a whole week. I am presenting in an early slot at 9am which means that I have to ditch the Golden Gate bridge run organized by Jeff Smith and the SQLDeveloper gang. ODTUG has asked me to talk about how developers can implement a feature like flashback data archives into their own applications and I am happy to be co-presenting on this with Henning who can cover the developer view much better than me.

By the time we are done with the presentation, RACattack will already be in full swing. You can find the ninjas at the OTN lounge. Join us to install a running 12c RAC cluster right on your laptop or stop by to chat with experts or join the ninja ranks and help out fellow DBAs yourself. There is also a very limited supply of RACattack ninja t-shirts, so get there early. And if you already have a cluster on your laptop, you can still join the OTN kickoff party from 3 to 5 and meet likeminded people, including many ACEs.

The EOUC came up with a unique and fresh format for this conference and host a session of two timeslots called 12 on 12c where a dirty dozen techies from the EMEA region will talk about 12 different topics and each speaker only gets 5 minutes. My tiny slice is second to last and I will talk about what 12c can do for existing applications.

The night will wrap up with the ACE dinner which is always a bittersweet affair. On one hand you get to hang out with so many smart friends, on the other there are always a few you wish were there but are not part of the club (yet). It also means that I will only be able to attend the OPN partner reception towards the very end.

If there is one event that you should not miss and you cannot make up for at any other oracle conference in the world, it is the Swim in the Bay on monday morning. Chet oraclenerd Justice started to make this official two years ago and we have grown ever since. Meet the crazy bunch at aquatic park at 7:30 am and secure your own oraclenerd beach ball!

Following the success of RACattack at previous conferences, this year you can experience an attack of the Attacks. The OTN lounge will also be hosting RepAttack and CloneAttack where you can talk to experts and gain hands-on experience with replication and cloning on your own laptop.

I have always loved the OTN night parties and was a bit sad that there was none last year. Well, it is back on. Get your best geek on and join the party on monday night.

The now traditional OpenWorld bloggers meetup is going to happen once more on Wednesday evening, a perfect opportunity to meet fellow bloggers, authors and tweeps before the big party with Aerosmith on treasure island. Check out this video from last years event.

Navigating the session catalog has been a big challenge these past years because of the sheer volume and finding the content that you were interested in was a bit like chasing needles in a haystack. This year, there are focusOn … documents that feature a best-of list of sessions per area of interest. Check it out! Especially this list of all 149 sessions by Oracle ACEs.

And then there is also the Oak Table World right next door with even deeper technical sessions by some of the smartest people in the Oracle technical community. It’s free, it is only 1 minute from moscone and you should not miss it.

SPM and schema virtualization

I received a lot of feedback and a fair number of good questions on my session on SQL Plan Management for the Virtual Technology Summit. Some of the questions deserved additional research and a more detailed answer than I could give in the live Q&A and I hope I can add most if not all of these issues to this blog eventually. A lot of you have also asked for the slides and i uploaded the pdf here in case you have trouble pulling them from the event site. Here is the first one:

Why do you say you need to have exactly the same objects in all schemas when doing schema level virtualization?

SPM prerequesite slideI made that point without much of an explanation. So here is how I discovered this issue: We host a number of different schemas of basically the same application in the same database in different schemas. Most of the tables will be the same but one schema may have more data than another and since we did not care about this very much when we first started this, not all tables have the same indexes. Most of them have indexes on the same columns but they may not have the same name in all schemas. So the “same” index may be called differently in different schemas. This happens easily if you don’t name your indexes, especially the ones created implicitly for primary keys or unique constraints.
SPM will be valid across all schemas. So if you collect and accept a baseline in one schema and another user issues the same SQL against their tables, they will use the baselines aswell. And this can be a good or a bad thing depending on how you see this. If you want to quarantee that SQL will use the same plans against all your schemas, this is something you want. BUT this breaks when a baseline uses an index that has a different name in a different schema. The plan hash value will be different in that case and the plan that the optimizer chose will look different from the one that is stored in the baseline. So it will fall back to one of the baseline plans that is acutally reproducable.

If my words do not make sense, here is an example. The first steps are exactly the same as described in the HOL post I wrote for OTN, except for the last step. Do not delete the baseline with the full scan, and this will leave us in a state where we have two accepted baselines for the example query. One uses a full scan, the other one uses an index range scan on the index called ‘T_IDX’. Now create another user/schema:

PDB1@ORCL> create user pmuser2 identified by oracle;

User created.

PDB1@ORCL> grant dba to pmuser2;

Grant succeeded.

Connect with that user and create a table and an index. We will give it the same name as in the original schema and observe that we will use the baseline SQL when querying the table.

[oracle@localhost ~]$ sqlplus pmuser2/oracle

SQL*Plus: Release Production on Thu Jul 10 12:24:44 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

PDB1@ORCL> create table t as select * from dba_objects;

Table created.

PDB1@ORCL> create index t_idx on t (owner);

Index created.

PDB1@ORCL> set autotrace on
PDB1@ORCL> variable var42 varchar2(42);
PDB1@ORCL> exec :var42 := 'PMUSER';

PL/SQL procedure successfully completed.

PDB1@ORCL> select count(*) from t where owner= :var42;


Execution Plan
Plan hash value: 293504097

| Id  | Operation	  | Name  | Rows  | Bytes | Cost (%CPU)| Time	  |
|   0 | SELECT STATEMENT  |	  |	1 |	6 |	8   (0)| 00:00:01 |
|   1 |  SORT AGGREGATE   |	  |	1 |	6 |	       |	  |
|*  2 |   INDEX RANGE SCAN| T_IDX |  3039 | 18234 |	8   (0)| 00:00:01 |

Predicate Information (identified by operation id):

   2 - access("OWNER"=:VAR42)

   - SQL plan baseline "SQL_PLAN_arrxanznkdmsaded8ae2f" used for this statement

So now let’s drop that index, recreate it with a different name and see what happens:

PDB1@ORCL> drop index t_idx;

Index dropped.

PDB1@ORCL> create index other_t_idx on t (owner);

Index created.

PDB1@ORCL> select count(*) from t where owner= :var42;


Execution Plan
Plan hash value: 2966233522

| Id  | Operation	   | Name | Rows  | Bytes | Cost (%CPU)| Time	  |
|   0 | SELECT STATEMENT   |	  |	1 |	6 |   427   (1)| 00:00:01 |
|   1 |  SORT AGGREGATE    |	  |	1 |	6 |	       |	  |
|*  2 |   TABLE ACCESS FULL| T	  |  3039 | 18234 |   427   (1)| 00:00:01 |

Predicate Information (identified by operation id):

   2 - filter("OWNER"=:VAR42)

   - SQL plan baseline "SQL_PLAN_arrxanznkdmsa3fdbb376" used for this statement

So what happened here? The optimizer _wanted_ to use a plan that was doing a range scan on the new index other_t_idx but the hash value of that plan did not match with the ones in the accepted baselines. It then had to fall back to one of the accepted baselines of which only one was actually reproducable because the index T_IDX does not exist in this schema. The new plan with the range scan on OTHER_T_IDX was added as a new baseline but has a status of unaccapted. You should be aware of this. Of course you can evolve the new baseline, but before we try that I want to show you another little oddity. Let’s drop the baseline with the full scan because we really don’t want to use it anyway, then re-run the query and see what happens:

PDB1@ORCL> declare 
 drop_result pls_integer;
 sql_handle => 'SQL_abdfaaa7e926cf0a',  
 plan_name => 'SQL_PLAN_arrxanznkdmsa3fdbb376'); 

PL/SQL procedure successfully completed.

PDB1@ORCL> select count(*) from t where owner= :var42;


Execution Plan
Plan hash value: 2948344740

| Id  | Operation	  | Name	| Rows	| Bytes | Cost (%CPU)| Time    |
|   0 | SELECT STATEMENT  |		|     1 |     6 |     8   (0)| 00:00:01|
|   1 |  SORT AGGREGATE   |		|     1 |     6 |	     |         |
|*  2 |   INDEX RANGE SCAN| OTHER_T_IDX |  3039 | 18234 |     8   (0)| 00:00:01|

Predicate Information (identified by operation id):

   2 - access("OWNER"=:VAR42)

So in this case, no baseline was used at all even though there is an accepted baseline for this SQL. But since it cannot be used, the system falls back to not using a baseline at all.

PDB1@ORCL> set serveroutput on
declare evolve_out CLOB;
evolve_out := DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE ( SQL_HANDLE => 'SQL_abdfaaa7e926cf0a', COMMIT => 'YES' ); 


 Task Information:			       

 Task Name	      : TASK_81
 Task Owner	      : PMUSER2 	    
 Execution Name       : EXEC_191
 Execution Type       : SPM EVOLVE	    
 Scope		      : COMPREHENSIVE	    
 Status 	      : COMPLETED	    
 Started              : 07/10/2014 12:36:44 
 Finished	      : 07/10/2014 12:36:45 
 Last Updated         : 07/10/2014 12:36:45 
 Global Time Limit    : 2147483646
 Per-Plan Time Limit  : UNUSED		    
 Number of Errors     : 0



  Number of plans processed  : 1  
  Number of findings         : 2  
  Number of recommendations  : 1  
  Number of errors	     : 0



 Object ID	    : 2
 Test Plan Name     : SQL_PLAN_arrxanznkdmsae8cba257
 Base Plan Name     : Cost-based plan
 SQL Handle	    : SQL_abdfaaa7e926cf0a
 Parsing Schema     : PMUSER2
 Test Plan Creator  : PMUSER2
 SQL Text	    : select count(*) from t where owner= :var42

Bind Variables:
 1  -  (VARCHAR2(128)):  PMUSER


Findings (2):
 1. None of the accepted plans were reproducible.				    
 2. The plan was automatically accepted.

 Consider accepting the plan.


So since the baseline plan was not reproducible in this context (schema pmuser2), the new one was accepted automatically.

If this all sounds confusing, remember two things:
– If you have tables with the same names in different schemas, SPM will be used across those schemas for the same SQL
– If you want to save yourself from some extra SPM complexity, just name all indexes across the schemas the same

OTN MENA tour final stop: Dubai, UAE

After a very relaxed day I followed the others virtually on their travel to Dubai. All but Osama were too tired to go out and opted for a quit night and early sleep. So after a quick run that left my soaked in sweat I met Osama for some catching up since I have not seen him since UKOUG Tech 13 back in december.

Dubai Marina at nightDubai is a very exciting destination. Two million people from all over the world are living in a rather compact space that has erupted from the desert in the past few decades. It has become the business hub of the golf region with many major banks and services companies occupying a stunning set of skyscrapers, all of which are overshadowed by the majestic Burj Khalifa, the world’s tallest building at 830 meters.

The event location was chosen wisely by Vishnu Vinnakota of prosec in the sizzling marina district at a very nice hotel which featured the largest projector screen I have had the honor of presenting on. There were no complaints of a too small font for some of the code examples this time.

We started with the proven Exadata performance expert panel which we have done at most of the stops before and all that practice made perfect, we even spiced things up a bit by letting someone else present “their” slides.

OTN MENA tour Dubai teamIt was the third time I saw Ed present his introduction to Big Data on this tour but he is so much fun to watch and the presentation flows so nicely that it still did not get boring for me.

Mike talked about IO performance and started with a review of how physical disc drives work and why they are limited to a maximum of 200-300 IOPS each. He then showed how this number can be increased by using RAID technology, compared this to modern flash based devices and showed ways how to benchmark and monitor the IO system. Great basic content that should be known by all DBAs.

speaking in dubaiAfter a lunch that had me go for seconds three times, I was scheduled to talk about flashback data archives. But I also had requests from the attendees to talk about SQL plan management and 12c new features. All three are full 45 to 60 minute presentations but I managed to get to the gist of each of them in about 15 minutes and was able to deliver all three topics.

Osama discussed high availability options for fusion middleware from self-written scripts to full blown cluster and provided many tricks to manage those things in the stack above the database that we dbas so often neglect and forget about.

I was excited to meet fellow ACE Director Joel Perez for the first time and he did not disappoint when he presented about how to upgrade from 11g single instance to 12c RAC with minimal downtime. In addition to this specific project there was also a lot of information about backup, restore and replication.

The final words once again belonged to Jim who wrapped it up in style while the rest of us once again admired his eloquence in speaking and presenting. Unfortunately, he had to cut his presentation short because we (the others) overran a bit on time which is a shame because I was very much looking forward to his examples on histograms. I saw him prepare the slides on the plane to Cairo and thought it was quite hilarious. I guess this will now premiere with another audience at another conference (and I will not give away what it is).

Overall, the tour was a huge success, especially given the fact that this was the first of its kind and these were all the first time we had done anything in these cities and did not really know what to expect. A big thank you to Tariq and Syed who masterminded this tour, the local event organizers who did their very best to provide the forum for us to present and reach out to the local users and of course to the Oracle Technology Network and ACE program for being the sponsor and enabling us do to this.

I very much hope that we can establish the tour as a solid event in the region and keep improving it year by year. I know that I and all of the other speakers would be proud and more than happy to be back again.

OTN MENA tour Stop 2: Saudi Arabia

As I am writing this I am just slowing down after very intense 36 hours in Riyadh, still in awe and slowly processing all the impressions I made here. We arrived at King Khalid airport at 9pm on Wednesday night but hat to test both our own and our generous hosts’ patience as we waited 4 hours in the immigration line. I was expecting that with a pre-approved visa (that process alone was another huge effort) this would be rather quick. Ironically, they are in the midst of upgrading their biometric database and are not able to run at full capacity right now.

OTN MENA tour 2014 RiyadhWith the late arrival we had to skip all dinner plans and were happy to fall into our hotel beds and sleep at least 4 hours until it was time again to get up for the event which was held in the conference center of a very nice hotel. And Esolutions, the local sponsor, together with the ARABOUG went out of their way and made a huge effort in organizing this. They had signage, a very nice stage, incredible arabic lunch and they used the intermissions to award to distinguished guests and raffle off a number of very nice prices among the more than 100 Oracle DBAs and professionals that showed up for this first of it’s kind event in Saudi Arabia. One of the VIPs that was awarded an award shared how he started his IT career as a junior DBA with one of Mike’s books. There was even a professional photographer and a TV crew to document the day.

OTN MENA tour Riyadh - Jim speakingAll presentations were spot-on and well received by a crowd that was hungry to expand their knowledge. HA and RAC seemed to be the topics of the biggest interest and we managed to cover a lot of ground, starting with the Exadata Tuning Expert Panel led by Tariq, my RAC management session, Mike, Inam and Jim talking about performance tuning and Syed and Ed rounding it all out with sessions on security and big data. In addition, I also enjoyed very much to chat with a great number of attendees and hopefully answered a number of very specific questions. One of the biggest pieces of advice I hope I could give is that if they enjoyed the event it is really up to the local oracle community to organize themselves and meet for informal roundtable-type events and share their knowledge rather than hoping and waiting for an OTN tour stop every year. With Syed and Inam Ullah Bukhari they already have at least two great local speakers there and I am sure there are more.

OTN MENA tour awardEverybody was very polite and I am sure I shook hands, said thanks and had my picture taken with every single attendee at least twice during the day. After many heartly good-byes it was time for us to go on a brief sightseeing tour of Riyadh. While it may have been brief, we still managed to see so very much of this wonderful city that is by no means a common tourist destination due to their very strict visa policies. Our hosts took us to the national museum Which showcased the history of the region from the creation of the universe to today and included impressive models of the holy mosques in Mecca and Medinah including the drape that covers the Kaaba. The museum was structured very concisely and was so huge that it was really a shame that we had to rush through it.

OTN MENA tour RiyadhThis was followed by a walk around of a nice park and what looked like the rebuild of old Riyadh with small alleys, open areas surrounded by palm trees and nicely decorated houses. We then had the chance to visit Kingdom Centre, Saudi Arabia’s highest building (until the Kingdom Tower in Jeddah is finished which should become the worlds tallest building), and zipped up the the 100th floor where you can enjoy magnificent views from a bridge that spans the two arches that give the tower a very distinct and unique appearance.

The night ended with a very generous dinner by the local sponsors and while the food satisfied the hunger, I wished the conversations would have gone on for another few days. But there was barely enough time for a very short two hour nap before at least Jim and I had to head out to the airport again which gave us the opportunity to see the sunrise. Tired but still excited, my mind was so preoccupied that I left my cell phone in the taxi but was able to get the driver’s number from the hotel and he turned around to return it. Just calling my own number did not even cross my mind until a few hours later.

The event in Jeddah was only scheduled for half a day, so I would not speak there and proceeded directly to Dubai. I was actually thankful for one day of rest on the beach. But I still followed the Jeddah event over the live stream and pictures on social media and it looks like that one was another success. Now I am waiting for the others including Joel and Osama to arrive in Dubai for the final event of the tour.

OTN MENA Tour Stop 1: Tunisia

I landed in Tunis after a rather uneventful flight via Istanbul on Sunday afternoon and met up with Tariq Farooq, Mike Ault and Jim Czuprynski at the hotel where we enjoyed magnificent views of the bays surrounding the suburb of La Marsa. Our local guide and ARABOUG’s business development manager in this area Hussem who showed us around and explained the origins and workings of the ARABOUG to us. This user group spans the whole region of the middle east and northern africa and represents about 300.000 professionals.

OTN MENA tour BizerteThe actual events were being hosted by two universities in cities other than the capital of Tunis. On Monday, we were picked up in the wee hours and driven to Bizerte in the north. We set up camp in the auditorium of their technical university and quickly began our presentations with an introduction of the speakers, OTN and the ARABOUG. In addition to local Oracle professionals there were many interested students in the audience, about 150 people in total. What surprised us all was the amount of women in the audience, among 60-70% of the students were skilled and highly enthusiastic females. They were actually very surprised when we we told them that at our technical universities 10% is already considered very high.

OTN MENA tour speakersPresentations were very well received and for me it was an extra pleasure to listen to the other speakers and their expertise. Mike started with a keynote overview of his 24 years of working with Oracle technology, Tariq gave a great overview of Exadata, its features and special things to consider while Jim captured the audience with tidbits of technical details, general advice and motivational pieces.

Mohamed Houri connected with us remotely from France and did a presentation on adaptive cursor sharing in french, the native language spoken in Tunisia along with arabic.

OTN MENA tour BejaEd Roske completed our small group on Tuesday when he came to Beja directly from the airport and despite the long-haul flying and jetlag just jumped up on stage and gave a great and lively definition, explanation and introduction to what Big Data really is and what type of questions can better be answered by non-relational database systems.

We enjoyed great hospitality by the local event organizers who went out of their way to shuttle us around between the different venues, taking in sites from beautiful beaches to gigantic ruins of the roman empire, feeding us and providing a base for many great conversations.

As much as we enjoyed Tunisua, the crew is also very much looking forward to the next two stops in Saudi Arabia, where we will meet Syed and finally Dubai where Joel Perez and Osama Mustafa will already be waiting for us.

PS: I am writing this at the airport in Cairo and my phone still has not seen an update for their DST change and is hence showing the wrong time. It took five smart IT guys and a lot of googling to determine that our next flight will be 2:30 instead of 1:30 as shown by our calendars and a number of websites.

egypt creates timezone chaos by re-introducing DST with one week notice

I have a presentation that I give from time to time with the title “Tackling Time Troubles – how Oracle handles datetime data” and in less than 10 days I will embark on a tour where I will deliver this presentation. One of the issues I talk about is how different nations handle daylight saving time changes and how much of a pain this can be. I did not anticipate this one though. As part of the MENA tour I will be flying with egypt air from Tunis through Cairo to Riyadh. Today, I received a very strange message from egyptair. IMG_1253

This has to do with the egyptians deciding on very short notice (1 week) that they want to re-introduce daylight saving time. And because they are already behind the date when everybody else in Europe advances their clocks, they chose _tomorrow_ (May 16th) to do so. This is potentially bad for a couple of reasons:

  • it is very confusing if you need to coordinate meetings or phone calls across countries. The rest of the world would really like to know what time it is wherever you live
  • computers that calculate these things have to be reprogrammed by people like me. This usually takes a while. My iPhone is giving me the wrong time. Oracle has a MOS note (1670704.1) about this but the latest timezone file patch does not yet include this change.
  • schedules (for trains and flights) get all messed up during the switches. In the switch forward, trains will appear to arrive an hour late and on the switch back, they would really need two trains during the night (because there is one hour that “happens twice”. Or in the case of the Deutsche Bahn they simply stop all their trains in a station for one hour during the night. Either way it is madness.
  • Flights to egypt from other countries will appear to arrive an hour later than what is written on the schedule

Egyptair is taking care of the latter one by simply delaying all departures by one hour:

The customers who issued their tickets before 23:59 Thursday 15th of May 2014:
The departure time will be one hour later than the time stated on the tickets.

While I do appreciate that I get to keep my comfy 1:45 of connection time, I also see this has a huge potential for chaos. If I look up the flight schedule on their website, both arrival and departure time are updated. But sites like flighttracker still show the old times, even for tomorrow. Also, if everybody in egypt simply advances their schedules by one hour, the effect of the DST change are nullified.

On top of all this, they seem to also have the idea of “suspending” DST during the islamic month of Ramadan. This would be between June 28th and July 27th in 2014. The IANA _guesses_ that these switches would actually happen on the 29th of June and 29th of July at midnight but no official word seems to exist.

Governments of this world: Would you please decide things with more than 7 days of notice? Preferrably 6 months or more so that we can comfortably and properly implement your ideas into the already very confusing hacks that keep track of all this timezone weirdness.

quick tip: build debian package from sqldeveloper rpm

Oracle has made the installation of sqldeveloper easy on distributions that use rpm by providing a nice package. But we are using ubuntu for our development workstations at the office and thus need a debian .deb package. I do not want to use the ‘alien’ workaround and we already build or rebuild some of our packages for our own repository anyway. This can easily be built with the help of fpm like this after downloading the Linux rpm from OTN:

fpm --no-auto-depends -d 'oracle-jdk-7' -s rpm -t deb -m "portrix Systems GmbH " /var/tmp/sqldeveloper-

Upload this to your local repository and you can then install this with apt-get or simply show the details like this.

portrix@vm-04:~$ sudo apt-cache show sqldeveloper
Package: sqldeveloper
Architecture: all
Maintainer: portrix Systems GmbH 
Installed-Size: 305622
Depends: oracle-jdk-7
Provides: sqldeveloper
Filename: pool/main/sqldeveloper_4.
Size: 246647402
MD5sum: 1a7127bde4521e0a5bc7160ee3f891a0
SHA1: 55f12afe5075bcbd9223f61fe8f183fd0570c295
SHA256: aeb07cede84298c7c8a9bf8caf0c42ccf560840a857415be81bb4189c8939ba2
Section: extra
Priority: Priority
Description: Oracle SQL Developer is a new, free graphical tool that enhances productivity
             and simplifies database development tasks. With SQL Developer, you can browse database objects, 
             run SQL statements and SQL scripts, and edit and debug PL/SQL statements. 
             You can also run any number of provided reports, as well as create and save your own.
License: Oracle