Hello, I am basically a .NET /SQL Server developer who did some SQL DBA tasks in the past. Recently i was assigned with some oracle stuff, so trying to understand Oracle and its internal functioning at a higher level. I noticed oracle has something called packages where u can call various functions within the package, but what are the advantages of using package rather than having separate function calls . I noticed performance is better as the package is loaded in memory, so later calls to related subprograms in the package require no disk I/O but isn't it same for a stored procedure. Also another disadvantage of having packages is if a change is made in a function the whole package has to be recompiled SQL Server doesn't have the concept of synonyms, i understood the main advantage of having synonyms in Oracle database(as they hide the underlying object's identity) but the main problem i faced while working with oracle was for some objects(sequence/packages) in my database synonyms were missing, so i had to go and create synonyms for each and every object individually. Can we create a synonym for a user at a higher level to have access for all the objects(sequences/packages/any other) Where are the system databases(like Master, MSDB, Model, Temp) located in Oracle?? How does the authentication work at a higher level(just like SQL server uses Master database to validate the user) Are there any Dynamic Management views(DMVs) in oracle to look at any performance issue in queries??