Serie UndergroundPor Ronald Vargas, Oracle ACEOracledbacr.blogspot.com
Indices virtuales       @rovaque                    Oracledbacr.blogspot.com
Indices virtuales    •    El proceso de afinamiento de instrucciones SQL, requiere         que de manera alterna, podamos ...
Indices virtuales•    El problema es, que crear índices extras sobre tablas grandes, puede     tomar un monto considerado ...
Indices virtuales   –  En contraste a los índices convencionales, los índices virtuales no      están asociados a un segme...
Indices virtualesSQL> desc movto_h Name                                        Null?      Type ---------------------------...
Indices virtuales         SQL> select count(*) from movto_h;          COUNT(*)           ----------          6445961
Indices virtuales   SQL> create index v_movto_h_nofisico on movto_h(no_fisico) nosegment;   Index created.   SQL> explain ...
Indices virtuales SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ----------------------------------------...
Indices virtualesSQL> explain plan for  2 select count(distinct no_fisico) from movto_h where no_fisico < 10000;Explained....
Indices virtuales SQL> create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico)) nosegment; Index created. SQL> ex...
Indices virtualesSQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT-------------------------------------------...
Indices virtualesSQL>SQL> alter session set "_use_nosegment_indexes"=TRUE;Session altered.SQL> explain plan for  2 select ...
Indices virtualesSQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT-------------------------------------------...
Indices virtualesSQL> SELECT index_owner, index_name  2    FROM dba_ind_columns  3   WHERE index_name NOT LIKE BIN$%  4 MI...
Indices virtualesSQL> drop index v_movto_h_nofisico;Index dropped.SQL> explain plan for  2 select count(distinct no_fisico...
Indices virtualesSQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT-------------------------------------------...
Indices virtualesSQL> select count(*) from movto_h;  COUNT(*)----------   6445961drop index v_movto_h_nofisico2;create ind...
Indices virtualesSQL>SQL> set timing on;SQL>SQL> create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico))nosegmen...
Indices virtualesSQL> create index v_movto_h_nofisico2 onmovto_h(to_number(no_fisico));Index created.Elapsed: 00:01:09.56S...
Indices virtualesSQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT-------------------------------------------...
Indices virtualesSQL> alter session set "_use_nosegment_indexes"=FALSE;Session altered.Elapsed: 00:00:00.01SQL> explain pl...
Indices virtualesPLAN_TABLE_OUTPUT-----------------------------------------------------------------------------------Plan ...
Indices virtuales
Indices virtuales Calculando estadísticas al índice virtual SQL> drop index V_movto_h_NOFISICO2; Index dropped. SQL> creat...
Indices virtuales SQL> alter session set "_use_nosegment_indexes"=TRUE; Session altered. SQL> explain plan for  2 select c...
Indices virtualesPLAN_TABLE_OUTPUT----------------------------------------------------------------------------------------...
Indices virtuales   El optimizador de Oracle 10g y superiores trabaja   basado en optimización por COSTO.   RBO no esta so...
Columnas Virtuales Columnas Virtuales    Fórmula / columnas calculadas - sobre la base de datos    Restricciones adicional...
Columnas VirtualesSQL> show userUSER is "DEMO_LAB"SQL> desc employees Name                                        Null?   ...
Columnas Virtuales 1 insert into employees(employee_id, first_name, last_name, email, hire_date, job_id) 2* values (&emple...
Columnas VirtualesSQL> select * from employees;EMPLOYEE_ID FIRST_NAME                             LAST_NAME----------- ---...
Columnas VirtualesSQL> update employees set salary=200000;1 row updated.SQL> commit;Commit complete.SQL> select * from emp...
Columnas VirtualesSQL> alter table employees add IMPUESTO_RENTA as (nvl(salary,0)*0.10);Table altered.SQL> desc employees ...
Columnas VirtualesSQL> set linesize 200SQL> select employee_id, first_name, last_name, salary,impuesto_renta from employee...
Columnas Virtuales SQL> select employee_id, first_name, last_name, salary, impuesto_renta from employees; EMPLOYEE_ID FIRS...
Columnas VirtualesSQL> alter table employees add email_sugerido as (substr(first_name,1,1)||.||last_name||@||laboratorio.c...
Columnas VirtualesSQL> select first_name, last_name, salary, impuesto_renta, email_sugerido fromemployees;FIRST_NAME      ...
Crear un dblink sin tocar el tnsnamessystem@TEST11> select * from v$version;BANNER----------------------------------------...
Crear un dblink sin tocar el tnsnamessystem@TEST11> create database link testlink_db22 connect to system identified by ora...
Crear un dblink sin tocar el tnsnamessystem@TEST11> select * from v$version@testlink_db2;BANNER---------------------------...
Oracle 11g caracteristicas poco documentadas 3 en 1
Oracle 11g caracteristicas poco documentadas 3 en 1
Upcoming SlideShare
Loading in...5
×

Oracle 11g caracteristicas poco documentadas 3 en 1

393

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
393
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Oracle 11g caracteristicas poco documentadas 3 en 1

  1. 1. Serie UndergroundPor Ronald Vargas, Oracle ACEOracledbacr.blogspot.com
  2. 2. Indices virtuales @rovaque Oracledbacr.blogspot.com
  3. 3. Indices virtuales •  El proceso de afinamiento de instrucciones SQL, requiere que de manera alterna, podamos definir estrategias de indexación, para observar su efecto en los planes de ejecución. •  Crear índices adicionales, no es el problema.
  4. 4. 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 podría afectar el rendimiento en otras partes de la aplicación.•  Esto puede ser problemático cuando estamos intentando identificar el problema en un sistema en producción.
  5. 5. Indices virtuales –  En contraste a los índices convencionales, los índices virtuales no están asociados a un segmento, el tiempo de creación 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. –  Este clase muestra de manera sencilla como utilizarlos y las consideraciones que debemos tener en cuenta.
  6. 6. Indices virtualesSQL> desc movto_h Name Null? Type ----------------------------------------- -------- -------------- NO_CIA NOT NULL VARCHAR2(2) CENTRO NOT NULL VARCHAR2(2) TIPO_DOC NOT NULL VARCHAR2(2) PERIODO NOT NULL VARCHAR2(4) RUTA NOT NULL VARCHAR2(4) NO_DOCU NOT NULL VARCHAR2(12) FECHA NOT NULL DATE NO_FISICO VARCHAR2(12) SERIE_FISICO VARCHAR2(15) ... FECHA_APLICACION DATE TSTAMP DATE NO_TRASLADO VARCHAR2(12)
  7. 7. Indices virtuales SQL> select count(*) from movto_h; COUNT(*) ---------- 6445961
  8. 8. 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.
  9. 9. 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.
  10. 10. Indices virtualesSQL> 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 |------------------------------------------------------------------------------Predicate Information (identified by operation id):PLAN_TABLE_OUTPUT
  11. 11. 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.
  12. 12. Indices virtualesSQL> 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.
  13. 13. Indices virtualesSQL>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.
  14. 14. Indices virtualesSQL> 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.
  15. 15. Indices virtualesSQL> 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 INDEX_NAME------------------------------ ------------------------------PRUEBAS21 V_movto_h_NOFISICOPRUEBAS21 V_movto_h_NOFISICO2PRUEBAS21 V_ARINMN
  16. 16. Indices virtualesSQL> 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.
  17. 17. Indices virtualesSQL> select * from table(dbms_xplan.display);PLAN_TABLE_OUTPUT-------------------------------------------------------------------------------------Plan hash value: 11771441--------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |--------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 10 (0)| 00:00:01 || 1 | SORT GROUP BY | | 1 | 7 | | || 2 | TABLE ACCESS BY INDEX ROWID| movto_h | 322K| 2203K| 10 (0)| 00:00:01 ||* 3 | INDEX RANGE SCAN | V_movto_h_NOFISICO2 | 58014 | | 2 (0)| 00:00:01 |--------------------------------------------------------------------------------------PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------------Predicate Information (identified by operation id):--------------------------------------------------- 3 - access(TO_NUMBER("NO_FISICO")<10000)15 rows selected.
  18. 18. Indices virtualesSQL> select count(*) from movto_h; COUNT(*)---------- 6445961drop 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.
  19. 19. Indices virtualesSQL>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.03SQL> drop index v_movto_h_nofisico2;Index dropped.Elapsed: 00:00:00.02
  20. 20. Indices virtualesSQL> create index v_movto_h_nofisico2 onmovto_h(to_number(no_fisico));Index created.Elapsed: 00:01:09.56SQL> explain plan for 2 select count(distinct no_fisico) from movto_h where no_fisico< 10000;Explained.Elapsed: 00:00:00.01
  21. 21. Indices virtualesSQL> 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.
  22. 22. Indices virtualesSQL> alter session set "_use_nosegment_indexes"=FALSE;Session altered.Elapsed: 00:00:00.01SQL> explain plan for 2 select count(distinct no_fisico) from movto_h where no_fisico < 10000;Explained.Elapsed: 00:00:00.01SQL> select * from table(dbms_xplan.display);
  23. 23. Indices virtualesPLAN_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.
  24. 24. Indices virtuales
  25. 25. Indices virtuales Calculando estadísticas al índice virtual SQL> drop index V_movto_h_NOFISICO2; Index dropped. SQL> create index v_movto_h_nofisico2 on MOVTO_H(to_number(no_fisico)) nosegment; Index created. SQL> execute dbms_stats.gather_index_stats(PRUEBAS21,V_MOVTO_H_NOFISICO2); PL/SQL procedure successfully completed.
  26. 26. Indices virtuales 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. SQL> set linesize 1000 SQL> select * from table(dbms_xplan.display);
  27. 27. Indices virtualesPLAN_TABLE_OUTPUT-----------------------------------------------------------------------------------------------------Plan hash value: 1788350122----------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |----------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 30 (0)| 00:00:01 || 1 | SORT GROUP BY | | 1 | 7 | | || 2 | TABLE ACCESS BY INDEX ROWID| MOVTO_H | 218K| 1495K| 30 (0)| 00:00:01 ||* 3 | INDEX RANGE SCAN | V_MOVTO_H_NOFISICO2 | 218K| | 2 (0)| 00:00:01 |----------------------------------------------------------------------------------------------------PLAN_TABLE_OUTPUT-----------------------------------------------------------------------------------------Predicate Information (identified by operation id):--------------------------------------------------- 3 - access(TO_NUMBER("NO_FISICO")<10000)
  28. 28. Indices virtuales El optimizador de Oracle 10g y superiores trabaja basado en optimización por COSTO. RBO no esta soportado en Oracle11g
  29. 29. Columnas Virtuales Columnas Virtuales Fórmula / columnas calculadas - sobre la base de datos Restricciones adicionales - sobre la base de datos Nueva categoría para la partición - sobre la base de datos Integridad creativa de referencia - en la base de datos Sin columnas virtuales- inconvenientes Triggers - caros Vistas- a veces se olvidan Re-diseño – Mucho trabajo duro!
  30. 30. Columnas VirtualesSQL> show userUSER is "DEMO_LAB"SQL> desc employees Name Null? Type ----------------------------------------- -------- ---------------------------- EMPLOYEE_ID NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4)SQL>SQL>
  31. 31. 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: 1Enter value for nombre: RonaldEnter value for apellido: VargasEnter value for email: rvargas@laboratorio.comEnter value for nacimiento: 03-09-1968Enter value for id_empleado: 10old 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;
  32. 32. Columnas VirtualesSQL> 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 Vargasrvargas@laboratorio.com 03-SEP-68 10
  33. 33. Columnas VirtualesSQL> 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 Vargasrvargas@laboratorio.com 03-SEP-68 10 200000
  34. 34. Columnas VirtualesSQL> alter table employees add IMPUESTO_RENTA as (nvl(salary,0)*0.10);Table altered.SQL> desc employees Name Null? Type ----------------------------------------- -------- ---------------------------- EMPLOYEE_ID NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4) IMPUESTO_RENTA NUMBER
  35. 35. Columnas VirtualesSQL> set linesize 200SQL> 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 20000SQL> update employees set salary=400000 where employee_id=1;1 row updated.SQL> commit;Commit complete.
  36. 36. 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>
  37. 37. Columnas VirtualesSQL> 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.comSQL> update employees set first_name=Manuel whereimpuesto_renta=40000;1 row updated.SQL> commit;Commit complete.
  38. 38. Columnas VirtualesSQL> select first_name, last_name, salary, impuesto_renta, email_sugerido fromemployees;FIRST_NAME LAST_NAME SALARY IMPUESTO_RENTA EMAIL_SUGERIDO-------------------- ------------------------- ---------- -------------- --------------------------Manuel Vargas 400000 40000 M.Vargas@laboratorio.comSQL> desc employees Name Null? Type ----------------------------------------- -------- ---------------------------- EMPLOYEE_ID NUMBER(6) FIRST_NAME VARCHAR2(20) LAST_NAME NOT NULL VARCHAR2(25) EMAIL NOT NULL VARCHAR2(25) PHONE_NUMBER VARCHAR2(20) HIRE_DATE NOT NULL DATE JOB_ID NOT NULL VARCHAR2(10) SALARY NUMBER(8,2) COMMISSION_PCT NUMBER(2,2) MANAGER_ID NUMBER(6) DEPARTMENT_ID NUMBER(4) IMPUESTO_RENTA NUMBER EMAIL_SUGERIDO VARCHAR2(41)
  39. 39. Crear un dblink sin tocar el tnsnamessystem@TEST11> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - ProductionPL/SQL Release 11.1.0.7.0 - ProductionCORE 11.1.0.7.0 ProductionTNS for Linux: Version 11.1.0.7.0 - ProductionNLSRTL Version 11.1.0.7.0 - Production5 rows selected.system@TEST11> select * from dba_db_links;no rows selected
  40. 40. Crear un dblink sin tocar el tnsnamessystem@TEST11> create database link testlink_db22 connect to system identified by oracle3 using4 (DESCRIPTION=5 (ADDRESS=6 (PROTOCOL=TCP)7 (HOST=10.2.10.18)8 (PORT=1525))9 (CONNECT_DATA=10 (SID=test10)))11 /Database link created.
  41. 41. Crear un dblink sin tocar el tnsnamessystem@TEST11> select * from v$version@testlink_db2;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - ProdPL/SQL Release 10.2.0.4.0 - ProductionCORE 10.2.0.4.0 ProductionTNS for Linux: Version 10.2.0.4.0 - ProductionNLSRTL Version 10.2.0.4.0 - Production5 rows selected.-- cleanoutsystem@TEST11> drop database link testlink_db2;Database link dropped.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×