ora9i_new_features_1..
Download
Report
Transcript ora9i_new_features_1..
Oracle9i New Features
Donald K. Burleson
Books by Donald K. Burleson
Editor-in-Chief
of
Oracle Internals
Oracle Training by Don Burleson
www.guidehorse.org
Syllabus
Syllabus:
–
dba-oracle.com/cou_9i_new.htm
Class schema:
–
dba-oracle/com/ppt/pubsdb.ppt
Syllabus – Day 1
New Administration Features
2 – Oracle9i managed files (OMF)
Oracle9i db_create_file_dest parameter
Exercise – Create Oracle9i OMF tablespaces and data files.
2 – Oracle9i online reorg
Exercise – Online reorg for pubs database
3 – Oracle9i Multiple blocksizes
Exercise – Create tablespaces with multiple blocksizes
4 – Oracle9i SGA memory management
Pga_aggregate_target
5 – Oracle9i Automated undo management
5 - Oracle9i Resumable space management
5 - Managing spfiles in Oracle9i
6 - Oracle9i Virtual private databases
6 - Oracle9i Fine-grained auditing
6 - Oracle9i Database flash freeze
Syllabus – Day 2
Oracle9i Architecture Changes
1 - Oracle9i Flashback query
Exercise – Enable and use flashback query
2 - Oracle9i Logminer
3 - Oracle9i Fast-start recovery
3 - New Oracle9i RMAN features
3 - Oracle9i Data Guard
4&5 - Object/relational enhancements in Oracle9i
Inheritance, ADTs
Exercise – Create an ADT
Oracle9i VLDB features
6 - Oracle9i Multi-table inserts
Exercise – Create multi-table inserts
6 - Oracle9i Merge statements - Upserts
6 - Oracle9i Parallel direct load changes
6 - Oracle9i list partitioning
Syllabus – Day 3
Oracle9i SQL
1 - Oracle9i CASE statement
1 – Oracle9i Explicit defaults
1 – Oracle9i Scalar subqueries
1 - New joins – cross join, natural join, using and on
1 - Oracle9i Left and right outer joins
Exercise – Perform Oracle9i joins in SQL
2 - Oracle9i Explicit column value defaults
2 - Oracle9i New date time BIFs
2 – Oracle9i External tables
Exercise – create an external table
Oracle9i PL/SQL
3 - Oracle9i Compiled PL/SQL
3 - Oracle9i Common SQL parser
3 - Oracle9i cookie support
3 - Oracle9i PL/SQL Inheritance support
3 - Oracle9i New PL/SQL datatypes
Syllabus – Day 3 ctd.
New SQL optimization
4 – Oracle9i Index skip scan
Exercise – show index skip scan in action
4 - Oracle9i Index-only scans on FBIs
Exercise – show index-only FBI scan
4 - New Oracle9i first_rows_n optimization
5 - New Oracle9i execution plan columns
5 - New Oracle9i statistics gathering
5 - Oracle9i in-memory execution plans in v$sql_plan
Exercise – Join v$sql_plan and v$session
5 - Improved Oracle9i cursor sharing with peeking
RAC and TAF
6 - Evolution of OPS into RAC
6 - Oracle9i Cache fusion architecture
6 - Using Oracle9i TAF with RAC
Best Enhancements
Automatic segment free space management
Multiple block sizes by tablespace
9i Data Guard and enhanced standby features
Export and import enhancements
Memory management
Partitioning enhancements
External tables
Multi-table insert
Upsert
Oracle Managed Files
Automatic undo management
Automatic Free Space Management
Traditional freelists and freelist groups have
always been a nightmare
Block ID’s placed on the free list when their
pctused falls below the container’s pctused
value
Nightmare even worse when pctfree will not
allow block to accommodate another row
Automatic Free Space Management
Only available with locally managed
tablespaces
Bitmaps describe the space usage of each
block within a segment
No more contention on segment headers
create tablespace problem datafile
'/u01/oradata/corp/problem01.dbf'
size 1200m extent management local
segment space management auto;
Multiple block size
Instance default defined by db_block_size
Separate cache for each
–
–
Must be pre-defined for non-default block-sized
tablespaces
db_2k_cache_size . . db_32k_cache_size
Up to 5 different cache configurations
Change requires a bounce
9i Data Guard / Standby Database
Enterprise Edition mandatory
Standby need not be “sacrificed” when
activated
Specify time delay for transporting changes to
standby site(s)
–
–
More protection
Standby in pre-error state
Automatic datafile creation on standby
9i Data Guard / Standby Database
• Primary becomes standby
alter database commit to switchover to standby;
shutdown immediate;
startup nomount
alter database mount standby database;
alter database recover managed standby database;
• Standby becomes primary
alter database commit to switchover to primary;
shutdown immediate;
startup
Export and Import Enhancements
resumable suspends a transaction for a
resumable_timeout period (default 2 hours)
tables enhanced to support pattern matching
–
–
Wild card support
Table names upper case
tablespaces
–
–
List according to standard formatting
Indexes automatically extracted
Export and Import Enhancements
statistics {estimate|compute|none} for export
statistics {always|none|safe|recalculate} for
import
–
–
Helpful in rule-based environments
Can reduce import run time
Dynamic SGA Memory Management
Resizable db_cache_size and
shared_pool_size with caveats, mainly
ORA-00384: Insufficient memory to grow
cache
Buffer cache advisory
–
–
–
alter system set db_cache_advice =
{on|off|ready}
Results stored in v$db_cache_advice
Predicts table miss rates for sizes between 10%
and 200% of current size
Partitioning Enhancements
List partitioning solves “almost all” the shortcomings of range-based
Ascending partition key column values can
lead to poor distribution
create table account (id
number . . . . . .
location varchar2(2))
partition by list (location)
(partition other values ('NF','NS','NB','PE','MB','SK','AB','BC'),
partition ontario values ('ON'),
partition quebec values ('QC'),
partition unknown values (null));
Partitioning Enhancements
Maintenance of global indexes
–
–
Add update global indexes to partition
maintenance
add, drop, move , truncate, split, merge,
exchange, coalesce (iot’s)
Index rebuild still recommended if
–
–
Row count is >~ 200,000)
Data can be unavailable (woo)
External Tables
Filesystem based storage
–
–
Day-to-day operations
Load into the warehouse
SQL*Loader syntax
Perfect for read-only data
No longer need to stage data in the database
External Tables
NFS mount makes available to multiple servers
SQL> create or replace directory staging as
2
'/d0/wdata/stage';
Directory created.
SQL> create table relations_ext
2
(first_name
varchar2(20),
3
last_name
varchar2(20),
4
relationship
varchar2(20))
5
organization external
6 (type oracle_loader default directory staging
7
access parameters
8 (records delimited by newline badfile 'reln.bad'9
'reln.dsc' logfile 'reln.log'
10
fields delimited by '^^%^^ '
11 (first_name
char,
12
last_name
char,
13
relationship
char))
14 location ('reln.txt'))
15 reject limit unlimited;
Table created.
discardfile
Multiple table insert
Parcel into a single unit of work
No need to
–
–
–
–
re-summarize
re-sort
re-group
re-transform
Distribute data based on logical attributes of
new rows
Upsert
Using merge keyword
Conditional insert or update depending on row
existence
Careful selection of equating columns
merge into sales s using sales_tornt st
on (s.cust_id = st.cust_id)
when matched then update set tvol = st.tvol, tsales =
st.tsales
when not matched then
insert (s.cust_id,s.cust_loc,s.tvol,s.tord_sum)
values (st.cust_id,st.cust_loc,st.tvol,st.tord_sum);
Oracle Managed Files (OMF)
db_create_file_dest
db create_online_log_dest
All you DON’T want in a database at your
fingertips
–
–
–
cryptic file names
100m default size
autoexensible
Oracle Managed Files (OMF)
system01.dbf
Becomes:
ora_xty6677.ora
Automatic undo management
undo_tablespace
undo_management = auto
undo_retention = {seconds with 900 default}
Need not be using OMF
Are you a fan of optimal?
Turnkey undo configuration via Oracle
Enterprise Manager
Current Books by Don Burleson
My web site: www.dba-oracle.com
E-mail me at : [email protected]