通過快取資料庫結果提高PHP效能(3)_PHP教程

來源:互聯網
上載者:User
將表添加到現有註冊
  前一部分介紹了如何使用更改通知服務使 資料庫在註冊 對象(在以上樣本中為 ORDERS
表)發生更改時發出通知。但從效能角度而言,用戶端應用程式可能更希望緩衝 ORDER_ITEMS 表而非 ORDERS
表本身的查詢結果集,這是因為它在每次訪問訂單時,不得不從 ORDERS 表中只檢索一行,但同時必須從 ORDER_ITEMS
表中檢索多個行。在實際情況中,訂單可能包含數十個甚至數百個訂單項。
  由於您已經對 ORDERS 表註冊了查詢,因此不必再建立一個註冊來註冊對
ORDER_ITEMS 表的查詢了。相反,您可以使用現有註冊。為此,您首先需要檢索現有註冊的 ID。可以執行以下查詢來完成此 工作
SELECT regid, table_name FROM user_change_notification_regs;
  結果可能如下所示:
REGID TABLE_NAME 
----- --------------
241 OE.ORDERS
  擷取註冊 ID 後,可以使用 DBMS_CHANGE_NOTIFICATION.ENABLE_REG
函數將一個新對象添加到該註冊,如下所示:
DECLARE 
ord_id NUMBER;
BEGIN
DBMS_CHANGE_NOTIFICATION.ENABLE_REG(241);
SELECT order_id INTO ord_id FROM order_items WHERE ROWNUM < 2;
DBMS_CHANGE_NOTIFICATION.REG_END;
END;
/
  完成了!從現在開始,資料庫將產生一個通知來響應對 ORDERS 和 ORDER_ITEMS 所做的任何更改,並調用
orders_nf_callback 過程來處理通知。因此,下一步就是編輯 orders_nf_callback,以便它可以處理因對 ORDER_ITEMS
表執行 DML 操作而產生的通知。但在重新建立 orders_nf_callback 過程之前,您需要建立以下將在更新過程中引用的表類型:
CREATE TYPE rdesc_tab AS TABLE OF SYS.CHNF$_RDESC;
  然後,返回清單
2,在以下程式碼之後:
IF (tblname = 'OE.ORDERS') THEN 
FOR j IN 1..numrows LOOP
row_id := ntfnds.table_desc_array(i).row_desc_array(j).row_id;
SELECT order_id INTO ord_id FROM orders WHERE rowid = row_id;
sendNotification(url, tblname, ord_id);
END LOOP;
END IF;
  插入以下代碼:
IF (tblname = 'OE.ORDER_ITEMS') THEN 

http://www.bkjia.com/PHPjc/631000.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631000.htmlTechArticle將表添加到現有註冊 前一部分介紹了如何使用更改通知服務使 資料庫 在註冊 對象 (在以上樣本中為 ORDERS 表)發生更改時發出通知。但從...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.