CREATE MATERIALIZED VIEW 语句--实现化视图创建

转自http://blog.sina.com.cn/s/blog_4f925fc3010184n4.html

此语句用于创建实现化视图 (Materialized View)。

语法

CREATE MATERIALIZED VIEW
owner.]materialized-view-name [ ( column-name, ... ) ]
IN dbspace-name ]
AS select-statement

参数

column-name 列表    指定要在实现化视图 (Materialized View) 中创建的列。如果未指定 column-name 列表,则列名会设置为在 AS 子句 select-statement 中指定的列。

IN 子句    指定要在其中创建实现化视图 (Materialized View) 的 dbspace。如果未指定,则使用当前的 dbspace。

AS 子句    使用 select-statement 定义实现化视图 (Materialized View) 的结构。实现化视图 (Materialized View) 的定义只能引用基表。它无法引用视图、其它实现化视图 (Materialized View) 或临时表。select-statement 必须包含列名或具有指定的别名(请参见SELECT 语句)。您无法使用 SELECT * 结构指定列名。例如,您无法指定 CREATE MATERIALIZED VIEW matview AS SELECT * FROM table-name ...。此外,select-statement 中的所有对象在数据库中必须具有唯一名称。

请参见管理实现化视图 (Materialized View) 时的限制

注释

实现化视图 (Materialized View) 创建后,不会使用数据自动初始化。要初始化实现化视图 (Materialized View),请使用 REFRESH MATERIALIZED VIEW 语句来初始化单个实现化视图 (Materialized View),或使用 sa_refresh_materialized_views 系统过程来初始化数据库中所有未初始化的实现化视图 (Materialized View)。请参见REFRESH MATERIALIZED VIEW 语句sa_refresh_materialized_views 系统过程

您可以加密实现化视图 (Materialized View)、更改其 PCTFREE 设置,以及通过优化程序启用或禁用该视图的使用。但是,必须先创建实现化视图 (Materialized View),然后才能使用 ALTER MATERIALIZED VIEW 设置这些选项。在创建时这些选项的缺省值为 NOT ENCRYPTED、ENABLE USE IN OPTIMIZATION,而 PCTFREE 缺省值要根据数据库所使用的页面大小来确定(对于 4 KB 页面大小,使用 200 字节;对于 2 KB 页面大小,则使用 100 字节)。

sa_recompile_views 系统过程不会尝试重新编译实现化视图 (Materialized View)。

必须为多个选项指定特定值,才能创建实现化视图 (Materialized View)。请参见管理实现化视图 (Materialized View) 时的限制

权限

必须具有 RESOURCE 权限和实现化视图 (Materialized View) 定义中的表的 SELECT 权限。要为其他用户创建实现化视图 (Materialized View),还必须具有 DBA 权限。

副作用

执行过程中,CREATE MATERIALIZED VIEW 语句会对实现化视图 (Materialized View) 所引用的所有表执行独占锁定,而不会阻塞。如果有一个引用表无法锁定,则语句会失败并会返回错误。

另请参见
标准和兼容性
  • SQL/2003    服务商扩充。

示例

以下示例会创建实现化视图 (Materialized View),该视图包含 SQL Anywhere 示例数据库中关于雇员的保密信息。但您随后必须执行 REFRESH MATERIALIZED VIEW 语句,才能初始化视图以供使用。

CREATE MATERIALIZED VIEW EmployeeConfidential AS SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID, Departments.DepartmentName, Departments.DepartmentHeadID FROM Employees, Departments WHERE Employees.DepartmentID=Departments.DepartmentID ORDER BY Employees.DepartmentID;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值