Posts

Showing posts with the label fullscan

FULL TABLE SCAN-Oracle no quiere utilizar mi índice

Image
Quizás esta imagen les sea conocida, 7 ó 12 personas apiladas detrás del DBA de turno viendo su pantalla, preguntando que sucede o haciendo suposiciones, te llaman para que apoyes, llegas, te abres paso entre la multitud de jefes y lo primero que vez es una gran franja azul en el Cloud Control (OEM), luego de dos clic en el OEM o tres consultas al ASH, es evidente que una consulta SQL está realizando muchísimas lecturas a disco. Un desarrollador refuta que la tabla tiene un índice por el campo búsqueda en el WHERE, sin embargo, la Base de Datos decide hacer Table Full Scan. ¿Por qué está pasando esto? Comencemos: Consulta SQL que está generando afectación: SELECT ID_EMBRQ FROM DIST_EMBARQUE_OPER WHERE ID_EMBRQ =:1; Podemos observar que el campo "ID_EMBRQ" es de tipo VARCHAR2 Column Type Name Data DATA_LENGTH N POS -------------------------------- ------------ ----------- - ---- ID_EMBRQ

Indexes and Functions - 01

The user said me that the table has a index in the date column that he used in his query SQL but is too slow. That is true, this table ( TB_EVENTS ) has an index in date type column ( EVNT_PK ).  SQL> SELECT TABLE_NAME , COLUMN_NAME , DATA_TYPE FROM DBA_TAB_COLUMNS WHERE TABLE_NAME = 'TB_EVENTS' AND COLUMN_NAME = 'EVENT_DATE' ; TABLE_NAME                     COLUMN_NAME                      DATA_TYPE ------------------------------ -------------------------------- ------------ TB_EVENTS                      EVENT_DATE                       DATE SQL> SELECT COL . INDEX_NAME ,    COL . COLUMN_NAME   FROM SYS . DBA_IND_COLUMNS COL   WHERE OWNER = 'PSP' AND INDEX_NAME = 'EVNT_PK' ; INDEX_NAME                     COLUMN_NAME ------------------------------ -------------------------------- EVNT_PK                        EVENT_DATE Ok, He use EVENT_DATE column in the WHERE but also use TO_CHAR function in