亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 7318 | 回復(fù): 1
打印 上一主題 下一主題

一個(gè)逆向思維的優(yōu)化SQL的方法 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-09-14 18:00 |只看該作者 |倒序?yàn)g覽

REPORT z_scm_gr_his .
TABLES: ekko,ekbe.
CONSTANTS : once TYPE i VALUE 100000.
TYPES: BEGIN OF ty_ekbe ,
         ebeln LIKE ekbe-ebeln ,
         ebelp LIKE ekbe-ebelp ,
         dmbtr LIKE ekbe-dmbtr ,
         bewtp LIKE ekbe-bewtp , "E Q
         shkzg LIKE ekbe-shkzg , "借貸
         arewr LIKE ekbe-arewr ,
       END OF ty_ekbe.
DATA: hs_ekbe TYPE HASHED TABLE OF ty_ekbe
        WITH UNIQUE KEY ebeln ebelp bewtp shkzg WITH HEADER LINE .
DATA: wa LIKE LINE OF hs_ekbe.
TYPES: BEGIN OF ty_ekbe_sum ,
         mandt LIKE sy-mandt ,
         ebeln LIKE ekbe-ebeln ,
         ebelp LIKE ekbe-ebelp ,
*         dmbtr LIKE ekbe-dmbtr ,
       END OF ty_ekbe_sum.
DATA: hs_ekbe_sum TYPE HASHED TABLE OF ty_ekbe_sum
        WITH UNIQUE KEY mandt ebeln ebelp WITH HEADER LINE .
DATA: itab_ekbe_sum TYPE STANDARD TABLE OF ty_ekbe_sum
      WITH HEADER LINE .
DATA: wa_sum LIKE LINE OF hs_ekbe_sum.
DATA: BEGIN OF itab_gr OCCURS 0 ,
        belnr LIKE ekbe-belnr ,
        ebeln LIKE ekbe-ebeln ,
        ebelp LIKE ekbe-ebelp ,
      END OF itab_gr .
DATA: tmpebeln LIKE ekpo-ebeln.
DATA: n TYPE i ,
      m LIKE sy-tabix.
DATA: linenum  LIKE sy-tabix,
      fromnum  LIKE sy-index,
      tonum    LIKE sy-index.
DATA :
  v_t1    TYPE i,
  v_t2    TYPE i,
  v_time  TYPE i.
SELECT-OPTIONS: s_budat FOR ekbe-budat .
PARAMETERS:     mode .
START-OF-SELECTION.
  SELECT ekbe~ebeln ekbe~ebelp bewtp shkzg dmbtr arewr
  INTO CORRESPONDING FIELDS OF wa
  FROM ekbe
  WHERE ekbe~bewtp IN ('E','Q') AND
        ekbe~budat IN s_budat .
    IF wa-bewtp = 'Q' .
      wa-dmbtr = 0 - wa-arewr .
      wa-bewtp = 'E'.
    ENDIF.
    IF wa-shkzg = 'H'.
      wa-dmbtr = 0 - wa-dmbtr .
      wa-shkzg = 'S'.
    ENDIF.
    COLLECT wa INTO hs_ekbe.
  ENDSELECT.
*  DELETE hs_ekbe_sum WHERE dmbtr = 0.
  DELETE hs_ekbe WHERE dmbtr = 0.
  LOOP AT hs_ekbe INTO wa .
    MOVE-CORRESPONDING wa TO wa_sum.
    wa_sum-mandt = sy-mandt .
    COLLECT wa_sum INTO hs_ekbe_sum .
  ENDLOOP.
  IF mode = '1'.
    GET RUN TIME FIELD v_t1.
    SELECT belnr ebeln ebelp INTO TABLE itab_gr
    FROM ekbe
    FOR ALL ENTRIES IN hs_ekbe
    WHERE ebeln = hs_ekbe-ebeln AND
          ebelp = hs_ekbe-ebelp .
    GET RUN TIME FIELD v_t2.
    v_time = v_t2 - v_t1.
    WRITE v_time.
  ELSE.
    GET RUN TIME FIELD v_t1.
    EXEC SQL.
      TRUNCATE TABLE ZSCM_GR_PO_TMP
    ENDEXEC.
**********************插入方法一
*    CLEAR n.
*    LOOP AT hs_ekbe.
*      m = m + 1 .
*      EXEC SQL.
*        INSERT INTO ZSCM_GR_PO_TMP (MANDT,EBELN,EBELP)
*          VALUES (:SY-MANDT,
*                  :hs_ekbe-ebeln,
*                  :hs_ekbe-ebelp)
*      ENDEXEC.
*      n = m MOD once.
*      IF n = 0.
*        n = 0 .
*        EXEC SQL.
*          commit work
*        ENDEXEC.
*      ENDIF.
*    ENDLOOP.
*    EXEC SQL.
*      commit work
*    ENDEXEC.
*******************************方法二,優(yōu)化Insert
    DESCRIBE TABLE hs_ekbe_sum LINES linenum.
    n = linenum DIV once.
    n = n + 1.
    DO n TIMES.
      itab_ekbe_sum[] = hs_ekbe_sum[].
      fromnum = sy-index * once + 1 .
      DELETE itab_ekbe_sum FROM fromnum TO linenum.
      IF sy-index > 1 .
        tonum = fromnum - once - 1 .
        DELETE itab_ekbe_sum FROM 1 TO tonum.
      ENDIF.
      INSERT zscm_gr_po_tmp FROM TABLE itab_ekbe_sum .
      COMMIT WORK.
    ENDDO.
    SELECT belnr ekbe~ebeln ekbe~ebelp INTO TABLE itab_gr
    FROM ekbe INNER JOIN zscm_gr_po_tmp ON
                ekbe~ebeln = zscm_gr_po_tmp~ebeln AND
                ekbe~ebelp = zscm_gr_po_tmp~ebelp.
    GET RUN TIME FIELD v_t2.
    v_time = v_t2 - v_t1.
    WRITE v_time.
  ENDIF.
  SORT itab_gr BY belnr.
  DELETE ADJACENT DUPLICATES FROM itab_gr COMPARING belnr.


本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u1/48634/showart_381980.html

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2024-03-21 08:54 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP