Skip to Main Content

Portuguese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Biografía de los Conferencistas

Deiby GomezJun 15 2015 — edited Jul 29 2015

| Cover_Deiby.jpg |
| Deiby.jpg |

DEIBY GOMEZ

Es la persona más joven en el mundo designado como Oracle ACE y Oracle ACE Director a sus 23 y 25 años respectivamente. Es una persona tenaz y competitiva que establece periódicamente objetivos profesionales para sí mismo y los utiliza para mantener la motivación por la tecnología. Deiby tiene una vocación para ayudar tanto a sus colegas actuales como anteriores, crédito que da a sus amplios estudios. Cuando no está trabajando le pueden encontrar viajando o jugando al ajedrez. Deiby es el fundador de OraWorld Team, presidente de la Comunidad de Usuarios Oracle Guatemala -Guatemala OUG- y actualmente se encuentra trabajando en Pythian. Deiby es el Oracle Certified Master 11g más joven en América Latina (certificación obtenida a los 24 años) y el # 301 en el mundo de esta certificación. Deiby apareció en la edición Nov/Dec 2014 de Oracle Magazine.

|
| Cesar.jpg |

CESAR HERNANDEZ

Arquitecto de software con +7 años de experiencia en proyectos Java EE y SE en el sector de gobierno y privado. Ingeniero en Ciencias y Sistemas con Maestría en Gerencia de Sistemas de Información y posgrado en Ingeniería Administrativa. Oracle Certified Professional, Java SE 6 Programmer, Solution Architect TATA Solución TCS, revisor técnico para Manning Publications Co. Miembro del grupo de usuarios Java en Guatemala (www.guate-jug.net) y en Grupo de Usuarios Oracle de Guatemala. Blogger de TI en http://cesarhernandezgt.blogspot.com. Escritor de artículos para OTN América Latina, conferencista regular en eventos de grupos de usuarios Java y OTN América Latina. Baterista de la banda no-oficial de la comunidad Java: The Null Pointers. Sus publicaciones, seminarios y más información en Twitter: @CesarHgt

|
| German.jpg |

GERMAN ORDOÑEZ

Ingeniero de Sistemas de la Universidad Nacional de Colombia, Especialista en Gerencia de Proyectos de la Universidad del Rosario, con más de 12 años de experiencia en Administración de bases de datos Oracle. Consultor técnico de soluciones de Information Management en Dell Software, gestor en Latinoamérica de iniciativas de mejoramiento de productos TOAD, liderando la implantación de las soluciones para bases de datos en plataformas Oracle, SQL Server, DB2, y Sybase desde hace más de 7 años, más de tres años consecutivos conferencista invitado para OTN Tour.

|
| gerber.jpg |

GERBER BAUTISTA

Ingeniero en Ciencias y Sistema de la Universidad de San Carlos Guatemala, MBA por parte de la Universidad Rafael Landivar, con más de 6 años de experiencia en tecnología Oracle especializado en temas de base de datos, Certificaciones en Oracle: OCP 11g, Golden Gate y otras. Experiencia con software bases de datos versiones 7i a 12c características y opciones como Data Guard, RAC, Advanced Compression entre otros. Experiencia en migración y administración a Oracle Exadata.

|
|

OTN_Heli.jpg

|

HELI HELSKYAHO

Tiene una maestría en Ciencias de la computación de la Universidad Helsinki y es especialista en Bases de Datos. Heli es también Oracle ACE Director y una conferencista de talla internacional. Ella ha trabajado en la industria de la Informática desde 1990 he inició a trabajar con productos Oracle desde 1993. Ella ha trabajado en varias posiciones dentro de las compañías en las que ha estado pero todas ellas tienen en común que han sido relacionadas al diseño de las Bases de Datos. Heli empezó a enfocarse más en el diseño y arquitectura de las bases de datos Oracle desde 1996 y al modelado de datos desde el 2010. Ella es actualmente eChief Executive Officer en Miracle Finland Oy. Heli cree fuertemente que un buen diseño de la arquitectura y una buena documentación de la misma reduce problemas de rendimiento y hace que los mismos se resuelvan más fácilmente. El libro de Heli “Oracle SQL Developer Data Modeler for Database Design Mastery” ha sido publicado en Mayo del 2015 bajo la editorial McGraw Hill y puede ser adquirido en Amazon y en cualquier librería de Bases de Datos del mundo.

|
|

OTN_Edward.jpg

|

EDWARD ROSKE

Oracle ACE Director, es co-fundador y CEO de la compañía “interRel Consulting” (www.interrel.com) y co-autor de una de las series de Hyperion más vendidas llamada “Look Smarter than you are with Hyperion”. Edward es muy conocido en el mundo por su ingenio y su gran habilidad para trabajar con Oracle EPM/BI. “Oracle Corporation” esta enviando a Edward a Europa, América, India y Asia para que comparta el conocimiento que posee sobre Oracle EPM/BI. Aunque Edward está feliz por haber sido la primer persona en todo el mundo en obtener un punteo perfecto (100%) en el examen de certificación de Essbase, él esta más orgulloso de haber Ganado el premio “Speaker of the year” (Conferencista del Año) en el evento KSCOPE13. Puedes seguir a Edward Roske en Twitter a través del usuario @ERoske.

|
| jeff.jpg |

JEFF DEVIES

Es Gerente Principal de Productos de Oracle que se especializa en Oracle Public Cloud y productos móviles. Él es el autor del libro The Definitive Guidefor SOA: Oracle Service Bus. Tiene más de 25 años de experiencia en el campo del software y ha desarrollado aplicaciones de retail, como "Act!" para Plataformas Windows y Macintosh y así como otras aplicaciones disponibles en el mercado. Ha trabajado como arquitecto, desarrollador y dirige su propia empresa de consultoría desde hace algunos años.

|
| Bruno.jpg |

BRUNO BORGES

Bruno Borges es Gerente de Producto de Oracle responsable de Oracle Fusion Middleware, Java y servicios en la nube, además también representa a los desarrolladores Java y Oracle Cloud en las comunidades. Él cubre temas de Java Embedd, Java SE, Java EE y JavaFX. Borges tiene más de 15 años de experiencia como desarrollador de Java en varias áreas que cubren desde móvil hasta aplicaciones empresariales.

|
| Morgan.jpg |

DANIEL MORGAN

Es Oracle ACE Director con más de 25 años de experiencia de trabajo con los productos de Oracle. Morgan escribió el plan de estudios de Oracle para la Universidad de Washington, fue instructor principal del programa durante 10 años y es fundador del sitio web MorgansLibrary.org. Además de su trabajo académico en la Universidad de Washington, Sr. Morgan impartió enseñanza de Oracle en la Universidad de Harvard, Universidad de Oslo (Noruega), Universidad de Canterbury (Nueva Zelanda) y asesoró el programa de extensión de la Universidad de California en Berkeley. Ha trabajado en Canadá, Japón, México, Reino Unido e impartido seminarios y conferencias en Brasil, Bulgaria, Chile, China, Costa Rica, Dinamarca, Ecuador, Estonia, Finlandia, Alemania, Letonia, Países Bajos, Nueva Zelanda, Noruega, Panamá, Perú, Serbia, Suecia, Tailandia, Reino Unido y Uruguay.

|
| Anton.jpg |

ANTON ELS

Anton es actualmente el Vicepresidente de Desarrollo de Producto en Dbvisit Software Limited. Él ha estado trabajando con la tecnología de base de datos Oracle desde Oracle versión 7 y se ha implementado con éxito muchos proyectos de pequeña a gran escala. Él disfruta de los desafíos técnicos. Sus áreas de interés incluyen la virtualización, Linux, Standby bases de datos Oracle, backup y recuperación por nombrar unos pocos. Anton es Oracle Database 11g Certified Master y ha colaborado y presentado en NZOUG. Sus otros títulos incluyen Oracle 8i 11g OCP así como las certificaciones en la administración de Solaris y Red Hat.

|
| ROST.jpg |

BJOERN ROST

Es Oracle ACE Director y cofundador de Sistemas portrix, un proveedor de servicios y empresa de consultoría enfocada en Oracle Technology incluyendo servidores, almacenamiento, Oracle Linux, Solaris y Real Application Cluster. Le gusta trabajar con los desarrolladores de software e integrar estrechamente con las características de Oracle existentes, supervisa la operación para una serie de plataformas en la nube y plataformas como servicio y es consultor en servicios de alta disponibilidad, optimización del rendimiento del sistema operativo y de gestión de base de datos. Él es un apasionado compartiendo conocimientos y es ponente habitual en conferencias de grupos de usuarios de todo el mundo con más de 42 presentaciones en los cinco continentes. También se desempeña como presidente del grupo RAC de IOUG.

|
| Stuardo.jpg |

STUARDO DEL AGUILA

El Ingeniero Stuardo Enrique Del Aguila Padilla, es un profesional egresado de la Universidad de San Carlos de Guatemala en la carrera de Ingeniería en Ciencias de la Computación y Sistemas de Información, se graduó también de la Maestría de Administración de Negocios (MBA) en la Escuela de Alta Gerencia de la Asociación de Gerentes de Guatemala, ubicada en la Universidad Mesoamericana. Cuenta con experiencia desde 1,994 en la administración, consultoría y soporte de tecnología Oracle. Se desempeña como Gerente de Consultoría de la empresa IT Solutions, la cual es una de las 2 empresas en Guatemala socias de negocio de Oracle Corporation que tienen la capacidad de brindar soporte y consultoría de productos Oracle localmente. El Ing. Del Aguila es catedrático del área de Ingeniería de Software de la Universidad Mesoamericana, fue catedrático de los cursos del área de base de datos en la Universidad Landivar y ha participado como conferencista en múltiples eventos relacionados con tecnología Oracle.

|
| Daniel (1).jpg |

DANIEL ORELLANA

Profesional con más de 10 años de experiencia en temas de diseño, planificación y ejecución de campañas de Mercado, pionero en Guatemala en campañas de mercadeo orientado y segmentado en Facebook. Con más de 2,000 proyectos entregados, entre aplicaciones para Facebook, campañas en redes sociales, páginas web, Social Games, aplicaciones móviles, identidad de marca y producción de video entre otras, con conocimiento de las necesidades del cliente y traducción de las mismas en proyectos exitosos. Primera persona en Centro América certificada en el RoadMap de Oracle Service Cloud (RightNow) y con más de 11 especializaciones en servicios Oracle basados en Customer Experience, Modern Marketing, entre otros.

|
| Anibal.jpg |

ANIBAL GARCIA

Es especialista en Base de Datos con más de 18 años de experiencia reconocida en proyectos de tecnología . Profesional inmerso en la Base de Datos ORACLE con soluciones en VLDB , OLAP , Alta disponibilidad , replicación avanzada y recuperación de desastres. Miembro de la Comunidad Oracle Hispana, miembro de la junta directiva del Grupo de Usuarios Oracle en Guatemala y autor de las Crónicas de un DBA.

|
| Munz.jpg |

FRANK MUNZ
Es un experto en Middleware y Computación Distribuida. Él obtuvo grado de "Doctor (Ph.D.)" en Ciencias de la computación de la Universidad de Tecnología "München" en Alemania después de su trabajo de investigación sobre computación distribuida y creación de imágenes médicas en investigaciones del cerebro usando tecnología de punta. Él ha publicado más de 20 trabajos de investigación. En el año 2011 Frank Recibió el premio de “Tecnólogo del Año” directamente desde "Oracle Corporation" por sus contribuciones a “Computación en la nube” , así también recibió el reconocimiento de “Oracle ACE Director” en el año 2013 por su desempeño en la comunidad, que aún hoy por hoy lo sigue realizando a través de sus consultorías como consultor independiente.
Frank tiene alrededor de 15 años de experiencia trabajando con Proveedores Líderes en productos Middleware tales como ConSol, Sun, BEA, TIBCO y Oracle. También ha trabajado en Europa y Australia como un Arquitecto de Software, Project Manager y Desarrollador. En el año 2007 Frank fundó “Munz & More”, un enfoque de consultoría que se basa únicamente en Middleware y Cloud Computing (http://www.munzandmore.com) . Después de una basta experiencia acumulada trabajando con los principales proveedores de productos Middleware en todo el mundo, hoy por hoy ofrece sus propios cursos técnicos en Cloud Computing, Oracle Fusion Middleware, Arquitectura de Oracle WebLogic y Administración, Desarrollo con Oracle Service Bus 11g. A Frank le encanta compartir su conocimiento y es un conferencista frecuente en eventos de Oracle de talla mundial. Cuando Frank no está trabajando, lo puedes encontrar viajando en el sureste de Asia, Escalando montañas, Andando de “*tapas” en España o simplemente buceando en Australia.

*"”Ir de tapas", es la práctica de recorrer varios bares y; comer y tomar en cada uno de ellos.

|
|

Oracle-logo.pnglogo2013p.pngScreen Shot 2015-07-29 at 11.37.10 AM.pngScreen Shot 2015-07-15 at 10.16.16 AM.pngScreen Shot 2015-07-15 at 10.16.09 AM.pngDAtum logo (1).jpgScreen Shot 2015-07-15 at 10.20.39 AM.png

|

Comments

Dom Brooks

You could use either the view name/alias in the index hint or view.table or use the query block qualifier n the hint.

https://docs.oracle.com/cd/E11882_01/server.112/e41573/hintsref.htm#PFGRF50104

https://docs.oracle.com/cd/E11882_01/server.112/e41573/hintsref.htm#PFGRF50107

For example:

drop table t1;

drop view v1;

create table t1

as

select rownum rn, o.* from dba_objects o;

alter table t1 modify rn not null;

create unique index i1 on t1 (rn);

create or replace view v1 as select * from t1;

explain plan for

select /*+ index(t1 i1) */ *

from  v1;

select * from table(dbms_xplan.display);

Plan hash value: 3617692013

--------------------------------------------------------------------------

| Id  | Operation        | Name | Rows  | Bytes | Cost (%CPU)| Time    |

--------------------------------------------------------------------------

|  0 | SELECT STATEMENT  |      |  126K|    26M|  468  (1)| 00:00:06 |

|  1 |  TABLE ACCESS FULL| T1  |  126K|    26M|  468  (1)| 00:00:06 |

--------------------------------------------------------------------------

explain plan for

select /*+ index(v1 i1) */ *

from  v1;

select * from table(dbms_xplan.display);

Plan hash value: 998099937

------------------------------------------------------------------------------------

| Id  | Operation                  | Name | Rows  | Bytes | Cost (%CPU)| Time    |

------------------------------------------------------------------------------------

|  0 | SELECT STATEMENT            |      |  126K|    26M|  2352  (1)| 00:00:29 |

|  1 |  TABLE ACCESS BY INDEX ROWID| T1  |  126K|    26M|  2352  (1)| 00:00:29 |

|  2 |  INDEX FULL SCAN          | I1  |  126K|      |  272  (1)| 00:00:04 |

------------------------------------------------------------------------------------

explain plan for

select *

from  v1;

select * from table(dbms_xplan.display(format => 'ALL'));

--------------------------------------------------------------------------

| Id  | Operation        | Name | Rows  | Bytes | Cost (%CPU)| Time    |

--------------------------------------------------------------------------

|  0 | SELECT STATEMENT  |      |  126K|    26M|  468  (1)| 00:00:06 |

|  1 |  TABLE ACCESS FULL| T1  |  126K|    26M|  468  (1)| 00:00:06 |

--------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):

-------------------------------------------------------------

  1 - SEL$F5BB74E1 / T1@SEL$2

  ...

explain plan for

select /*+ index(T1@SEL$2 i1) */ *

from  v1;

select * from table(dbms_xplan.display);

Plan hash value: 998099937

------------------------------------------------------------------------------------

| Id  | Operation                  | Name | Rows  | Bytes | Cost (%CPU)| Time    |

------------------------------------------------------------------------------------

|  0 | SELECT STATEMENT            |      |  126K|    26M|  2352  (1)| 00:00:29 |

|  1 |  TABLE ACCESS BY INDEX ROWID| T1  |  126K|    26M|  2352  (1)| 00:00:29 |

|  2 |  INDEX FULL SCAN          | I1  |  126K|      |  272  (1)| 00:00:04 |

------------------------------------------------------------------------------------

explain plan for

select /*+ index(v1.t1 i1) */ *

from   v1;

select * from table(dbms_xplan.display);

Plan hash value: 998099937

------------------------------------------------------------------------------------

| Id  | Operation                   | Name | Rows  | Bytes | Cost (%CPU)| Time     |

------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT            |      |   126K|    26M|  2352   (1)| 00:00:29 |

|   1 |  TABLE ACCESS BY INDEX ROWID| T1   |   126K|    26M|  2352   (1)| 00:00:29 |

|   2 |   INDEX FULL SCAN           | I1   |   126K|       |   272   (1)| 00:00:04 |

------------------------------------------------------------------------------------

Martin Preiss

I guess that the rownum predicate (srn) in the view definition prevents the predicate pushing: so the plan shows a full table scan (step 3) then a count operation (step 2) and then the filtering of results. Without the rownum column in the view I would expect the index access to take place.

Martin Preiss

and to add an example:

drop table t;

drop view v1;

drop view v1;

create table t

as

select rownum id

    , lpad('*', 50, '*') col1

  from dual

connect by level <= 1000;

create index t_idx on t(id);

create view v1

as

select t.*

  from t;

create view v2

as

select rownum rn

    , t.*

  from t;

explain plan for

select * from v1 where id = 1;

select * from table(dbms_xplan.display);

---------------------------------------------------------------------------------------------

| Id  | Operation                           | Name  | Rows  | Bytes | Cost (%CPU)| Time     |

---------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT                    |       |     1 |    55 |     2   (0)| 00:00:01 |

|   1 |  TABLE ACCESS BY INDEX ROWID BATCHED| T     |     1 |    55 |     2   (0)| 00:00:01 |

|*  2 |   INDEX RANGE SCAN                  | T_IDX |     1 |       |     1   (0)| 00:00:01 |

---------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

   2 - access("T"."ID"=1)

explain plan for

select * from v2 where id = 1;

select * from table(dbms_xplan.display);

----------------------------------------------------------------------------

| Id  | Operation           | Name | Rows  | Bytes | Cost (%CPU)| Time     |

----------------------------------------------------------------------------

|   0 | SELECT STATEMENT    |      |  1000 | 53000 |     3   (0)| 00:00:01 |

|*  1 |  VIEW               | V2   |  1000 | 53000 |     3   (0)| 00:00:01 |

|   2 |   COUNT             |      |       |       |            |          |

|   3 |    TABLE ACCESS FULL| T    |  1000 | 55000 |     3   (0)| 00:00:01 |

----------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

  1 - filter("ID"=1)

I think it's quite plausible that the "correct" rownum has to be gathered before the filtering has been done. Of course "correct" is quite pointless in a result without a defined order.

Deepak Mahto

Just an Observations..!!

Frankly speaking, need of hint should not have be arise.

Very important difference for both plan were "CARDINALITY" estimates for same filter!!

With out hint :: FULL Table Scan..

---------------------------------------------------------------------------------------------------

| Id  | Operation              | Name                     | Rows  | Bytes | Cost (%CPU)| Time     |

---------------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT       |                          |  9056K|  5648M| 97644   (1)| 00:00:04 |

|*  1 |  VIEW                  | CR_LEDGER_REP_V          |  9056K|  5648M| 97644   (1)| 00:00:04 |

|   2 |   COUNT                |                          |       |       |            |          |

|   3 |    MAT_VIEW ACCESS FULL| ITGI_CREDITOR_LEDGER_CMV |  9056K|  2159M| 97644   (1)| 00:00:04 |

---------------------------------------------------------------------------------------------------

Cardinality estimate is 9056K rows, so obviously Full table options would have been  better option for optimizer.


on the other hand for Index Access path :


--------------------------------------------------------------------------------------------------------------------

| Id  | Operation                              | Name                      | Rows  | Bytes | Cost (%CPU)| Time     |

--------------------------------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT                       |                           |    21 |  5880 |    21   (0)| 00:00:01 |

|   1 |  MAT_VIEW ACCESS BY INDEX ROWID BATCHED| ITGI_CREDITOR_LEDGER_CMV  |    21 |  5880 |    21   (0)| 00:00:01 |

|*  2 |   INDEX RANGE SCAN                     | ITGI_CREDITOR_LEDGER_INDX |    22 |       |     3   (0)| 00:00:01 |

--------------------------------------------------------------------------------------------------------------------

Cardinality estimate for same filter change to  22., that an huge change difference as compare to what were for FTS (Full table Scan)

Please check below, before enforcing hints!

1. Whether underlying stats were different for both executions.

2. Stats on component involve (Index, MVIEW table)

3. Underlying table in View on MVIEW is from other Schema and what your accessing directly is in different Schema..!!

i.e. we are accessing different objects for both different cases?? (Most imp!)

AndrewSayer
Answer

Note that the query plan against the view is only applying your filter predicates at line 1 rather than against the mview at line 3. Line 2 is telling you that the execution must evaluate some sort of count before it can filter which is due to the rownum pseudocolumn in your view.

Do you need that column? In my opinion it is meaningless. Removing the column from the view would mean that the view does not need to be evaluated in its entirety (how else will it calculate rownums?) before allowing you to filter. The work around you asked the developer to implement is likely coming up with a different sr_no value (if the developer is even using this?) than what he would have obtained using the view.

Is the column trying to make up a unique key for the view? Are you aware that rownum values can and will change between queries to the same table as the order the rows are selected is not guaranteed. If the column is actually useful (and it is correct to calculate it at this level) to you then could it make sense to have it calculated inside the mview? This would mean that you can only refresh the mview completely and rownum values can (and will) only change upon refresh.

Marked as Answer by gaurav · Sep 27 2020
Martin Preiss

no, this is not a statistics problem (though most access problems are): it's just a problem with predicate pushing and non-mergeable views using a rownum attribute - as I demonstrated in my example. And it is indeed not unlikely that the rownum attribute is quite meaningless.

Deepak Mahto

Thanks Sir...!! For correcting me.!!

Also found a link from ask tom... explaining same..

https://asktom.oracle.com/pls/apex/f?p=100:11:0::NO::P11_QUESTION_ID:3469884600671

gaurav

Thanks for your reply.

Do you need that column?

-- Yes, the developer needs the rownum column even if it changes due to requirement in java persistence( I don't know what that means) to have any unique column as we dont have any primary key or unique key.

Is the column trying to make up a unique key for the view?

-- Yes


If the column is actually useful (and it is correct to calculate it at this level) to you then could it make sense to have it calculated inside the mview?

-- Do you mean to say that I calculate it inside the mview in a column and then access it using view ?


Regards,

Gaurav


gaurav

UPDATE:

If the column is actually useful (and it is correct to calculate it at this level) to you then could it make sense to have it calculated inside the mview?

-- if you mean to have it calculated inside the mview, but the mview contains unionall. if I use the whole query as subquery, it will reduce the performance I believe. ( I haven't tested yet)



gaurav

Thanks to Martin Preiss and Andrew Sayer, the issue is resolved.

I have created mview as follows to deal with union all rownum duplicacy, and used it in a view query

create ITGI_CREDITOR_LEDGER_CMV as

select rownum sr_no, c.*
from (

mvview query1

union all

mview query2) c;


Now they query does index scan instead of full table scan.

I cannot mark is as answered as actions button not working for me.


Regards,

Gaurav

1 - 10

Post Details

Added on Jun 15 2015
0 comments
1,723 views