在 Oracle Database 23c 中,改进创建物化视图的方式。使用机器学习来为自动生成的物化视图提出更好的建议,提高分析性能。底层机器学习框架更好地理解物化视图能为您的分析工作带来的好处,以及它可能给数据库带来的维护负担。与我们所有的自动化功能一样,我们允许您自动或手动接受它建议的更改。
自动物化视图需要注意的点:
- 测试自动物化视图的创建:确保自动物化视图可以成功地创建并且无错误。
- 测试自动物化视图的刷新:验证自动物化视图可以根据基表的数据变化进行自动刷新,并且刷新后的数据与基表保持一致。
- 测试自动物化视图的查询性能:通过查询自动物化视图和基表的相同数据,比较它们的查询性能。确保自动物化视图的查询性能优于基表。
- 测试自动物化视图的参数设置:手动设置自动物化视图的刷新参数,例如刷新间隔时间、刷新时机等,验证参数设置能够正确影响自动物化视图的刷新行为。
- 测试自动物化视图的维护:测试基表的重构、重建、分区变更等操作对自动物化视图的影响,确认自动物化视图可以正确地跟踪基表的结构变化。
- 测试自动物化视图的依赖关系:验证自动物化视图与基表的依赖关系是否正确,当基表的结构或数据发生变化时,自动物化视图是否能够正确地被更新。
- 测试自动物化视图的异常处理:尝试在自动物化视图中添加复杂的查询条件或定义计算列等情况下,验证自动物化视图能否正确地处理异常。
- 测试自动物化视图的权限控制:测试在不同用户权限下,对自动物化视图的访问情况,确认只有具有足够权限的用户才能够查询和使用自动物化视图。
- 测试自动物化视图的更新:尝试对自动物化视图进行INSERT、UPDATE和DELETE等数据操作,验证自动物化视图是否支持数据更新操作,并且更新后的数据能够正确地反映到基表。
- 测试自动物化视图的并行查询:验证在多个用户同时查询自动物化视图时,性能能否得到提升,并且数据的一致性能否得到保证。
- 确保数据库中已经存在对应的表和数据,用于创建自动物化视图。
- 在Oracle 23C中,使用以下语法创建自动物化视图:
sql
Copy code
CREATE MATERIALIZED VIEW mv_name REFRESH FAST ON DEMAND AS SELECT * FROM table_name;
其中,mv_name是自动物化视图的名称,table_name是需要物化的表名。
3. 执行上述创建语句,创建自动物化视图。
- 使用以下语法手动刷新自动物化视图:
sql
Copy code
EXEC DBMS_MVIEW.REFRESH('mv_name');
这将触发刷新过程,将自动物化视图中的数据与原始表中的数据同步。
5. 检查自动物化视图的数据是否正确,可以使用以下语句查询物化视图中的数据:
sql
Copy code
SELECT * FROM mv_name;
- 进行相关的测试操作,比如插入、更新或删除原始表中的数据,然后再次手动刷新自动物化视图,观察数据是否正确更新。
- 可以使用以下语句删除自动物化视图:
sql
Copy code
DROP MATERIALIZED VIEW mv_name;
注意:在测试过程中,需要注意数据库的性能和资源消耗情况,确保自动物化视图的创建和刷新过程不会对数据库的正常运行造成影响。
