Professional Documents
Culture Documents
Escalabilidad
Alta Disponibilidad
Seguridad
Contingencia
Rendimiento
Respaldos y Recuperacin
Administracin
Migracin
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
61% Incremento
Informationweek.com encuesta revela, una disminucin del 11% en el nmero de
incidentes de soporte. La mayora dijo que la principal razn, se debi a una
infraestructura ms estable.
25
Prioridades Financieras
Reducir costos 24%
58%
LaEso
eficacia
hace referencia a nuestra
significa que no se puede llevar a cabo
capacidad
para lograr
lo que
nos el
anlisis
costo-beneficio
o incluso
determinar
retorno de inversin,
lo que hace difcil justificar
proponemos.
y obtener el apoyo a nuevas inversiones.
26
27
28
La ciencia y tecnologa
Tecnologa para: Ahorrar, Confiar y Diferenciar ACD Las estrategias deben estar basadas en:
Sentido comn
Informacin actual y histrica ( estudios de mercado y experiencia )
Background de cada uno de nosotros
29
30
31
32
33
34
35
36
37
38
Memory structures
User
process
SGA
Database
buffer
cache
Server
process
Processes
DBWn
CKPT
LGWR
Shared pool
Redo log
buffer
SMON
PMON
Library
cache
Data dictionary
cache
ARCn
RECO
Others
Database
Storage structures
Data files
Control
files
Online redo
log files
39
Server
process 2
PGA
Background
process
PGA
Data dictionary
cache
Shared
SQL area
Library
cache
SGA
Other
Shared pool
Redo log
buffer
Database buffer
cache
Java
pool
PGA
Streams
pool
I/O buffer
Free
memory
Response
queue
Request
queue
Large pool
40
Instance
SGA
Database
buffer
cache
DBWn
CKPT
LGWR
Shared pool
Redo log
buffer
SMON
PMON
Library
cache
Data dictionary
cache
ARCn
RECO
Others
41
Database
buffer
cache
DBWn
CKPT
LGWR
Shared pool
Redo log
buffer
SMON
PMON
Library
cache
Data dictionary
cache
ARCn
RECO
Others
42
Database
buffer
cache
DBWn
CKPT
LGWR
Shared
SQL area
Shared pool
Library
cache
Redo log
buffer
SMON
Data dictionary
cache
PMON
ARCn
RECO
Library
cache
Data dictionary
cache
Other
Others
43
Database processes
Server process: Connects to the Oracle instance and is
started when a user establishes a session
Background processes: Are started when an Oracle
instance is started
Instance
Process Architecture
SGA
Database
buffer
cache
PGA
User
process
Server
process
Shared pool
Redo log
buffer
Library
cache
Data dictionary
cache
Background processes
DBWn
CKPT
LGWR
SMON
PMON
ARCn
RECO
Others
44
DBWn
Database buffer
cache
Database writer
process
Ronald Vargas, oracledbacr.blogspot.com
Data files
45
LGWR
Redo log buffer
LogWriter process
46
CKPT
Control file
Checkpoint
process
Data files
47
SMON
Instance
System Monitor
process
Temporary
segment
48
PMON
Process Monitor
process
User
Failed user
process
Database buffer
cache
Ronald Vargas, oracledbacr.blogspot.com
49
ARCn
Archiver process
Archive destination
50
51
Control files
Parameter file
Password file
Data files
Backup files
52
53
54
Oracle Parseo
El parseo es un proceso mediante el cul, el
optimizador de consultas del motor de la base de
datos Oracle establece:
55
Oracle Parseo
Explain plan:
Software Parseo
Hardware Parseo
56
Oracle Parseo
57
Oracle Parseo
Oracle < 7.0 Optimizacin basada en regla ( RULE )
Oracle > 7.0 Optimizacin basada en regla y
optimizacin basada en costo ( RULE / COST )
Oracle 11g superior Optimizacin basada en costo,
RULE no es soportado.
58
59
Oracle optimizacin
60
Oracle optimizacin
61
Oracle optimizacin
Cualquier consulta en Oracle Database,
que devuelva ms
del 5%
62
63
Oracle
64
AWR - Oracle
El AWR, repositorio de carga de trabajo de Oracle,
es la evolucin del reporte STATSPACK a partir de
las bases de datos versin Oracle 10g.
Fue desarrollado por el equipo de Oracle Technical
Support y requiere para ser interpretado, un nivel
de experiencia significativo.
El AWR trabaja en conjunto con el ADDM (Active
Database Diagnostic Monitor) y puede ser
empleado desde lnea de comando o desde el OEM
( Database Control DBCA ).
Ronald Vargas, oracledbacr.blogspot.com
65
AWR - Oracle
66
Oracle Auto-Tuning
67
Oracle Auto-Tuning
Desde Oracle 10g caractersticas de afinamiento:
Oracle 10g Grid
Nuevo 10g Enterprise Manager (OEM), interface Web
AWR and ASH incorporado dentro de las opciones OEM
Performance Pack and Diagnostic Pack
Automated Session History (ASH
Automatic Database Diagnostic Monitor (ADDM)
Automatic Workload Repository (AWR)
SQLTuning Advisor
SQLAccess Advisor
68
Oracle Auto-Tuning
Oracle 11g caractersticas de afinamiento:
AWR Baselines
Adaptive Metric Baselines
Ronald Vargas, oracledbacr.blogspot.com
69
Advisory
Instrumentation
70
71
72
73
74
DEPARTMENTS
JOB_HISTORY
EMPLOYEE_ID
(PK,FK)
START_DATE (PK)
END_DATE
JOB_ID (FK)
DEPARTMENT_ID (FK)
EMPLOYEES
EMPLOYEE_ID (PK)
FIRST_NAME
LAST_NAME
EMAIL
PHONE_NUMBER
HIRE_DATE
JOB_ID (FK)
SALARY
COMMISION_PCT
MANAGER_ID (FK)
DEPARTMENT_ID (FK)
DEPARTMENT_ID (PK)
DEPARTMENT_NAME
MANAGER_ID
LOCATION_ID (FK)
LOCATIONS
LOCATION_ID (PK)
STREET_ADDRESS
POSTAL_CODE
CITY
STATE_PROVINCE
COUNTRY_ID (FK)
COUNTRIES
JOBS
JOB_ID (PK)
JOB_TITLE
MIN_SALARY
MAX_SALARY
COUNTRY_ID (PK)
COUNTRY_NAME
REGION_ID (FK)
REGIONS
REGION_ID (PK)
REGION_NAME
75
76
77
78
79
80
81
82
83
84
85
86
87
88
RISC
CISC
10%
>50%
CISC
> $20.000,00
$7.000,00
Sistemas Operativos
RISC
CISC
WINDOWS/LINUX
89
90
91
Standard
Edition One
Standard
Edition
Enterprise
Edition
FREE
$180/user (min. 5)
or $5,800
per Processor (CPU)**
$350/user (min.10)
or $17,500
per Processor (CPU)**
< 20 users
400-1000 users
Uses 1 CPU
< 4GB DB size
1 instance per CPU
Use up to 1GB RAM
2 CPU
Single or clustered up to 4
CPUs
4+ CPUs
Free OTN
Community Forum
Fee-based Support
available
Fee-based Support
available
Fee-based Support
available
92
93
94
95
Memoria:
1. Cach sistema operativo ( 40%)
2. Instancia de la base de datos ( - 50% memoria fsica )
3. Memoria de procesos background ( 90MB a 145MB )
4. Memoria usuarios conectados a la base de datos ( Cliente/Servidor, Web 3
capas, mlti-hilo ( JAVA )
5. Procesos de respaldo y monitoreo
6. Instancia ASM ( 280MB a 350MB )
APLICATIVO
CONSUMO
Java
12-15MB
32 MB
Serverlet
24 MB
15 a 20 MB
96
Cach: 1.6GB
Instancia: 800MB
Background: 108MB
800MB+108MB+1.1GB =
2GB
Usuarios:50x
22MB=1.1GB
Libres= 400MB
97
Intercambio
de contexto
Swaping
Bajo
rendimiento
98
99
100
101
102
Target_a
Sourcetab
Subquery
INSERT ALL
INTO target_a VALUES(,,)
INTO target_b VALUES(,,)
INTO target_c VALUES(,,)
SELECT
FROM sourcetab
WHERE ;
Target_b
Target_c
Ronald Vargas, oracledbacr.blogspot.com
103
Tipos deINSERT
Los diferentes tipos de INSERT mltitablas son:
Incondicional INSERT
Condicional INSERT ALL
Pivoteado INSERT
Condicional INSERT FIRST
104
conditional_insert_clause:
[ALL] [FIRST]
[WHEN condition THEN] [insert_into_clause values_clause]
[ELSE] [insert_into_clause values_clause]
105
INSERT ALL
INTO sal_history VALUES(EMPID,HIREDATE,SAL)
INTO mgr_history VALUES(EMPID,MGR,SAL)
SELECT employee_id EMPID, hire_date HIREDATE,
salary SAL, manager_id MGR
FROM employees
WHERE employee_id > 200;
106
Employees
With sales
commission
EMP_SALES
107
108
109
110
Pivoteado INSERT
INSERT ALL
INTO sales_info VALUES (employee_id,week_id,sales_MON)
INTO sales_info VALUES (employee_id,week_id,sales_TUE)
INTO sales_info VALUES (employee_id,week_id,sales_WED)
INTO sales_info VALUES (employee_id,week_id,sales_THUR)
INTO sales_info VALUES (employee_id,week_id, sales_FRI)
SELECT EMPLOYEE_ID, week_id, sales_MON, sales_TUE,
sales_WED, sales_THUR,sales_FRI
FROM sales_source_data;
111
Declaracin MERGE
Usted puede condicionalmente hacer un insert, una
actualizacin o un borrado de registros en una tabla,
utilizando MERGE.
MERGE INTO table_name table_alias
USING (table|view|sub_query) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col1_val,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);
112
113
114
Indices virtuales
El proceso de afinamiento de instrucciones
SQL, requiere que de manera alterna,
podamos definir estrategias de indexacin,
para observar su efecto en los planes de
ejecucin.
Crear ndices adicionales, no es el problema.
115
Indices virtuales
El problema es, que crear ndices extras sobre tablas grandes,
puede tomar un monto considerado de tiempo y espacio en
disco.
Adicionalmente, los ndices creados pueden ser utilizados por
otras sesiones de usuarios y podra afectar el rendimiento en
otras partes de la aplicacin.
Esto puede ser problemtico cuando estamos intentando
identificar el problema en un sistema en produccin.
Ronald Vargas, oracledbacr.blogspot.com
116
Indices virtuales
En contraste a los ndices convencionales, los ndices
virtuales no estn asociados a un segmento, el tiempo de
creacin y el espacio asociado en disco es irrelevante.
Adicionalmente, no pueden ser vistos por otras sesiones,
por tanto, no se ve afectado el normal funcionamiento del
sistema.
117
Indices virtuales
SQL> desc movto_h
Name
----------------------------------------NO_CIA
CENTRO
TIPO_DOC
PERIODO
RUTA
NO_DOCU
FECHA
NO_FISICO
SERIE_FISICO
...
FECHA_APLICACION
TSTAMP
NO_TRASLADO
Null?
-------NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
Type
-------------VARCHAR2(2)
VARCHAR2(2)
VARCHAR2(2)
VARCHAR2(4)
VARCHAR2(4)
VARCHAR2(12)
DATE
VARCHAR2(12)
VARCHAR2(15)
DATE
DATE
VARCHAR2(12)
118
Indices virtuales
119
Indices virtuales
SQL> create index v_movto_h_nofisico on
movto_h(no_fisico) nosegment;
Index created.
SQL> explain plan for
2 select count(distinct no_fisico) from movto_h;
Explained.
120
Indices virtuales
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------Plan hash value: 891170817
-----------------------------------------------------------------------------| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)| Time
|
-----------------------------------------------------------------------------|
0 | SELECT STATEMENT
|
|
1 |
7 | 21381
(3)| 00:04:17 |
|
1 | SORT GROUP BY
|
|
1 |
7 |
|
|
|
2 |
TABLE ACCESS FULL| movto_h | 6445K|
43M| 21381
(3)| 00:04:17 |
-----------------------------------------------------------------------------9 rows selected.
121
Indices virtuales
SQL> explain plan for
2 select count(distinct no_fisico) from movto_h where no_fisico < 10000;
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------Plan hash value: 891170817
-----------------------------------------------------------------------------| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)| Time
|
-----------------------------------------------------------------------------|
0 | SELECT STATEMENT
|
|
1 |
7 | 21547
(3)| 00:04:19 |
|
1 | SORT GROUP BY
|
|
1 |
7 |
|
|
|* 2 |
TABLE ACCESS FULL| movto_h |
322K| 2203K| 21547
(3)| 00:04:19 |
------------------------------------------------------------------------------
122
Indices virtuales
SQL> create index v_movto_h_nofisico2 on
movto_h(to_number(no_fisico)) nosegment;
Index created.
SQL> explain plan for
2 select count(distinct no_fisico) from
movto_h where no_fisico < 10000;
Explained.
123
Indices virtuales
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------Plan hash value: 891170817
-----------------------------------------------------------------------------| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)| Time
|
-----------------------------------------------------------------------------|
0 | SELECT STATEMENT
|
|
1 |
7 | 21547
(3)| 00:04:19 |
|
1 | SORT GROUP BY
|
|
1 |
7 |
|
|
|* 2 |
TABLE ACCESS FULL| movto_h |
322K| 2203K| 21547
(3)| 00:04:19 |
-----------------------------------------------------------------------------Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO")<10000)
14 rows selected.
124
Indices virtuales
SQL>
SQL> alter session set "_use_nosegment_indexes"=TRUE;
Session altered.
SQL> explain plan for
2 select count(distinct no_fisico) from movto_h where
no_fisico < 10000;
Explained.
125
Indices virtuales
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------Plan hash value: 2481667387
-------------------------------------------------------------------------------------------| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)| Time
|
-------------------------------------------------------------------------------------------|
0 | SELECT STATEMENT
|
|
1 |
7 |
7
(0)| 00:00:01 |
|
1 | SORT GROUP BY
|
|
1 |
7 |
|
|
|* 2 |
INDEX FAST FULL SCAN| V_movto_h_NOFISICO |
322K| 2203K|
7
(0)| 00:00:01 |
-------------------------------------------------------------------------------------------Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO")<10000)
14 rows selected.
126
Indices virtuales
SQL> SELECT index_owner, index_name
2
FROM dba_ind_columns
3
WHERE index_name NOT LIKE 'BIN$%'
4 MINUS
5 SELECT owner, index_name
6
FROM dba_indexes;
INDEX_OWNER
-----------------------------PRUEBAS21
PRUEBAS21
PRUEBAS21
INDEX_NAME
----------------------------V_movto_h_NOFISICO
V_movto_h_NOFISICO2
V_ARINMN
127
Indices virtuales
SQL> drop index v_movto_h_nofisico;
Index dropped.
SQL> explain plan for
2 select count(distinct no_fisico) from movto_h where
no_fisico < 10000;
Explained.
128
Indices virtuales
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------Plan hash value: 11771441
-------------------------------------------------------------------------------------| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)|
-------------------------------------------------------------------------------------|
0 | SELECT STATEMENT
|
|
1 |
7 |
10
(0)|
|
1 | SORT GROUP BY
|
|
1 |
7 |
|
|
2 |
TABLE ACCESS BY INDEX ROWID| movto_h
|
322K| 2203K|
10
(0)|
|* 3 |
INDEX RANGE SCAN
| V_movto_h_NOFISICO2 | 58014 |
|
2
(0)|
Time
00:00:01 |
|
00:00:01 |
00:00:01 |
-------------------------------------------------------------------------------------PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------Predicate Information (identified by operation id):
--------------------------------------------------3 - access(TO_NUMBER("NO_FISICO")<10000)
15 rows selected.
129
Indices virtuales
SQL> select count(*) from movto_h;
COUNT(*)
---------6445961
drop index v_movto_h_nofisico2;
create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico))
nosegment;
drop index v_movto_h_nofisico2;
create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico));
SQL> drop index v_movto_h_nofisico2;
Index dropped.
130
Indices virtuales
SQL>
SQL> set timing on;
SQL>
SQL> create index v_movto_h_nofisico2 on
movto_h(to_number(no_fisico)) nosegment;
Index created.
Elapsed: 00:00:00.03
131
Indices virtuales
SQL> create index v_movto_h_nofisico2 on
movto_h(to_number(no_fisico));
Index created.
Elapsed: 00:01:09.56
SQL> explain plan for
2 select count(distinct no_fisico) from movto_h where
no_fisico < 10000;
Explained.
Elapsed: 00:00:00.01
132
Indices virtuales
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------Plan hash value: 891170817
-----------------------------------------------------------------------------| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)| Time
|
-----------------------------------------------------------------------------|
0 | SELECT STATEMENT
|
|
1 |
7 | 21547
(3)| 00:04:19 |
|
1 | SORT GROUP BY
|
|
1 |
7 |
|
|
|* 2 |
TABLE ACCESS FULL| movto_h |
322K| 2203K| 21547
(3)| 00:04:19 |
-----------------------------------------------------------------------------Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO")<10000)
14 rows selected.
133
Indices virtuales
SQL> alter session set "_use_nosegment_indexes"=FALSE;
Session altered.
Elapsed: 00:00:00.01
SQL> explain plan for
2 select count(distinct no_fisico) from movto_h where
no_fisico < 10000;
Explained.
Elapsed: 00:00:00.01
134
Indices virtuales
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------Plan hash value: 891170817
-----------------------------------------------------------------------------| Id | Operation
| Name
| Rows | Bytes | Cost (%CPU)| Time
|
-----------------------------------------------------------------------------|
0 | SELECT STATEMENT
|
|
1 |
7 | 21547
(3)| 00:04:19 |
|
1 | SORT GROUP BY
|
|
1 |
7 |
|
|
|* 2 |
TABLE ACCESS FULL| movto_h |
322K| 2203K| 21547
(3)| 00:04:19 |
-----------------------------------------------------------------------------Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO")<10000)
14 rows selected.
135
Indices virtuales
136
Indices virtuales
137
138
Columnas Virtuales
Columnas Virtuales
Frmula / columnas calculadas - sobre la base de datos
Restricciones adicionales - sobre la base de datos
Nueva categora para la particin - sobre la base de datos
Integridad creativa de referencia - en la base de datos
139
Columnas Virtuales
SQL> show user
USER is "DEMO_LAB"
SQL> desc employees
Name
----------------------------------------EMPLOYEE_ID
FIRST_NAME
LAST_NAME
EMAIL
PHONE_NUMBER
HIRE_DATE
JOB_ID
SALARY
COMMISSION_PCT
MANAGER_ID
DEPARTMENT_ID
SQL>
SQL>
Null?
Type
-------- ---------------------------NUMBER(6)
VARCHAR2(20)
NOT NULL VARCHAR2(25)
NOT NULL VARCHAR2(25)
VARCHAR2(20)
NOT NULL DATE
NOT NULL VARCHAR2(10)
NUMBER(8,2)
NUMBER(2,2)
NUMBER(6)
NUMBER(4)
140
Columnas Virtuales
1 insert into employees(employee_id, first_name, last_name, email, hire_date, job_id)
2* values (&empleado_id, '&nombre', '&apellido', '&email', to_date('&nacimiento','dd-mm-yyyy'),
&id_empleado)
SQL> /
Enter value for empleado_id: 1
Enter value for nombre: Ronald
Enter value for apellido: Vargas
Enter value for email: rvargas@laboratorio.com
Enter value for nacimiento: 03-09-1968
Enter value for id_empleado: 10
old 2: values (&empleado_id, '&nombre', '&apellido', '&email', to_date('&nacimiento','dd-mm-yyyy'),
&id_empleado)
new 2: values (1, 'Ronald', 'Vargas', 'rvargas@laboratorio.com', to_date('03-09-1968','dd-mm-yyyy'),
10)
1 row created.
SQL> commit;
Ronald Vargas, oracledbacr.blogspot.com
141
Columnas Virtuales
SQL> select * from employees;
EMPLOYEE_ID FIRST_NAME
LAST_NAME
----------- -------------------- ------------------------EMAIL
PHONE_NUMBER
HIRE_DATE JOB_ID
------------------------- -------------------- --------- ---------- ---------COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
-------------- ---------- ------------1 Ronald
Vargas
rvargas@laboratorio.com
03-SEP-68 10
SALARY
142
Columnas Virtuales
SQL> update employees set salary=200000;
1 row updated.
SQL> commit;
Commit complete.
SQL> select * from employees;
EMPLOYEE_ID FIRST_NAME
LAST_NAME
----------- -------------------- ------------------------EMAIL
PHONE_NUMBER
HIRE_DATE JOB_ID
SALARY
------------------------- -------------------- --------- ---------- ---------COMMISSION_PCT MANAGER_ID DEPARTMENT_ID
-------------- ---------- ------------1 Ronald
Vargas
rvargas@laboratorio.com
03-SEP-68 10
200000
Ronald Vargas, oracledbacr.blogspot.com
143
Columnas Virtuales
SQL> alter table employees add IMPUESTO_RENTA as (nvl(salary,0)*0.10);
Table altered.
SQL> desc employees
Name
----------------------------------------EMPLOYEE_ID
FIRST_NAME
LAST_NAME
EMAIL
PHONE_NUMBER
HIRE_DATE
JOB_ID
SALARY
COMMISSION_PCT
MANAGER_ID
DEPARTMENT_ID
IMPUESTO_RENTA
Null?
Type
-------- ---------------------------NUMBER(6)
VARCHAR2(20)
NOT NULL VARCHAR2(25)
NOT NULL VARCHAR2(25)
VARCHAR2(20)
NOT NULL DATE
NOT NULL VARCHAR2(10)
NUMBER(8,2)
NUMBER(2,2)
NUMBER(6)
NUMBER(4)
NUMBER
144
Columnas Virtuales
SQL> set linesize 200
SQL> select employee_id, first_name, last_name, salary,
impuesto_renta from employees;
EMPLOYEE_ID FIRST_NAME
LAST_NAME
SALARY IMPUESTO_RENTA
----------- -------------------- ------------------------- ---------- -------------1 Ronald
Vargas
200000
20000
145
Columnas Virtuales
SQL> select employee_id, first_name, last_name, salary, impuesto_renta from
employees;
EMPLOYEE_ID FIRST_NAME
LAST_NAME
SALARY IMPUESTO_RENTA
----------- -------------------- ------------------------- ---------- -------------1 Ronald
Vargas
400000
40000
SQL>
146
Columnas Virtuales
SQL> alter table employees add email_sugerido as
(substr(first_name,1,1)||'.'||last_name||'@'||'laboratorio.com');
Table altered.
SQL> /
FIRST_NAME
LAST_NAME
SALARY IMPUESTO_RENTA EMAIL_SUGERIDO
-------------------- ------------------------- ---------- -------------- ----------------------------Ronald
Vargas
400000
40000 R.Vargas@laboratorio.com
147
Columnas Virtuales
SQL> select first_name, last_name, salary, impuesto_renta, email_sugerido from
employees;
FIRST_NAME
LAST_NAME
SALARY IMPUESTO_RENTA EMAIL_SUGERIDO
-------------------- ------------------------- ---------- -------------- -------------------------Manuel
Vargas
400000
40000 M.Vargas@laboratorio.com
Null?
Type
-------- ---------------------------NUMBER(6)
VARCHAR2(20)
NOT NULL VARCHAR2(25)
NOT NULL VARCHAR2(25)
VARCHAR2(20)
NOT NULL DATE
NOT NULL VARCHAR2(10)
NUMBER(8,2)
NUMBER(2,2)
NUMBER(6)
NUMBER(4)
NUMBER
VARCHAR2(41)
148
Oracle 11gR2
( Top 5 )
149
Top #5
Nuevo Oracle Enterprise Manager
11g
150
151
Top #4
In-Memory Parallel Execution
152
153
Top #3
Oracle Result Cache
154
155
Top #2
Flashback Data Archive
156
Flashback
Query
Flashback
Tables
Flashback
Database
Flashback
Data Archive
y
Transaction
157
Consulte datos AS OF
cualquier momento del
pasado
Almacenamiento y
Recuperacin eficiente de
datos undo
Archive
Tables
ORDERS
User
Tablespaces
Flashback Data
Archive
Total Recall
158
Top #1
Real Application Testing
159
Replay
Capture
Workload
160
161
162
163
164
165
166
167
168
169
170
171
DCPDS
3rd Party
Oracle_DCPDS.JPG
Batch Processing
Data Aggregation/Synch
BAM
Mainframe
Database
Warehouse
Ambientes Heterogneos
PROCESS
receive
SCOPE
getSSN
getRati
ng
FLOW
<*>/
=+| -
<S>%
=* |/
<*>/
=+| -
<S>%
=+ |-
SOA
invoke
invoke
receive
receive
select
review
end
Richer Experience
More Adaptable
More Interoperable
ERP/
Legacy Apps
Portal
Web Application
PKI
Dashboards
Process Flow
Logic
Security
Reliability
Logging
Failover
Dynamic Routing
Custom Apps
& Services
WS
API
MONITORING
USER INTERFACE
Web services
PROCESS ORCHESTRATION
SERVICE BUS
BUSINESS SERVICES
BAM
PORTAL JSR-168
BPEL
WS-Security
XML/XML Schema
JMX
Struts/JSF
XSLT/XQuery
WS-Policy, SAML
WSDL/WSIF
SOAP
JCA
JMS
175
176
177
178
179
180
181
182
Quines son: ?
Izquierda a derecha: Ed Oates, Bruce Scott, Bob Miner y Larry Ellison
celebrando el 1er Aniversario de la compaa.
Edward
Oates,
dej
la
compaa en 1996, actualmente
forma parte del cuerpo de
directores del Zoolgico de San
Francisco.
Bob Miner, fue diagnsticado
con cncer en 1992 y muri en
noviembre de 1994.
183
184