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_materialized_view_info 系统过程。请参见sa_materialized_view_info 系统过程

还可以通过以下方法查看有关实例化视图的信息:在 Sybase Central 中选择 [视图] 文件夹,然后查看为各个视图提供的详细信息。或者通过查询 SYSTAB 和 SYSVIEW 系统视图。请参见SYSTAB 系统视图SYSVIEW 系统视图

实例化视图状态

实例化视图有两个可能状态:

  • 已启用   如果实例化视图已成功编译,可供数据库服务器使用,则实例化视图状态为已启用。已启用实例化视图中可能没有数据。例如,如果截断已启用实例化视图中的数据,它将更改为已启用和未初始化。如果在指定实例化视图的定义的基础表中没有数据,实例化视图可以初始化但为空。这与实例化视图没有数据不同,因为它未初始化。

  • 已禁用   实例化视图只有在以某种方式显式禁用后才会具有已禁用状态,例如使用 ALTER MATERIALIZED VIEW ...DISABLE 语句来禁用每个相关实例化视图。如果禁用实例化视图,将删除视图的数据和索引。此外,禁用快速视图时,它将更改为手动视图。

要确定视图是已启用还是已禁用,请使用 sa_materialized_view_info 系统过程返回视图的 Status 属性。请参见sa_materialized_view_info 系统过程

有关启用和禁用实例化视图的信息,请参见启用和禁用实例化视图

实例化视图属性

优化程序计算是否使用视图时使用实例化视图属性。下表介绍 sa_materialized_view_info 系统过程返回的实例化视图的属性:

  • Status   Status 属性指示视图是已启用还是已禁用。

  • DataStatus   DataStatus 属性反映视图中数据的状态。例如,通过该属性可了解视图是否已初始化以及视图是否已失效。如果自上次刷新实例化视图以后基础表中的数据已更改,则手动视图失效。快速视图从不失效。

  • ViewLastRefreshed   ViewLastRefreshed 属性指出上次刷新视图的时间。

  • DateLastModified   DateLastModified 属性指出视图失效时,任何基础表中数据的最新修改时间。

  • AvailForOptimization   AvailForOptimization 属性反映视图是否可供优化程序使用。

  • RefreshType   RefreshType 属性指出视图是手动视图还是快速视图。

有关每个属性的可能值的列表,请参见sa_materialized_view_info 系统过程

虽然没有属性能让您了解是否能够将手动视图转换为快速视图,但您可以使用 sa_materialized_view_can_be_immediate 系统过程确定此问题。请参见sa_materialized_view_can_be_immediate 系统过程

变更、刷新和截断实例化视图时状态和属性的更改

对实例化视图执行的操作(如变更、刷新和截断)影响视图的状态和属性。下图显示这些任务如何影响实例化视图的状态和某些属性。

在该图中,每个灰色方块是一个实例化视图;快速视图由术语 IMMEDIATE 标识,手动视图由术语 MANUAL 标识。灰色方框之间的连接符中的术语 ALTER 是 ALTER MATERIALIZED VIEW 的简写。尽管图中显示了用于更改实例化视图状态的 SQL 语句,但您也可以使用 Sybase Central 执行这些活动。

显示实例化视图的各种状态的图示

图中需要注意的一些重要概念如下:

  • 创建实例化视图时,视图是已启用手动视图,并且未初始化(不包含数据)。

  • 刷新未初始化视图时,视图变为已初始化(填入了数据)。

  • 从手动视图更改为快速视图需要几个步骤,对于快速视图还有更多限制。请参见将手动视图更改为快速视图快速视图的附加限制

  • 禁用实例化视图时:

    • 数据被删除

    • 视图转为未初始化

    • 索引被删除

    • 快速视图转为手动视图

另请参见