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

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

 

何时使用实例化视图

使用实例化视图前,应认真考虑以下需求和设置:

  • 磁盘空间需求   由于实例化视图包含基表数据的副本,因此可能需要为数据库分配额外的磁盘空间来容纳所创建的实例化视图。需要认真考虑额外的空间需求,以便在使用实例化视图的优势与开销之间找到平衡点。

  • 维护开销和数据更新度需求   基础表中的数据更改时需要刷新实例化视图中的数据。需要通过考虑如下潜在的冲突因素来确定刷新实例化视图的频率:

    • 基础数据的更改频率   频繁或大量的数据更改会使手动视图失效。如果数据更新度很重要,考虑使用快速视图。

    • 刷新的开销   根据每个实例化视图的基础查询的复杂程度和涉及数据量的大小,刷新所需的计算可能会需要庞大的开销,频繁刷新实例化视图可能会给数据库服务器带来无法承受的负荷。此外,刷新操作期间实例化视图不可用。

    • 应用程序的数据更新度需求   如果数据库服务器使用失效的实例化视图,则它将失效的数据提供给应用程序。失效数据是不再表示基础表中数据的当前状态的数据。过期失效程度受实例化视图的刷新频率制约。应用程序必须能够确定其可以容许的失效程度,以提高性能。有关管理实例化视图中数据失效的详细信息,请参见设置优化程序的实例化视图失效程度阈值

    • 数据一致性需求   刷新实例化视图时,必须确定刷新实例化视图时所应保持的一致性。请参见REFRESH MATERIALIZED VIEW 语句的 WITH ISOLATION LEVEL 子句。

  • 在优化中使用   您应验证优化程序在执行查询时是否考虑到了实例化视图。通过在 Interactive SQL 中查看查询的图形式计划的 [高级详细信息] 窗口,可以看到用于特定查询的实例化视图的列表。请参见读取执行计划使用实例化视图提高性能

    通过查看由优化程序枚举的访问计划,也可以在 Sybase Central 中使用 [应用程序分析] 模式来确定查询的枚举阶段是否将实例化视图考虑在内。要查看优化程序所枚举的访问计划,跟踪功能必须打开并且必须配置为包括 OPTIMIZATION_LOGGING 跟踪类型。请参见应用程序分析选择诊断跟踪级别

 另请参见