Home php教程 php手册 通过缓存数据库结果提高PHP性能(3)

通过缓存数据库结果提高PHP性能(3)

Jun 13, 2016 am 10:06 AM
php use how Will performance improve database Change register result cache notify pass

将表添加到现有注册
  前一部分介绍了如何使用更改通知服务使数据库在注册对象(在以上示例中为 ORDERS
表)发生更改时发出通知。但从性能角度而言,客户端应用程序可能更希望缓存 ORDER_ITEMS 表而非 ORDERS
表本身的查询结果集,这是因为它在每次访问订单时,不得不从 ORDERS 表中只检索一行,但同时必须从 ORDER_ITEMS
表中检索多个行。在实际情况中,订单可能包含数十个甚至数百个订单项。
  由于您已经对 ORDERS 表注册了查询,因此不必再创建一个注册来注册对
ORDER_ITEMS 表的查询了。相反,您可以使用现有注册。为此,您首先需要检索现有注册的 ID。可以执行以下查询来完成此工作

SELECT regid, table_name FROM user_change_notification_regs;
Copy after login
  结果可能如下所示:
REGID TABLE_NAME <br>----- -------------- <br>241 OE.ORDERS <br>
Copy after login
  获取注册 ID 后,可以使用 DBMS_CHANGE_NOTIFICATION.ENABLE_REG
函数将一个新对象添加到该注册,如下所示:
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>
Copy after login
  完成了!从现在开始,数据库将生成一个通知来响应对 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;
Copy after login
  然后,返回清单
2,在以下代码行之后:
IF (tblname = 'OE.ORDERS') THEN <br>FOR j IN 1..numrows LOOP <br>row_id := ntfnds.table_desc_array(i).row_desc_array(j).row_id; <br>SELECT order_id INTO ord_id FROM orders WHERE rowid = row_id; <br>sendNotification(url, tblname, ord_id);  <br>END LOOP; <br>END IF; <br>
Copy after login
  插入以下代码:
IF (tblname = 'OE.ORDER_ITEMS') THEN <br>
Copy after login
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

In this chapter, we are going to learn the following topics related to routing ?

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

See all articles