ホームページ >バックエンド開発 >PHPチュートリアル >データベース結果をキャッシュして PHP のパフォーマンスを向上させる (3)_PHP チュートリアル

データベース結果をキャッシュして PHP のパフォーマンスを向上させる (3)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:02:57895ブラウズ

既存の登録へのテーブルの追加
前のセクションでは、変更通知サービスを使用して、登録オブジェクト(上記の例ではORDERSテーブル)が変更されたときにデータベース
に通知させる方法を示しました。ただし、パフォーマンスの観点から、クライアント アプリケーションは、ORDERS テーブル自体のクエリ結果セットではなく、ORDER_ITEMS テーブルをキャッシュすることを好む場合があります。これは、注文にアクセスするたびに ORDERS テーブルから 1 行だけを取得する必要があるためですが、複数の行を取得する必要があるためです。同時に ORDER_ITEMS
テーブルから取得する必要があります。実際には、注文には数十、場合によっては数百の項目が含まれる場合があります。
ORDERS テーブルに対してクエリをすでに登録しているため、
ORDER_ITEMS テーブルに対してクエリを登録するために別の登録を作成する必要はありません。代わりに、既存の登録を使用できます。これを行うには、まず既存の登録の ID を取得する必要があります。この
ジョブ を達成するには、次のクエリを実行できます:

SELECT regid, table_name FROM user_change_notification_regs;
結果は次のようになります:
REGID TABLE_NAME <br>----- -------------- <br>241 OE.ORDERS <br>
登録 ID を取得したら、 DBMS_CHANGE_NOTIFICATION.ENABLE_REG
関数を次のように使用して、新しいオブジェクトを登録に追加できます。以下に表示:
完了しました!今後、データベースは ORDERS および ORDER_ITEMS に対する変更に応じて通知を生成し、
orders_nf_callback プロシージャを呼び出して通知を処理します。したがって、次のステップは、ORDER_ITEMS
テーブルに対する DML 操作によって生成された通知を処理できるように、orders_nf_callback を編集することです。ただし、orders_nf_callback プロシージャを再作成する前に、更新プロセス中に参照される次のテーブル タイプを作成する必要があります:
DECLARE <br>ord_id NUMBER; <br>BEGIN <br>DBMS_CHANGE_NOTIFICATION.ENABLE_REG(241); <br>SELECT order_id INTO ord_id FROM order_items WHERE ROWNUM < 2; <br>DBMS_CHANGE_NOTIFICATION.REG_END; <br>END; <br>/ <br>
次に、リスト
2 の次のコード行の後に戻ります:
CREATE TYPE rdesc_tab AS TABLE OF SYS.CHNF$_RDESC;
次のコードを挿入します。

IF (tblname = 'OE.ORDER_ITEMS') THEN
<br>
<p align="left"></p><div style="display:none;">http://www.bkjia.com/PHPjc/631000.html<span id="url" itemprop="url"></span>www.bkjia.com<span id="indexUrl" itemprop="indexUrl"></span>tru​​e<span id="isOriginal" itemprop="isOriginal"></span>http://www.bkjia.com/PHPjc/631000.html<span id="isBasedOnUrl" itemprop="isBasedOnUrl"></span>技術記事<span id="genre" itemprop="genre"></span>既存の登録へのテーブルの追加 前のセクションでは、変更通知サービスを使用して、登録オブジェクト (上の例では ORDERS テーブル) が変更されたときにデータベースに通知させる方法を示しました。でも…<span id="description" itemprop="description"></span>
</div>から
<div class="art_confoot"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。