Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 创建数据库 » 使用数据库对象 » 使用实例化视图

 

刷新手动视图

如果基表发生变化,手动视图即会失效。刷新手动视图是指数据库服务器重新执行视图的查询定义,并用查询的新结果集替换视图数据。刷新可使视图数据与基础数据保持一致。应考虑手动视图数据失效的可接受程度,并制订刷新策略。您的策略应考虑完成刷新所花费的时间,因为在刷新操作期间视图不能用于查询。

还可以设置策略,在该策略中使用事件刷新视图。例如,可以创建事件,以定期刷新。

除了未初始化(不包含数据)之外,快速视图不需要刷新,例如截断之后。

您也可以使用 sa_refresh_materialized_views 系统过程刷新视图。请参见sa_refresh_materialized_views 系统过程

可以使用 materialized_view_optimization 数据库选项来配置一个失效程度阈值,如果超过该阈值,优化程序在处理查询时就不会使用该实例化视图。请参见设置优化程序的实例化视图失效程度阈值

使用 REFRESH MATERIALIZED VIEW 语句时,可以使用 WITH ISOLATION LEVEL 子句覆盖连接隔离级别。有关刷新实例化视图时如何控制并发性的详细信息,请参见REFRESH MATERIALIZED VIEW 语句的 WITH 子句。

升级具有实例化视图的数据库

建议您在升级数据库服务器后,或重建或升级数据库(以与升级的数据库服务器一起工作)后,刷新实例化视图。

♦  刷新手动视图 (Sybase Central)
  1. 以具有 DBA 权限的用户身份或以具有实例化视图的 INSERT 权限的用户身份连接到数据库。您还必须拥有基础表的 SELECT 权限。

  2. 在左窗格中,双击 [视图]。

  3. 右击实例化视图,然后选择 [刷新数据]。

  4. 选择隔离级别并单击 [确定]。

♦  刷新手动视图 (SQL)
  1. 以具有 DBA 权限的用户身份或以具有实例化视图的 INSERT 权限的用户身份连接到数据库。您还必须拥有基础表的 SELECT 权限。

  2. 执行 REFRESH MATERIALIZED VIEW 语句。

示例

以下语句创建 EmployeeConfid33 实例化视图,然后对其刷新。

CREATE MATERIALIZED VIEW EmployeeConfid33 AS
   SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID,
      Departments.DepartmentName, Departments.DepartmentHeadID
   FROM Employees, Departments
   WHERE Employees.DepartmentID=Departments.DepartmentID;
REFRESH MATERIALIZED VIEW EmployeeConfid33;
小心

使用完该示例后,应删除所创建的实例化视图。否则,在试验其它示例时,将无法对其基础表 Employees 和 Departments 执行模式更改。无法变更具有已启用相关实例化视图的表的模式。请参见删除实例化视图

另请参见