Please help me optimize this

1. This code fragment:
declare
procedure t(ent in varchar)
is
begin
for reg in (
select
/*+nocache*/
opds_psap_numero,
min(opds_data_inicio_tarde) as opds_data_inicio_tarde
from operacoes_diagrama_sap, projeto_sap
where
opds_psap_numero = psap_numero and
psap_pep like ent
group by
opds_psap_numero
) loop
dbms_output.put_line('just teste');
end loop;
end;
begin
t('PR42E-075001%');
end;
Execution Time
***SCRIPT START 29-mar-2007 17:33:25 ***
***SCRIPT END 29-mar-2007 17:35:13 ***
Time = 2 minutes (aprox)
==============================================
2. But this code fragment (the same as before but with static sql):
declare
procedure t(ent in varchar)
is
begin
for reg in (
select
/*+nocache*/
opds_psap_numero,
min(opds_data_inicio_tarde) as opds_data_inicio_tarde
from operacoes_diagrama_sap, projeto_sap
where
opds_psap_numero = psap_numero and
psap_pep like 'PR42E-075001%'
group by
opds_psap_numero
) loop
dbms_output.put_line('just teste');
end loop;
end;
begin
t('PR42E-075001%');
end;
Execution Time
***SCRIPT START : 29-mar-2007 17:39:29***
***SCRIPT END 29-mar-2007 17:39:30***
Time 1 sec
================================================
I need the code of the first example (I must pass an 'in" parameter to the procedure), but with performance of the second.
This query runs very fast when posted in sqlnavigator.
it returns approx 1000 lines and i have an index at projeto_sap.psap_pep field
What am i doing wrong?
Please if you dont understand let me know. English is not my first language. From hot Brazil hehe

Your second fragment has a string literal 'PR42E-075001%' for the LIKE operator in your WHERE clause. The first fragment uses a PL/SQL parameter, effectively a bind variable.
The optimizer can choose the index for the second fragment because it knows the index will be effective. But the first fragment could have any value for the variable. The optimizer chooses a path that is best for "any value" AND YOU WIND UP WITH A PLAN THAT ...
Hmm, I hit the caps lock by accident there, but it seems strangely appropriate.
Anyway, you can try adding a hint to your query:
/*+ nocache index( projeto_sap index_name */

Similar Messages

  • Please help me optimize this process?

    I have a process as following, would you please help optimize it if possible?
    SO on FG to plant PltA (SO in sap)
    PltA placed a subcon PO to PltB for subcon. (PO in sap)
    PltB detects shortage of Raw and places a PO to PltA for replenishment (PO & SO in SAP)
    PltA receives PO and places another PO to 3rd vendor for dropship purchasing.... (PO & SO in SAP)
    Then there will be 3 billings from PltA to customer for SO, from PltA to PltB for Raw, from PltB to PltA for FG.....
    eventually, there are 6 orders and 3 billings..........
    Anyone can help to simplify this? I thought about transfer PO, but there is no billing....I need the billing.....
    Thank you!

    ...

  • Please help me optimize this query

    Hi,
    Can you’ll please recommend me if there is any way to optimize the SQL statement below.
    I have 3 tables:
    item_master: contains master list of items
    item_rentout: items currently out on rent
    item_missing: items having special status like missing, withdrawn and so on.
    I want to find items that are currently available.
    Which is items in table item_master –(minus) items in table item_rentout –(minus) items in table in item_missing.
    This is how my sql statement is:
    select item_master.item_id from item_master where item_master.item_id not in
    ((select item_id from item_rentout) union (select item_id from item_missing where status in (‘missing’,withdrawn’)))Regards,
    Raja

    In addition to what Pointless posted (which is very valuable information!) you could always try and write a logical equivalent SQL statement. It may generate a more favorable plan.
    I have written the following that I think may work but they are untested:
    SELECT  ITEM_MASTER.ITEM_ID     FROM ITEM_MASTER
    MINUS
    SELECT  ITEM_ID FROM ITEM_RENTOUT
    MINUS
    SELECT  ITEM_ID FROM ITEM_MISSING WHERE STATUS IN ('missing','withdrawn')
    SELECT  item_master.item_id
    FROM    ITEM_MASTER IM
    WHERE   NOT EXISTS
                    SELECT  NULL
                    FROM    ITEM_RENTOUT IR
                    WHERE   IR.ITEM_ID = IM.ITEM_ID
    AND     NOT EXISTS
                    SELECT  NULL
                    FROM    ITEM_MISSING IIM
                    WHERE   IIM.ITEM_ID = IM.ITEM_ID       
            )

  • Please help me optimize this code..

    i have already checked the indexes of the tables and used the primary keys.
    r_datum-sign = gco_sign_i.
      r_datum-low  = docdate_from.
      IF NOT docdate_to IS INITIAL.
        r_datum-option = gco_option_bt.
        r_datum-high   = docdate_to.
      ELSE.
        r_datum-option = gco_option_eq.
      ENDIF.
      APPEND r_datum.
      CLEAR r_datum.
      r_vbeln-sign = gco_sign_i.
      r_vbeln-low  = docnum_from.
      IF NOT docnum_to IS INITIAL.
        r_vbeln-option = gco_option_bt.
        r_vbeln-high   = docnum_to.
      ELSE.
        r_vbeln-option = gco_option_eq.
      ENDIF.
      APPEND r_vbeln.
      CLEAR r_vbeln.
      process_web_rset salesgroup
                       r_vkgrp
                       gco_sign_i
                       gco_option_eq.
    * Get Total (Confirmed) Qty
      PERFORM get_valid_itemcateg TABLES gr_pstyv.
    * Header
      SELECT   vbak~vbeln
               vbkd~inco1
               vbak~erdat
               vbak~gueen
               vbak~ernam
               vbkd~bstkd
               vbak~kunnr
      APPENDING CORRESPONDING FIELDS OF TABLE lt_hdr
      FROM  vbak INNER JOIN vbkd
      ON  vbak~vbeln EQ vbkd~vbeln
      WHERE vbak~vbeln IN r_vbeln
                    AND  vbak~erdat IN r_datum
                    AND  vbak~vkgrp IN r_vkgrp
                    AND  vbak~kunnr EQ customer
                    AND  vbkd~posnr EQ lv_posnr
      SORT lt_hdr BY vbeln.
      LOOP AT lt_hdr.
    * Customer Name
        SELECT SINGLE  kna1~name1
                 INTO  lv_cusname
                 FROM  kna1
                 WHERE kna1~kunnr EQ lt_hdr-kunnr.
        MOVE lt_hdr-vbeln TO listing-sa.
        MOVE lt_hdr-ernam TO listing-ordered_thru.
        MOVE lt_hdr-bstkd TO listing-po.
        MOVE lt_hdr-kunnr TO listing-customer.
        MOVE lv_cusname TO listing-customer_name.
        MOVE lt_hdr-erdat TO listing-date_created.
        MOVE lt_hdr-gueen TO listing-valid_until.
    CONCATENATE lt_hdr-erdat+6(2) lt_hdr-erdat+4(2) lt_hdr-erdat+0(4) INTO
                       listing-date_created SEPARATED BY '.'.
    CONCATENATE  lt_hdr-gueen+6(2) lt_hdr-gueen+4(2) lt_hdr-gueen+0(4) INTO
                                listing-valid_until SEPARATED BY '.'.
    * Get Mode of Sale
        IF lt_hdr-inco1 EQ 'FOB'.
          listing-incoterms = co_inco1.
        ELSEIF lt_hdr-inco1 EQ 'CIF'.
          listing-incoterms = co_inco2.
        ENDIF.
    * Get Status
        SELECT SINGLE  bezei
                 FROM  tvbst JOIN vbuk
                   ON  tvbst~statu EQ vbuk~gbstk
                 INTO  listing-status
                WHERE  tbnam      EQ co_tbnam
                  AND  spras      EQ co_spras
                  AND  fdnam      EQ co_fdnam
                  AND  vbuk~vbeln EQ listing-sa.
    * Get Ship to party
        SELECT SINGLE  name1
                 FROM  vbpa INNER JOIN kna1
                   ON  vbpa~kunnr = kna1~kunnr
                 INTO  listing-ship_to
                WHERE  vbeln EQ listing-sa
                  AND  posnr EQ lv_posnr
                  AND  parvw EQ 'WE'.
    * Get Plant
        SELECT SINGLE  vbap~werks
                       t001w~name1
                 FROM  vbap INNER JOIN t001w
                   ON  vbap~werks EQ t001w~werks
                 INTO (listing-plant,
                       listing-plant_text)
                WHERE  vbap~vbeln EQ listing-sa
    * Items
        SELECT SINGLE
              a~matnr
              a~pstyv
              b~bmeng
              b~vrkme
      INTO (lv_matnr,
      lv_pstyv,
      lv_bmeng,
      lv_vrkme)
        FROM  vbap AS a INNER JOIN vbep AS b
          ON  a~vbeln = b~vbeln
         AND  a~posnr = b~posnr
       WHERE  a~vbeln = lt_hdr-vbeln
       AND a~posnr EQ co_posnr
       AND a~pstyv IN gr_pstyv
    * Use zshowitem to identify items for display on SO
        lv_convvl = 1.
    *   Convert Quantity
        PERFORM check_conversion USING: lv_bmeng
                                        listing-total_uom
                                        lv_pstyv
                                        lv_vrkme
                                   lv_matnr.  "<<CR002-DEVK944861 ins
        IF listing-total_uom IS INITIAL.
          MOVE lv_vrkme TO listing-total_uom.
        ENDIF.
        IF listing-total_uom IS INITIAL.
          MOVE lv_vrkme TO listing-total_uom.
        ENDIF.
        vl_sum1 = vl_sum1 + lv_bmeng.
    *    ENDLOOP.
        listing-total_qty = vl_sum1.
        REFRESH lv_itab.
        CLEAR: vl_sum1,
               vl_sum2.
    * Scheduling Agreement Item and Served Qty
        SELECT SINGLE
                b~vbeln AS vbeln2
                b~rfmng
                b~meins
      INTO (lv_vbeln2,
            lv_rfmng,
            lv_meins)
          FROM  vbap AS a INNER JOIN vbfa AS b
          ON a~vbeln EQ b~vbelv
          AND a~posnr EQ b~posnv
         WHERE a~vbeln = lt_hdr-vbeln
         AND a~pstyv IN gr_pstyv
         AND b~vbtyp_n EQ co_vbtyp_n.
        IF sy-subrc EQ 0.
    *   Goods Issue Status per Item
          SELECT SINGLE  wbstk
                   FROM  vbuk
                   INTO  vl_drstatus
                  WHERE  vbeln = lv_vbeln2.
    *   Convert Quantity
          PERFORM check_conversion USING: lv_rfmng
                                          listing-served_uom
                                          lv_pstyv
                                          lv_meins
                                   lv_matnr. " <<CR002-DEVK944861 ins
    *   Pass Value
          IF listing-served_uom IS INITIAL.
            MOVE lv_meins TO listing-served_uom.
          ENDIF.
          vl_served_qty = vl_served_qty + lv_rfmng.
          CLEAR: lt_scheditm,
                 vl_drstatus,
                 vl_sum3,
                 vl_meins.
        ENDIF.
        listing-served_qty = vl_served_qty.
        CLEAR vl_served_qty.
    * Append List
        APPEND listing.
        CLEAR: lt_hdr,
               lv_itab,
               lt_scheditm,
               listing,
               vl_datum1,
               vl_datum2,
               vl_sum1,
               vl_sum2,
               vl_sum3.
      ENDLOOP.
      IF sy-subrc <> 0.
        CALL FUNCTION 'BALW_BAPIRETURN_GET2'
             EXPORTING
                  type   = 'W'
                  cl     = 'ZECOM'
                  number = 000
             IMPORTING
                  return = return.
      ELSE.
        CALL FUNCTION 'BALW_BAPIRETURN_GET2'
             EXPORTING
                  type   = 'S'
                  cl     = 'ZECOM'
                  number = 001
             IMPORTING
                  return = return.
      ENDIF.
    ENDFUNCTION.

    As mentioned by others avoid into corresponding fields.
    If you have to join vbak/vbkd then at least try to use
    Sales Organization
    Distribution Channel
    Division
    FOr customer name do n ot select for each document, select for all entries in lt_hdr_aux before the loop where lt_hdr_aux[] = lt_hdr[] with adjacent duplicates by customer deleted and then in the loop use read instead.
    Don't use inner joins on vbap to other tables instead select vbap information for all documents selected and then read.
    etc etc
    Use st05 to review which table accesses are giving you a problem and concentrate first on those taking into account
    - not to retrieve data multiple times e.g. is customer is cust1 for deoc1 and for doc 10 then only retrieve once as detailed above.
    - optimise the actual select statement - no into corresponding, using keys etc

  • I am not able to launch FF everytime i tr to open it, it says FF has to submit a crash report, i even tried doing that and the report was submitted too, but stiil FF did not start, and the problem still persists, please help me solve this issue in English

    Question
    I am not able to launch FF everytime i try to open it, it says FF has to submit a crash report,and restore yr tabs. I even tried doing that and the report was submitted too, but still FF did not start, and the problem still persists, please help me solve this issue
    '''(in English)'''

    Hi Danny,
    Per my understanding that you can't get the expect result by using the expression "=Count(Fields!TICKET_STATUS.Value=4) " to count the the TICKET_STATUS which value is 4, the result will returns the count of all the TICKET_STATUS values(206)
    but not 180, right?
    I have tested on my local environment and can reproduce the issue, the issue caused by you are using the count() function in the incorrect way, please modify the expression as below and have a test:
    =COUNT(IIF(Fields!TICKET_STATUS.Value=4 ,1,Nothing))
    or
    =SUM(IIF(Fields!TICKET_STATUS=4,1,0))
    If you still have any problem, please feel free to ask.
    Regards,
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • Hello, i restored and updated my iphone 4 to the latest version of 5.1.1 and after that when i connect my mobile to i tunes all i see is a big rectangle and a apple logo on left and a small lock on right side please help me fix this problem.

    hello,
    i restored and updated my iphone 4 to the latest version of 5.1.1 and after that when i connect my mobile to i tunes all i see is a big rectangle and a apple logo on left and a small lock on right side please help me fix this problem.

    I sloved this issue by resting my phone from settings>general>reset>reset all settings...the problem will be fixed

  • I bought a movie the movie Godzilla 2014 recently but it didn't show up in my library. I went check the itunes store and it wants me to buy it again. Please help me with this problem.

    I just bought this movie "Godzilla 2014" but it won't show in my Movie Library. I closed my Itunes and put it back on again but still won't show up. I checked my purchased list and it shows that I recently bought the movie but when I checked the itunes store it wants to buy the movie again. Please help me with this right away Apple.

    Apple Store Customer Service at 1-800-676-2775 or visit online Help for more information.
    To contact product and tech support: Contacting Apple for support and service - this includes
    international calling numbers..
    For Mac App Store: Apple - Support - Mac App Store.
    For iTunes: Apple - Support - iTunes.

  • My icloud activation lock is ON my iphone, which requires an activation login to access the homescreen, but when i log in with the apple ID on the phone, it says the apple ID is not meant to unclock this iphone 5 ios 8.0.2. please help me solve this.

    My icloud activation lock is on my iphone, which requires an activation login to access the homescreen, but when i log in with the apple ID on the phone, it says the apple ID is not meant to unclock this iphone 5 ios 8.0.2. please help me solve this.

    Yes the phone belongs to me. It was purchased from United Kingdom Vodafone to West Africa, i had to factory unlock to use any sim in it. so it belongs to me. I did the activation myself, now after updating my iphone to the latest update, it required a user id and password to activate the phone, but anytime i enter the details, it tells me the user Id is not correct but the password is correct..

  • I have upgraded My leopard to Mountain lion 10.7 via snow leapeard. Now My itunes is not working properly nor I able to install google chrome successfully. Please help me in this occasion. I am facing following messages.

    Hello Team,
    I have upgraded My leopard to Mountain lion 10.7 via snow leapeard. Now My itunes is not working properly nor I able to install google chrome successfully. Please help me in this occasion.
    Also, I am not being able to upgrade Mac OS X 10.7 to 10.7.4 or letest for lion.
    I am facing following messages when I open itunes ( I down loaded and install new for 10.7)
    Process:         iTunes [463]
    Path:            /Applications/iTunes.app/Contents/MacOS/iTunes
    Identifier:      com.apple.iTunes
    Version:         10.7 (10.7)
    Build Info:      iTunes-10702101~1
    Code Type:       X86-64 (Native)
    Parent Process:  launchd [273]
    Date/Time:       2012-10-22 23:33:07.226 +0200
    OS Version:      Mac OS X 10.7 (11A390)
    Report Version:  8
    Interval Since Last Report:          4918 sec
    Crashes Since Last Report:           2
    Per-App Crashes Since Last Report:   2
    Anonymous UUID:                      3DE933E2-7A48-4840-91F4-7DC466ED9C26
    Crashed Thread:  0
    Exception Type:  EXC_BREAKPOINT (SIGTRAP)
    Exception Codes: 0x0000000000000002, 0x0000000000000000
    Application Specific Information:
    dyld: launch, loading dependent libraries
    @executable_path/../Frameworks/iPodUpdater.framework/Versions/A/iPodUpdater
    Dyld Error Message:
      Library not loaded: @executable_path/../Frameworks/iPodUpdater.framework/Versions/A/iPodUpdater
      Referenced from: /Applications/iTunes.app/Contents/MacOS/iTunes
      Reason: unsafe use of @executable_path in /Applications/iTunes.app/Contents/MacOS/iTunes with restricted binary
    Binary Images:
           0x102a96000 -        0x103c36fff  com.apple.iTunes (10.7 - 10.7) <0CC47E12-134F-A9E1-7E4F-3EAC797C3050> /Applications/iTunes.app/Contents/MacOS/iTunes
        0x7fff62696000 -     0x7fff626cb1ff  dyld (195 - ???) <71093406-21CF-3DBE-A001-802259ED5300> /usr/lib/dyld
    Model: MacBook4,1, BootROM MB41.00C1.B00, 2 processors, Intel Core 2 Duo, 2.4 GHz, 2 GB, SMC 1.31f1
    Graphics: Intel GMA X3100, GMA X3100, Built-In, 144 MB
    Memory Module: BANK 0/DIMM0, 1 GB, DDR2 SDRAM, 667 MHz, 0xAD00000000000000, 0x48594D503131325336344350362D59352020
    Memory Module: BANK 1/DIMM1, 1 GB, DDR2 SDRAM, 667 MHz, 0xAD00000000000000, 0x48594D503131325336344350362D59352020
    AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x88), Broadcom BCM43xx 1.0 (5.10.131.36.5)
    Bluetooth: Version 2.5.0b13, 2 service, 12 devices, 2 incoming serial ports
    Network Service: AirPort, AirPort, en1
    Serial ATA Device: FUJITSU MHY2160BH, 160.04 GB
    Parallel ATA Device: MATSHITADVD-R   UJ-867
    USB Device: Built-in iSight, apple_vendor_id, 0x8501, 0xfd400000 / 2
    USB Device: USB Receiver, 0x046d  (Logitech Inc.), 0xc52f, 0x1d100000 / 2
    USB Device: Bluetooth USB Host Controller, apple_vendor_id, 0x8205, 0x1a100000 / 2
    USB Device: Apple Internal Keyboard / Trackpad, apple_vendor_id, 0x022a, 0x5d200000 / 3
    USB Device: IR Receiver, apple_vendor_id, 0x8242, 0x5d100000 / 2
    And Google chrome just keep loading the page for hours and nothing is appear on its browser. But safari and firefox working absolutly fine.
    In addition, I have reboot computer as well but it never worked. Please help me in this occasion.
    Eagerly waiting for your response on this issue.
    Best Regards,

    You need to upgrade your copy of MS Office. You're using a version that is 8 years old (at least). You can buy Office 2011, which will work. You could also get a copy of Pages from the App Store, which is cheaper and will open Word files (though not perfectly). Or you could get a free Office clone, like OpenOffice or LibreOffice.

  • HT5278 My words with friends kept disappearing on screen 3 seconds after opening. So I deleted & reinstalled it today 8/17/12 & it still happens. I'm so frustrated I dont know what to do next. Please help me w/this

    My iPad 1 doesn't stay logged on. It stays @ 3 seconds.this has been happening for a week s I deleted that app, &amp; downloaded another, same one &amp; STILL won't stay opened on page. Please help me figure this out. Very much appreciated. Thank you, Connie Sypriano

    There's a whole lot to read in your post, and frankly I have not read it all.
    Having said that, this troubleshooting guide should help:
    http://support.apple.com/kb/TS1538
    In particular, pay attention to the mobile device support sections near the bottom, assuming you have already done the items above it.

  • My safari keeps closing unexpectedly and when it does it tells me that it quite while using the .GameHouseBeachParty.so plugin. I have no idea what this means! Can someone please help me fix this?

    My safari keeps closing unexpectedly and when it does it tells me that it quite while using the .GameHouseBeachParty.so plugin. I have no idea what this means! Can someone please help me fix this?

    You have the Flashback trojan.
    Check out the replies in this thread for what to do;
    https://discussions.apple.com/message/18114958#18114958

  • I have a problem with my iphone 4. My 3G always stays activated but I lose my network signal. The bars all get lost and I'm not able to receive / send sms, mms or phone calls. Could you guys please help me fix this problem? Ios 5.1.1

    I have a problem with my iphone 4. My 3G always stays activated but I lose my network signal. The bars all get lost and I'm not able to receive / send sms, mms or phone calls. Could you guys please help me fix this problem? Ios 5.1.1

    I haven't gotten a new sim card because the problem has been presenting itself in various cards not only mine. So far, all I've done is reset my network settings.
    Last night, I turned off the 3G tab and it had all the signal bars. Today, I did the network reset and it's working apparently. But like I said before, previously the bars just disappear and the iphone only has the 3G activated.

  • Hi! I want to transfer my old mails from mac book pro to iPad 2, Please help me on this.

    Hi! I want to transfer my old mails from mac book pro to iPad 2, Please help me on this.

    Did you select the Pages app to sync to the iPad? Do you know how to do that or do you auto sync and rely on that only?

  • Help!! I just updated my iPad 2 into IOS 5.1.1.. When it finished updating, I can't open all of my games. Please help me fix this. :( thank you.

    Help!! I just updated my iPad 2 into IOS 5.1.1.. When it finished updating, I can't open all of my games. Please help me fix this. :( thank you.

    You are most welcome

  • Hello Technical Experts... please help me on this error :- 'Tax data is missing ArrayOffset 12, srcLineNum 0, srcGroupNum -1'.

    In my A/P credit memo screen i have incorporated a column for adding reference to closed A/P Invoices. upon filling this field with DocNum of APInvoice certain other fields also get filled from an SQL query. One among them is the TaxCode. My problem is that the TaxAmount(LC) field at the last row of the matrix is not filled with the appropriate value, it remains 0. On trying to add the document or pressing the link button on the TaxAmount field a status bar error message pops up showing, 'Tax data is missing ArrayOffset 12, srcLineNum 0, srcGroupNum -1'.
    Please Help me solve this issue.
    Thanks in Advance
    Rajeev

    Hi,
    Please check SAP note:
    1860926 - When updating a Purchase Order via DI API "-12109 Tax data
    is missing..." Error occurs
    Thanks & Regards,
    Nagarajan

Maybe you are looking for

  • Can't boot from OSX cd - Kernel Panic or bad CPU?

    Greetings, All! I've looked at all the articles related to this that I can find, here and on other sites, but have not been able to solve the problem. Here's a list to briefly describe my issue: -Got Prohibitory sign on my MDD Dual 867 when I tried b

  • Mac mini and the old mac iBook clamshell

    Does anyone know if the old iBook clamshell can be used as the monitor and keyboard with the Mac mini? I've got one and I'd like to be able to use it. What about the the old iMac blueberry bubbles/OS 9.2. Can I use this with a Mac mini as the monitor

  • Any recommendation for to continue ?

    I was working in Oracle Forms, but now I decided to learn. I am study Java for the first part (Getting started) but there are more chapter but, I like to make application like account system. I was thinking to junk to java Swing for to continue study

  • Display driver unselectable

    I have installed Windows 2012 Standard on a Dell Laptop XP15 L502X with an NVidia graphics card. Intel 3000 HD Graphics + NVidia GT540M The drivers for the card have been validated and work properly when running the Dell diagnostics but work in conju

  • RE: (forte-users) AppletSupport on PC-NT lack ?

    yeah but actually I think applet support is only forte, isn't it ? -----Message d'origine----- De: kelsey.petrychynsasktel.sk.ca [mailto:kelsey.petrychynsasktel.sk.ca] Date: lundi 11 septembre 2000 18:17 À: Jean-Paul.Gabriellisema.fr Objet: Re: (fort