Repensando a Web com Rails
Pueden leer más sobre el libro en el sitio oficial Balance on Rails.
Desde aquí, un fuerte abrazo y muchas felicitaciones para Fabio y Piers! -;)
Saludos,
Blag.
Pueden leer más sobre el libro en el sitio oficial Balance on Rails.
Desde aquí, un fuerte abrazo y muchas felicitaciones para Fabio y Piers! -;)
Saludos,
Blag.
REPORT Z_DUMMY_ATG NO STANDARD PAGE HEADING.
NEW-PAGE PRINT ON NO DIALOG KEEP IN SPOOL ‘X’.
WRITE:/ ‘Fecha: ‘, SY-DATUM.
WRITE:/ ‘Hora: ‘, SY-UZEIT.
WRITE:/ ‘Mandante: ‘, SY-MANDT.
WRITE:/ ‘Usuario: ‘, SY-UNAME.
WRITE:/ ‘Transacción: ‘, SY-TCODE.
NEW-PAGE PRINT OFF.
Saludos,
Blag.
REPORT Z_DUMMY_ATG_3 NO STANDARD PAGE HEADING.
DATA: FILTER(3) TYPE C,
TEMP_EXT TYPE STRING,
LONG TYPE I,
W_TABIX TYPE SY-TABIX,
DIR(200) TYPE C.
DATA: T_FILE_TABLE TYPE STANDARD TABLE OF SDOKPATH
WITH HEADER LINE,
T_DIR_TABLE TYPE STANDARD TABLE OF SDOKPATH
WITH HEADER LINE.
FILTER = ‘txt’.
DIR = ‘C:’.
CALL FUNCTION ‘TMP_GUI_DIRECTORY_LIST_FILES’
EXPORTING
DIRECTORY = DIR
TABLES
FILE_TABLE = T_FILE_TABLE
DIR_TABLE = T_DIR_TABLE
EXCEPTIONS
CNTL_ERROR = 1
OTHERS = 2.
LOOP AT T_FILE_TABLE.
LONG = STRLEN( T_FILE_TABLE-PATHNAME ).
LONG = LONG - 3.
TEMP_EXT = T_FILE_TABLE-PATHNAME+LONG(3).
IF TEMP_EXT NE FILTER.
W_TABIX = SY-TABIX.
DELETE T_FILE_TABLE INDEX SY-TABIX.
ELSE.
WRITE:/ T_FILE_TABLE-PATHNAME.
ENDIF.
ENDLOOP.
Saludos,
Blag.
REPORT Z_DUMMY_ATG NO STANDARD PAGE HEADING.
TABLES: BKPF, BSEG.
DATA: T_BKPF TYPE STANDARD TABLE OF BKPF
WITH HEADER LINE,
T_BSAK TYPE STANDARD TABLE OF BSAK
WITH HEADER LINE.
DATA: RT_STR TYPE I,
RT_END TYPE I,
RUN_TIME1 TYPE P DECIMALS 2,
RUN_TIME2 TYPE P DECIMALS 2.
SELECT *
INTO TABLE T_BKPF
FROM BKPF.
IF NOT T_BKPF[] IS INITIAL.
GET RUN TIME FIELD RT_STR.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE T_BSAK
FROM BSAK
FOR ALL ENTRIES IN T_BKPF
WHERE BELNR EQ T_BKPF-BELNR.
GET RUN TIME FIELD RT_END.
RUN_TIME1 = ( RT_END - RT_STR ) / 1000000 .
ENDIF.
WRITE: ‘Runtime para FOR ALL ENTRIES’, RUN_TIME1.
CLEAR: T_BKPF,T_BSAK.
REFRESH: T_BKPF,T_BSAK.
GET RUN TIME FIELD RT_STR.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE T_BSAK
FROM ( BKPF INNER JOIN BSAK
ON BKPF~BELNR = BSAK~BELNR ).
GET RUN TIME FIELD RT_END.
RUN_TIME2 = ( RT_END - RT_STR ) / 1000000 .
WRITE:/ ‘Runtime para JOIN’, RUN_TIME2.
Analicemos los resultados…
Prueba 1:
———
Runtime para FOR ALL ENTRIES 0.12
Runtime para JOIN 0.02
Prueba 2:
———
Runtime para FOR ALL ENTRIES 0.10
Runtime para JOIN 0.01
Prueba 3:
———
Runtime para FOR ALL ENTRIES 0.11
Runtime para JOIN 0.02
Claramente, el INNER JOIN supera al FOR ALL ENTRIES…Y por mucho…
Saludos,
Blag.