最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
SQL Anywhere 11 (Panorama) 评审指南 Part III_Mssql系列教程
时间:2008-05-27 编辑:简简单单 来源:一聚教程网
例程可通过http://www.sybase.com/files/Technical_Documents/PanoramaRevGuide.zip下载
本文档中出现的SQL Anywhere 11在其它地方可能出现为SQL Anywhere Panorama。
即时维护物化视图
物化视图(MV)存储着数据库中基于基表查询出来的结果。它通常用来存储通过对基表的大量聚合查询产生的计算结果。MV之余其他数据库对象(例如视图和表)的主要优点主要在于它与优化器的交互上。物化视图存储了高耗能查询的结果,通过提前执行繁杂工作来提高性能。
在SQL Anywhere 10中,当视图的基表发生改变时,物化视图中的数据就不是最新数据了。需要通过手工定期执行刷新来更新物化视图的内容。另外,当MV被刷新后,MV的内容被删除并被新的查询结果集取代。
使用SQL Anywhere 11,可通过配置使物化视图自动保持最更新。这就是说当MV的基表发生改变时(Insert/Update/Delete),MV也被更新来反映这些变化。这就不需要MV删除或重新填充数据。
即时维护物化视图例程
本例演示了即时维护物化视图。此特性降低了开发人员在应用中使用物化视图的工作量,并且提高了优化器在优化过程中利用MV的能力。
1. 启动Interactive SQL并通过ODBC连接至SQL Anywhere 11 Demo数据库:开启命令行并运行以下命令:
dbisql -c "dsn=SQL Anywhere 11 Demo "
2. 在groupo用户下根据尺寸(size)和年(year)为每种已售产品的总数(数量和总价)创建物化视图,并声明该视图为手动刷新视图。执行下列SQL语句:
CREATE MATERIALIZED VIEW groupo.mv_manualrefresh AS
SELECT year( s.shipdate ) AS yr, p.name AS name, p.size AS size,
SUM( s.quantity ) AS total_quantity,
SUM( p.unitprice ) AS total_price,
COUNT( * ) AS num_records
FROM salesorderitems s, products p
WHERE p.id = s.productid
GROUP BY name, size, yr;
CREATE UNIQUE INDEX mvidx ON groupo.mv_manualrefresh( yr, name, size );
ALTER MATERIALIZED VIEW groupo.mv_manualrefresh MANUAL REFRESH;
3. 根据尺寸(size)和年(year)为每种已售产品的总数(数量和总价)创建另一个物化视图,但将该视图声明为可自动刷新(使用IMMEDIATE REFRESH关键字):
CREATE MATERIALIZED VIEW groupo.mv_autorefresh AS
SELECT year( s.shipdate ) AS yr, p.name AS name, p.size AS size,
SUM( s.quantity ) AS total_quantity,
SUM( p.unitprice ) AS total_price,
COUNT( * ) AS num_records
FROM salesorderitems s, products p
WHERE p.id = s.productid
GROUP BY name, size, yr;
CREATE UNIQUE INDEX mvidx ON groupo.mv_autorefresh( yr, name, size );
ALTER MATERIALIZED VIEW groupo.mv_autorefresh IMMEDIATE REFRESH;
4. 执行下列SQL语句,装载物化视图:
REFRESH MATERIALIZED VIEW groupo.mv_manualrefresh;
REFRESH MATERIALIZED VIEW groupo.mv_autorefresh;
5. 执行下列查询从视图中检索数据:
SELECT * FROM mv_manualrefresh ORDER BY name, size, yr;
相关文章
- sql where条件语句用法 10-16
- SQL Anywhere 11 (Panorama) 评审指南 Part V_Mssql系列教程 05-27
- SQL Anywhere 11 (Panorama) 评审指南 Part VIII_Mssql系列教 05-27
- SQL Anywhere 11 (Panorama) 评审指南 Part IX_Mssql系列教程 05-27
- SQL Anywhere 11 (Panorama) 评审指南 Part VII_Mssql系列教程 05-27
- SQL Anywhere 11 (Panorama) 评审指南 Part X_Mssql系列教程 05-27
热门栏目
-
php教程
php入门 php安全 php安装 php常用代码 php高级应用 -
asp.net教程
基础入门 .Net开发 C语言 VB.Net语言 WebService -
手机开发
安卓教程 ios7教程 Windows Phone Windows Mobile 手机常见问题 -
css教程
CSS入门 常用代码 经典案例 样式布局 高级应用 -
网页制作
设计基础 Dreamweaver Frontpage js教程 XNL/XSLT -
办公数码
word excel powerpoint 金山WPS 电脑新手 -
jsp教程
Application与Applet J2EE/EJB/服务器 J2ME开发 Java基础 Java技巧及代码