Any notes/ tips to help me prepare for the exam?

Body: 

Some tips for the various exams:

1Z0-001 - Into to Oracle: SQL and PL/SQL

  • Precision: datatype number(p,s) vs number
  • An expr. with NULL always evaluates to NULL, except ||, which treats NULL as ''
  • Comparison to NULL is always FALSE
  • All functions, except COUNT(*), ignores NULL values
  • NULLS are displayed last with ORDERED BY in Oracle7
  • From Oracle 7.0.16 you can order on col alias or position.
  • Logical evaluation: TRUE takes precedence with OR, FALSE with AND, eg "TRUE OR NULL" is TRUE.
  • There are a lot of questions about GROUP BY/ HAVING...
  • Use WHERE to exclude rows, HAVING to exclude groups from a query
  • Know when a cartesian product will be formed. You need a min of N-1 conditions when you join N tables.
  • Know the difference between an equi (=), self (must use tab aliases), outer (+) and non-equi (IN, etc) join
  • You can only have a subquery in a FROM/ WHERE/ HAVING clause of a SELECT statement
  • Sub-queries and VIEWS cannot contain ORDER BY
  • A literal is any char/num/expr in a SELECT LIST that's not a col or col alias
  • MIN and MAX are the only functions that can operate on any datatype
  • PRIMARY KEY and UNIQUE constraints will implicitly create INDEXES
  • CONSTRAINT_TYPE col in USER_CONSTRAINTS shows only a "P" for primary keys
  • There are a lot of questions like: "Which line will return an error?". Look for names starting with numbers, invalid constraints, etc.
  • Cursors, how to use %type and %rowtype
  • Views are stored as select statements in the data dictionary
  • Questions on Sequence Generator - Creation & Pseudocolumns (currval & nextval)
  • Data Dictionary Views - to get constraints attached to a column & columns that make a constraint
  • Exception Handlers - User defined are raised only in the execution section. Pre-defined can be raised in declaration/execution section
  • "For Loop Cursors" - Cursor Open/Fetch/Close is handled implicitly.
  • Three types of Data Dictionary Views: USER_views, ALL_views, DBA_views
  • If a table alias is used, you must used it in the select clause, so "SELECT deptno.deptno FROM dept a" is wrong!!!
  • Check user_cons_columns for constraint columns

1Z0-003 - Oracle7 Database Administration

  • INSTANCE=SGA + background processed (not server processes); INSTANCE will open a DATABASE on disk
  • SGA=System Global Area/ PGA=Program Global Area
  • Oracle server creates PGA as writeable and non-shared/ SGA as shared
  • Know what background processes are doing in detail, DBWR, SMON, PMON, LGWR, etc.
  • SMON coalesces adjacent free extents into larger extent
  • Server processes executes SQL; Main phases are PARSE (setup parse tree=most effective search path), EXECUTE (apply parse tree) and FETCH (get rows)
  • Server configurations: single-task, two-task (dedicated server), MTS (shared server)
  • Shared Server: SQL*Net2/8 required, one requestQ for system, responseQ per dispatcher
  • Dedicated Server: use for batch, connect SYS AS SYSDBA, server manager
  • With shared server session data and cursor state moves to SGA, stack space remains in PGA
  • No quota means segments cannot grow or be created, only object owner needs quotas.
  • By default a user has no access to any TS
  • If quota=0 NO ACCESS; -1=UNLIMITED (see view sys.dba_ts_quotas)
  • Clusters pre-allocate space/ 2 types: index clusters (stored together for faster join performance) and hush clusters
  • I've got about 3 questions on index clusters and none about hush clusters
  • SysPrivs and roles use WITH ADMIN OPTION, use WITH GRANT OPTION for object privs.
  • Revoke a GRANT...WITH ADMIN OPTION is not hierarchical and will not cascade, unlike WITH GRANT OPTION
  • Know how to calculate the size of the N nd extend. INITIAL, NEXT, NEXT := NEXT*(1+PCTINCREASE/100)...
  • PCTUSED is not valid for indexes; OPTIMAL is only valid for rollsegs; PCTINCREASE for rollsegs is 0 (cannot be set)
  • There are at least 3 questions about what will happen when PCTFREE/PCTUSED are increased/decreased
  • MAXTRANS applies to all blocks; INITRANS to new blocks only (23 bytes per freelist entry)
  • Run orapwd utility before setting REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE|SHARED; Grant OSDBA/OSOPER to users; Check V$PWFILE_USERS
  • Form V7.2: Set ORA_NLS=?/ocommon/nls/admin/data; SELECT * FROM V$NLS_VALID_VALUES; SELECT * FROM V$NLS_PARAMETERS
  • DB_NAME is the only mandatory parm; DB_BLOCK_SIZE cannot change after db creation
  • Defaults: DB_BLOCK_SIZE=2K/ DB_BLOCK_BUFFERS=60/ SHARED_POOL_SIZE=3,500,000 bytes
  • Must have at least one control file and 2 log groups
  • Read consistency: readers do not block writers and writers do not block readers
  • AUDIT_TRAIL=DB uses SYS.AUD$ table, view via DBA_AUDIT_TRAIL
  • Use AUDIT SELECT for sequences
  • You need to set RESOURCE_LIMIT=TRUE for PROFILES (resource checking)
  • One can DROP from a READ ONLY ts

1Z0-005 - Oracle7 Performance Tuning

  • Tuning process is ITERATIVE and PROGRESSIVE
  • Many inserts/updates with OLTP, many table scans with DSS
  • By default the SYSTEM tablespace will be used for sorts, CHANGE IT!!!
  • SEP=Sort Extent Pool is in SGA, Sorts are done in user memory except with MTS it's in UGA
  • Use DBMS_APPLICATION_INFO to register and track modules/ created with dbmsutil.sql/ See V$SQLAREA and V$SESSION
  • OPTIMIZER_MODE is for instance, OPTIMIZER_GOAL is for session
  • RULE is based on rank/ COST is based on lowest relative cost/ COOSE goes to COST if stats exists
  • TKPROF: Logical reads = QUERY (logical reads in consistent mode) + CURRENT (logical reads in current mode)
  • V$SYSSTAT: Logical reads = consistent gets + db block gets
  • Tune table scans: DB_FILE_MULTIBLOCK_READ_COUNT=/ CACHE_SIZE_THRESHOLD=
  • Dict. row cache: V$ROWCACHE - getmisses/gets must be < 15%
  • Library cache: V$LIBRARYCACHE - pins/reloads <= 1% and GETHITRATIO > 0.90
  • DB Block cache: V$BH/V$CACHE - logical_reads/ (logical_reads + physical reads) must be > 80% (90% with RAW)
  • V$CACHE is useful for Oracle Parallel Server
  • Set DB_BLOCK_LRU_LATCHES if you have misses in V$LATCH
  • If Redo log space requests <>0, increase LOG_BUFFER= with 5%
  • Latches can be WILLING-TO-WAIT (eg redo allocation) or NOWAIT (eg redo copy)
  • Oracle maintains all locks as ENQUEUES/ Deadlocks are resolved at statement level
  • Lock modes: RX=DML/ TM=table/ TX=transaction and rollseg/ RS=SELECT... FOR UPDATE/ SRX=DML and no SELECT FOR UPDATE/ UL=user lock/ S=prevents any DML
  • Index foreign key column on child table to prevent SHARE lock during DML on parent!!!
  • Use SID and Serial# in V$SESSION to kill a session
  • Impact of reducing DB_BLOCK_BUFFERS: Set DB_BLOCK_LRU_STATISTICS= and query X$KCBCBH
  • Impact if increasing DB_BLOCK_BUFFERS: Set DB_BLOCK_EXTENDED_LRU_STATISTICS= and query X$KCBRBH
  • To keep sorts in memory, increase SORT_AREA_SIZE
  • From 7.2: SORT_DIRECT_WRITES=TRUE bypasses the buffer cache/ use its own memory buffers
  • SORT_WRITE_BUFFERS (16k - 32k) * SORT_WRITE_BUFFER_SIZE (2-8) + SORT_AREA_SIZE
  • Any MTS parameter may be wrong, but if MTS_SERVICE=SID, you will get a dedicated server connection if shared cannot be established

1Z0-004 - Backup and recovery

  • Backups types: Image copies (operating system backups) or logical backups (imp/ exp)
  • Files to backup: select * from v$controlfile/v$datafile/v$logfile, init.ora and password file
  • NOARCHIVELOG mode is default, you need to switch to ARCHIVELOG to do online-backups and point-in-time recovery.
  • You can only switch log mode in MOUNT-state (STARTUP MOUNT). You need ALTER DATABASE privs to do this.
  • LOG_ARCHIVE_START=TRUE will start ARCH process
  • An on-line DB is backed up tablespace by tablespace. Use the ALTER TABLESPACE BEGIN BACKUP command (Not READ ONLY tablespaces!!!)
  • With 7.2, if your DB crashes while in backup mode, you can take the FILES out of backup mode without recovering
  • Exp/imp DIRECT=YES (7.3 feature) uses RECORDLENGTH= and not BUFFER=. Data written directly to TTC (Two task common buffer) and bypasses BUFFER CACHE
  • Use exp CONSISTENT=YES if you need to preserve integrity between tables.
  • INCTYPE=INCREMENTAL - objects changed since last export of any type/ INCTYPE=CUMULATIVE - obects changed since last cumulative export
  • You cannot roll forward after a logical recovery (ie apply redo log files after an import).
  • After DB structure changes (know when - 2-3 questions) do an ALTER DATABASE BACKUP CONTROLFILE...
  • Complete Recovery: DATABASE/ TABLESPACE/ DATAFILE based
  • Incomplete Recovery: TIME (YYYY-MM-DD:HH24:MI:SS)/ CANCEL/ CHANGE based
  • Incomplete recovery not possable on SYSTEM ts or ts with active rollsegs.
  • Be careful not to confuse CANCEL and CHANGED based recovery.
  • All datafiles must be restored for an incomplete recovery. Incomplete recovery is to a point in the past.
  • After incomplete recovery, do an OPEN RESETLOGS and take a backup.
  • With V7.3 deferred transaction recovery, rollbacks are done after DB open.
  • If LOG_BLOCK_CHECKSUM=TRUE and checksum fails: ALTER DATABASE CLEAR LOGFILE...
  • Use DBVERIFY (dbv file=...) to check offline datafiles for structural damage (be careful, the training guide incorrectly states that both On-line and Off-line files can be checked)

1Z0-010 - Oracle7.3 to Oracle8 Upgrade Exam

  • RMAN cannot write image copies to tape.
  • Quite a lot of questions on RMAN (Recovery Manager) and Partitioning. Be clear on syntax (both CREATE/ALTER PARTITION as well
    as RMAN script syntax and invocation), restrictions in partitioning (no
    LONG/BLOB in Partitioned tables?).
  • Quite a few questions on Advanced Queueing (that I hadn't expected - even one/two on the syntax used in AQ!)
  • I was expecting a lot of questions on the Objects option - there were just 2-3 and they were very basic ones!
  • Some questions on the new ROWID format
  • Some questions on LOB usage and restrictions
  • Some questions (basic) on Net8, Connection pooling, etc.

1Z0-111 - Developer/2000 Forms 4.5 I

  • A lot of questions about triggers (scope, ES, type, etc)
  • Know how to create the different types of items in a Form module
  • Get to know the categories of properties and what is in each for the different types of items/objects in forms
  • Understand the difference between modal and modeless windows
  • Understand the difference between content canvas and stacked canvas
  • Know the different built-ins for referencing other forms
  • Understand how to reference internal ids
  • Understand when query triggers fire and how often
  • Using Alerts, suppressing messages, etc
  • Mouse system variables
  • System variables in general
  • Understand navigation
  • Know how to write flexible code
  • Understand how to share objects and code
  • Know how to customize the menu and the types of items/objects which can be included in a menu

1Z0-113: Developer/2000 Reports 2.5

  • There are a lot of questions about matrixes, packages, and function/placeholder/summary columns
  • Understand repeating frames and what frames are created by each layout
  • Know the difference between Nested Matrix and Matrix break reports
  • Know how to develop and test reports for both Character and Bitmap environments
  • Know the tools options menu
  • Be familiar with print type/object
  • Read questions VERY carefully. Some are quite lengthy. Use the paper provided in the exam room to diagram the data models to help clarify the
    question