提高查询性能的初始过程
要优化查询性能,首先要执行以下任务:
运行 Database Designer
Database Designer 会为数据库创建可提供最优查询性能的物理架构。首次运行 Database Designer 时,您应该创建全面设计,其中包括作为设计起点的相关示例查询和数据。如果以后出现性能问题,请考虑加载您经常运行的其他查询,并重新运行 Database Designer 来创建增量设计。
运行 Database Designer 时,请选择“更新统计数据 (Update Statistics)”选项。Vertica 查询优化器使用数据的统计数据来创建查询计划。统计数据可以帮助优化器确定:
-
多个合格的投影以响应查询
-
执行联接所采用的最佳顺序
-
数据分布算法,例如广播和重新分段
如果您的统计数据已过时,请运行 Vertica 函数
ANALYZE_STATISTICS
来更新特定架构、表或列的统计数据。有关详细信息,请参阅收集数据库统计信息。
主动检查查询事件
QUERY_EVENTS 系统表返回有关查询计划、优化和执行事件的信息。
EVENT_TYPE
列提供了各种事件类型:
-
属于信息性类型的某些事件。
-
其他您应当查看的用于获取可能的纠正措施的事件。
-
最重要的、最需要处理的某些事件。
查看查询计划
查询计划由一系列类似步骤的 路径组成,而 Vertica 查询优化器会选择这些路径来访问或修改 Vertical 数据库中的信息。获取查询计划信息的方式有两种:
-
运行 EXPLAIN 命令。每个步骤(路径)都代表了优化器为其执行策略使用的一个操作。
-
查询 QUERY_PLAN_PROFILES 系统表:此表详细介绍了当前运行的查询的执行状态。QUERY_PLAN_PROFILES 表的输出显示了实时数据流以及每个查询计划中的每个路径使用的时间和资源。